
أنا أنظر إلى قطعة من الكود. ربما هذا هو أسوأ رمز قابلته على الإطلاق. لتحديث سجل واحد فقط في قاعدة البيانات ، يقوم باستخراج كافة السجلات الموجودة في المجموعة ، ثم يرسل طلبًا لتحديث كل سجل في قاعدة البيانات ، حتى تلك التي لا تحتاج إلى تحديث. هناك وظيفة خريطة تقوم ببساطة بإرجاع القيمة التي تم تمريرها إليها. هناك
firstName
للمتغيرات ذات القيمة نفسها بوضوح ، فقط تمت تسميتها في أنماط مختلفة (
firstName
). لكل تحديث ، يرسل الكود رسالة إلى قائمة انتظار أخرى ، والتي تتم معالجتها بواسطة وظيفة أخرى بدون خادم ، ولكنها تعمل جميعها مع مجموعة أخرى في نفس قاعدة البيانات. لم أذكر أن هذه الوظيفة الخالية من الخوادم هي من "بنية موجهة للخدمة" قائمة على السحابة تحتوي على أكثر من 100 وظيفة في البيئة؟
كيف يمكن القيام بهذا الشيء؟ أغطي وجهي وأشرب من خلال الضحك. زملائي يسألون عما حدث ،
وأعيد سرد الألوان في موقع
Worst Hits Of BulkDataImporter.js 2018 . إيماءة الجميع متعاطفة معي وتوافق على: كيف يمكن أن يفعلوا هذا بنا؟
سلبي: أداة عاطفية في ثقافة المبرمج
تلعب السلبية دورًا مهمًا في البرمجة. إنها مبنية على ثقافتنا وتستخدم لتبادل ما هو معترف به ("لن
تصدق ما يشبه هذا الرمز!") ، للتعبير عن التعاطف من خلال الغضب ("يا رب ، لماذا تفعل هذا؟") في ضوء ("لن أفعل ذلك أبدًا") ، لإلقاء اللوم على الآخرين ("لقد أتفهنا بسبب شفرته المستحيلة لمرافقته") ، أو ، كما هو معتاد في أكثر المنظمات "سامة" ، لإدارة الآخرين من خلال العار ("ماذا كنت تفكر؟ صحيح").

تعتبر السلبية مهمة جدًا للمبرمجين لأنها وسيلة فعالة جدًا لنقل القيمة. اعتدت أن أدرس في معسكر للمبرمجين ، وكانت الممارسة المعتادة المتمثلة في تحصين الطلاب بثقافة النقابة تتمثل في توفير الميمات والقصص ومقاطع الفيديو بسخاء ، وكان أكثرها شيوعًا هو الذي استغل
أحزان المبرمجين عندما كان الناس في حيرة من أمرهم . إنه لأمر جيد أن تتمكن من استخدام الأدوات العاطفية للإشارة إلى "جيد" و "سيء" و "فظيع" و "لا تفعل ذلك أبدًا". من الضروري إعداد مبتدئين لحقيقة أن زملائهم ، بعيدًا عن تقنية المعلومات ، قد يفهمونهم عن طريق الخطأ. أن يبدأ أصدقاؤهم في دفع أفكارهم للتطبيقات "بمليون". ما يجب أن يتجولوا في متاهات لا نهاية لها من التعليمات البرمجية القديمة مع مجموعة من minotaurs قاب قوسين أو أدنى.
عندما نبدأ في تعلم البرمجة لأول مرة ، يعتمد فهمنا لعمق "تجربة البرمجة" على ملاحظات ردود الفعل العاطفية للأشخاص الآخرين. يظهر هذا بوضوح في المشاركات في
مضخم صوت ProgrammerHumor ، حيث يتعطل العديد من المبرمجين الجدد. العديد من المشاركات الفكاهية ، بدرجة أو بأخرى ، يتم تلوينها بظلال مختلفة من السلبية: خيبة الأمل ، التشاؤم ، الاستياء ، التساهل ، وغيرها. وإذا كان هذا لا يبدو كافياً لك ، فاقرأ التعليقات.

لقد لاحظت أنه مع تراكم الخبرة أصبح المبرمجون أكثر سلبية. المبتدئين ، غير المدركين للصعوبات التي تنتظرهم ، يبدأون بحماس ورغبة في الاعتقاد بأن سبب هذه الصعوبات هو ببساطة الافتقار إلى الخبرة والمعرفة ؛ وفي النهاية سوف يواجهون الحالة الحقيقية للأشياء.
مع مرور الوقت ، يكتسبون الخبرة ويكتسبون القدرة على التمييز بين كود جيد وسوء. وعندما تأتي هذه اللحظة ، ينزعج المبرمجون الشباب من خلال العمل باستخدام كود سيئ على ما يبدو. وإذا كانوا يعملون في فريق (عن بُعد أو شخصيًا) ، فغالبًا ما يتبنون العادات العاطفية للزملاء الأكثر خبرة. غالبًا ما يؤدي ذلك إلى زيادة السلبية ، لأن الشباب يمكنهم الآن التحدث عن المدونة وتقسيمها إلى سيء وجيد ، مما يدل على أنهم "في الموضوع". وهذا يعزز السلبية أكثر: بسبب خيبة الأمل ، من السهل أن تقابل الزملاء وتصبح جزءًا من مجموعة ، فإن انتقاد "القانون السيئ" يرفع من مكانتك واحترافيتك في نظر الآخرين:
غالبًا ما يُنظر إلى الأشخاص الذين يعبرون عن رأي سلبي على أنهم أكثر ذكاءً وكفاءة .
تقوية السلبية ليست بالضرورة شيئًا سيئًا. تركز مناقشة البرمجة ، من بين أشياء أخرى ، بشكل كبير على جودة الشفرة المكتوبة. ماهية الشفرة ، تحدد تمامًا الوظيفة التي صُممت من أجلها (نتجاهل المعدات والشبكة وما إلى ذلك) ، لذلك من المهم أن تكون قادرًا على التعبير عن رأيك في هذا الرمز. تتلخص جميع المناقشات تقريبًا فيما إذا كانت هذه الشفرة جيدة بدرجة كافية وإدانة بيان الشفرة السيئة في التعبيرات التي يميز تلوينها العاطفي جودة الشفرة:
- "يوجد الكثير من التناقضات المنطقية في هذه الوحدة ، وهو مرشح جيد لتحسين الأداء بشكل كبير."
- "هذه الوحدة سيئة للغاية ، نحتاج إلى إعادة تشكيلها."
- "هذه الوحدة لا معنى لها ، يجب إعادة كتابتها."
- "تمتص هذه الوحدة ، يجب تصحيحها."
- "هذه قطعة من الكبش ، وليست وحدة نمطية ، ولم تكن بحاجة إلى أن تكتب على الإطلاق ، فما الذي كان يفكر فيه الجحيم".
بالمناسبة ، فإن هذا "الإصدار العاطفي" هو الذي يجبر المطورين على استدعاء الكود "مثير" ، والذي نادراً ما يكون عادلاً - إلا إذا كنت تعمل في PornHub.
المشكلة هي أن الناس غريبون ومضطربون ومليئون بمشاعر الخلق ، وأن إدراك أي تعبير عن المشاعر والتعبير عنها يغيرنا: في البداية بالكاد يكون ملحوظًا ، لكن بمرور الوقت - بشكل مثير.
لا يهدأ تتبع زلق السلبية
قبل بضع سنوات ، كنت قائد فريق غير رسمي وأجرت مقابلات مع أحد مطوري البرامج. لقد أحببناه حقًا: لقد كان ذكيًا ، وطرح أسئلة جيدة ، وكان ذكيًا من الناحية الفنية ويتناسب تمامًا مع ثقافتنا. لقد تأثرت بشكل خاص بإيجابيته ومدى مغامرته. وأنا استأجرت له.
في ذلك الوقت ، عملت في الشركة لبضع سنوات وشعرت أن الثقافة المتبعة في بلدنا لم تكن فعالة للغاية. لقد حاولنا إطلاق المنتج مرتين وثلاث مرات وقبل وصولي ، مما أدى إلى نفقات كبيرة لإعادة صياغة ، والتي لم يكن لدينا خلالها ما نعرضه باستثناء الليالي الطويلة ، والمواعيد النهائية القصيرة ومنتجات العمل. وعلى الرغم من أنني ما زلت أعمل بجد ، إلا أنني كنت متشككًا في آخر موعد حددته لنا الإدارة. ولعن عرضاً عند مناقشة بعض جوانب الكود مع زملائي.
لذلك لم يكن هناك شيء يثير الدهشة في حقيقة الأمر - رغم أنني فوجئت - أنه بعد بضعة أسابيع تحدث المطور الجديد نفسه بنفس الطريقة السلبية التي تحدثت بها (بما في ذلك اليمين الدستورية). أدركت أنه كان سيتصرف بشكل مختلف في شركة مختلفة بثقافة مختلفة. لقد تكيف فقط مع الثقافة التي خلقتها. الشعور بالذنب طغى لي. بسبب تجربتي الشخصية ، غرست التشاؤم في المبتدئ ، الذي اعتبرته مختلفًا تمامًا. حتى لو لم يكن مثل هذا بالفعل وحاول فقط أن يظهر أنه قادر على الانضمام إلى الفريق ، فقد فرضت عليه موقفي الغاضب. وقد قيل كل ذلك ، حتى لو كان الأمر مزحة أو عابرة ، بطريقة سيئة لتحويل ما يؤمن به المرء.

طرق السلبية
دعنا نعود إلى مبرمجينا المبتدئين السابقين الذين اكتسبوا القليل من الحكمة والخبرة: لقد تعرفوا على صناعة البرمجة بشكل أوثق وفهموا أن الشفرة السيئة موجودة في كل مكان ، ولا يمكن تجنبها. إنه موجود حتى في أكثر الشركات المتقدمة التي تركز على الجودة (واسمحوا لي أن أشير إلى ذلك: يبدو أن الحداثة لا تنقذنا من الكود السيئ على الإطلاق).
سيناريو جيد. مع مرور الوقت ، يبدأ المطورون في طرح حقيقة أن الكود السيئ هو حقيقة البرنامج ، وأن مهمتهم هي تحسينه. وماذا لو لم يكن من الممكن تجنب الكود السيئ ، فلا فائدة من الضوضاء بسببه. يشرعون في مسار Zen ، ويركزون على حل المشكلات أو المهام التي تواجههم. يتعلمون كيفية قياس جودة البرامج وتقديمها بدقة لأصحاب الأعمال ، استنادًا إلى سنوات خبرتهم العديدة ، وكتابة تقديرات مبررة تمامًا ، والحصول في نهاية المطاف على مكافآت سخية مقابل قيمتها المذهلة والمتغيرة للأعمال. إنهم يقومون بعملهم بشكل جيد لدرجة أنهم يحصلون على مكافآت مكافآت قدرها 10 ملايين دولار ، ويتقاعدون للقيام بما يريدون لبقية حياتهم (من فضلك لا تأخذ ذلك على الإيمان).

سيناريو آخر هو طريق الظلام. بدلاً من قبول الكود السيئ كأمر لا مفر منه ، يتحمل المطورون مسؤولية الإعلان عن جميع الأشرار في عالم البرمجة حتى يتمكنوا من إلحاق الهزيمة به. يرفضون تحسين الشفرة السيئة الحالية للعديد من الأسباب الجيدة: "يجب أن يعرف الناس المزيد وألا يكونوا أغبياء" ؛ "إنها غير سارة" ؛ "هذا أمر سيء للعمل" ؛ "هذا يثبت كم أنا ذكي" ؛ "إذا لم أخبرك برمز رديء ، فستغرق الشركة بأكملها في المحيط" ، وهكذا.
بالتأكيد لا تتاح الفرصة لتنفيذ التغييرات التي تريدها ، لأن الأعمال ، للأسف ، يجب أن تستمر في التطور ولا يمكنها قضاء بعض الوقت في الاهتمام بجودة الشفرة ، يكتسب هؤلاء الأشخاص سمعة كمقدمين للشكوى. يتم احتجازهم بكفاءة عالية ، ولكن يتم نقلهم إلى الفناء الخلفي للشركة ، حيث لن يزعجوا الكثيرين ، لكن في نفس الوقت سوف يدعمون تشغيل الأنظمة الحيوية. بعد أن فقدوا الوصول إلى فرص جديدة في التنمية ، فقدوا مهاراتهم وتوقفوا عن تلبية متطلبات الصناعة. تتحول سلبيتهم إلى مرارة شرسة ، ونتيجة لذلك ، فإنهم يروقون الأنا ، حيث يجادلون مع طلاب يبلغون من العمر عشرين عامًا حول المسار الذي تتبعه تقنيتهم القديمة المحببة ولماذا لا تزال هشّة. في النهاية ، يتقاعدون ويعيشون في سن الشيخوخة ، ويلعنون الطيور.
ربما ، الواقع في مكان ما في الوسط بين هذين الطرفين.
حققت بعض الشركات نجاحًا كبيرًا في إنشاء ثقافات سلبية للغاية ومعزولة قوية الإرادة (مثل Microsoft قبل عقدها
الضائع ) - غالبًا ما تكون هذه الشركات بمنتجات تتناسب تمامًا مع السوق والحاجة إلى النمو في أسرع وقت ممكن ؛ أو الشركات ذات التسلسل الهرمي للإدارة والتحكم (Apple في أفضل سنوات Jobs) ، حيث يقوم الجميع بما يطلبونه. ومع ذلك ، تشير أبحاث الأعمال الحديثة (والحس السليم) إلى أنه من أجل الحد الأقصى من الإبداع ، مما يؤدي إلى الإبداع في الشركة ، والإنتاجية العالية للأفراد ، يلزم مستوى منخفض من التوتر للحفاظ على التفكير الإبداعي والمنهجي المستمر. ومن الصعب للغاية القيام بعمل إبداعي ، يعتمد على المناقشات إذا كنت قلقًا دائمًا بشأن ما سيقوله زملاؤك حول كل سطر من التعليمات البرمجية الخاصة بك.
السلبية هي ثقافة البوب الهندسية
اليوم ، يتم إيلاء المزيد من الاهتمام لموقف المهندسين من أي وقت مضى. في المؤسسات الهندسية ، أصبحت قاعدة "
لا Ovuk " شعبية متزايدة. على Twitter ، هناك المزيد والمزيد من النكات والقصص المتعلقة بالأشخاص الذين تركوا هذه المهنة لأنهم لم يتمكنوا (لم يردوا) من الاستمرار في تحمل العداء والعداء تجاه الغرباء. حتى لينوس تورفالدس
اعتذر مؤخرًا على مدى سنوات من عدائه وانتقادات لمطوري لينكس الآخرين - مما أدى إلى نقاش حول فعالية هذا النهج.
لا يزال هناك من يدافع عن حق لينوس في أن يكون حرجًا للغاية - أولئك الذين يحتاجون إلى معرفة الكثير عن مزايا وعيوب "السلبية السامة". نعم ، تعد الصحة في غاية الأهمية (حتى الأساسية) ، ولكن إذا قمنا بتلخيص الأسباب التي جعلت العديد منا يسمح للتعبير عن الآراء السلبية بالتحول إلى "سمية" ، فإن هذه الأسباب تبدو أبوية أو مراهقة: "إنهم يستحقون ذلك لأنهم أغبياء" ، يجب أن أكون متأكدًا من أنهم لن يكرروه ، "" إذا لم يفعلوا ذلك ، فلن يضطر إلى الصراخ عليهم "، وما إلى ذلك. مثال على كيفية تأثير ردود الفعل العاطفية للزعيم على مجتمع البرمجة هو اختصار MINASWAN في مجتمع روبي - "ماتز جميل لذا نحن لطيفون" (ماتز [مبتكر اللغة] جيد ، لذلك نحن جيدون).
لقد لاحظت أن العديد من المؤيدين المتحمسين لنهج "قتل الأحمق" غالباً ما يهتمون بجودة وصحة الكود ، ويتعرفون على عملهم. لسوء الحظ ، فإنهم غالباً ما يخلطون بين الصلابة والتصلب. عيب هذا الموقف ينبع من رغبة إنسانية بسيطة ، ولكن غير منتجة للشعور بالتفوق على الآخرين. الناس الذين غمروا في هذه الرغبة عالقون في طريق الظلام.

عالم البرمجة ينمو بسرعة ويتاخم حدود الحاوية الخاصة به - عالم غير البرمجة (أو هل هذا هو عالم البرمجة حاوية للعالم غير البرمجة؟ سؤال جيد).
نظرًا لتوسع صناعتنا بوتيرة متزايدة وأصبحت البرمجة أكثر سهولة ، فإن المسافة بين "التقنيين" و "العادي" تتناقص بسرعة. يتعرض عالم البرمجة بشكل متزايد للتواصل بين الأشخاص الذين نشأوا في ثقافة معزولة من "المهووسين" ببداية الازدهار التقني ، وهم الذين سيشكلون العالم الجديد للبرمجة. وبغض النظر عن أية حجج تتعلق بالمجال الاجتماعي أو الأجيال ، ستظهر الكفاءة باسم الرأسمالية نفسها في ثقافة الشركات وأساليب التوظيف: أفضل الشركات ببساطة لن توظف أولئك الذين لا يستطيعون التفاعل مع الآخرين بشكل محايد ، ناهيك عن العلاقات الجيدة.
ما تعلمته عن السلبي
إذا سمحت بإفراط في سلبية التحكم في عقلك وتواصلك مع الناس ، وتحولت إلى "سمية" ، فهذا أمر خطير بالنسبة لفرق المنتجات ومكلفة بالنسبة للأعمال. لقد رأيت عددًا لا يحصى من المشاريع (وسمعت عن ذلك) التي انهارت وتم إعادة بنائها بالكامل بتكلفة عالية ، لأن أحد المطورين الموثوق بهم شحذ أسنانهم على التكنولوجيا ، أو مطور آخر ، أو حتى الملف الوحيد المحدد لتمثيل جودة قاعدة الشفرة بأكملها .
السلبية أيضا تحبط العلاقات وتدمرها. لن أنسى أبدًا كيف أنبأني أحد الزملاء لوضع CSS في الملف الخطأ ، مما أزعجني ومنعني من جمع أفكاري لعدة أيام. وفي المستقبل ، لا يُرجح أن أسمح لمثل هذا الشخص أن يكون قريبًا من أحد فرقي (ومع ذلك ، من يعرف أن الناس يتغيرون).
أخيرًا ، السلبية
تضر حرفياً بصحتك .
يبدو لي أنه يجب أن تبدو درجة الماجستير على الابتسامات هكذا.بالطبع ، هذه ليست حجة لصالح أن تكون سعيدًا ، حيث يتم إدخال عشرة مليارات ابتسامة في كل طلب سحب أو الذهاب إلى فئة رئيسية بابتسامات (لا ، إذا كان هذا هو ما تريده ، فلا سؤال). السلبية هي جزء مهم للغاية من البرمجة (والحياة البشرية) ، مما يشير إلى الجودة ، مما يتيح لك التعبير عن المشاعر والتعازي للأخوة. دليل سلبي على البصيرة والمعقولية ، عمق المشكلة. ألاحظ غالبًا أن مطورًا قد وصل إلى مستوى جديد عندما يبدأ في التعبير عن عدم الثقة فيما كان خجولًا وغير متأكد منه. مع آرائهم ، والناس تظهر الحكمة والثقة. لا يمكن للمرء أن يرفض التعبير عن السلبية ، وسيكون في أسلوب أورويلي.
ومع ذلك ، يجب أن يكون الجرعات السلبية وموازنة مع الصفات الإنسانية الهامة الأخرى: التعاطف والصبر والتفاهم والفكاهة. يمكنك دائمًا إخبار أي شخص أنه ثمل دون صراخ أو شتم. لا تقلل من شأن هذه الطريقة: إذا كنت بدون عاطفة تمامًا ، فيقولون إنك عابثت بشدة ، فهذا أمر مخيف حقًا.
في ذلك الوقت ، قبل عدة سنوات ، تحدث معي المدير التنفيذي. ناقشنا الوضع الحالي للمشروع ، ثم سألني عن شعوري. أجبت أن كل شيء على ما يرام ، وكان المشروع يتحرك ، كنا نعمل ببطء ، وربما فاتني شيء وتحتاج إلى مراجعة. قال إنه سمعني أتبادل المزيد من الاعتبارات المتشائمة مع زملائي في المكتب ، وأن الآخرين لاحظوا ذلك أيضًا. وأوضح أنه إذا كانت لدي شكوك ، فيمكنني التعبير عنها بالكامل للقيادة ، ولكن ليس "لتخفيضها". كمهندس رئيسي ، يجب أن أتذكر كيف تؤثر كلماتي على الآخرين ، لأن لدي تأثير كبير ، حتى لو لم أدرك ذلك. وهذا كله أخبرني بلطف شديد ، وفي النهاية قال إنه إذا شعرت حقًا بمثل هذه المشاعر ، فربما أحتاج إلى التفكير فيما أريده بنفسي وحياتي المهنية. لقد كانت محادثة ناعمة بشكل لا يصدق بأسلوب "شد نفسك معًا أو أخرج". لقد شكرته على المعلومات المتعلقة بكيفية تأثير موقفي ، الذي تغير خلال الأشهر الستة الماضية ، بشكل غير محسوس على الآخرين بالنسبة لي.
كان هذا مثالًا على الإدارة الرائعة والفعالة وقوة النهج الناعم. أدركت أنه يبدو لي فقط أنني أؤمن تمامًا بالشركة وقدرتها على تحقيق الأهداف ، لكني في الواقع تحدثت وتواصلت مع الآخرين بطريقة مختلفة تمامًا. أدركت أيضًا أنه حتى الشعور بالشك حول المشروع الذي كنت أعمل عليه ، لم يكن ينبغي عليّ أن أظهر موقفي من زملائي ونشر التشاؤم كعدوى ، مما قلل من فرص نجاحنا. بدلاً من ذلك ، كان بإمكاني بث الموقف الحقيقي بقوة إلى قيادتي. وإذا شعرت أنهم لا يستمعون إلي ، فيمكنني التعبير عن عدم موافقتي على مغادرة الشركة.
حصلت على فرصة جديدة عندما توليت منصب رئيس قسم تقييم الموظفين. بصفتي كبير المهندسين السابقين ، راقبت رأيي بعناية حول الكود القديم (الذي نحسن باستمرار). للموافقة على التغيير ، يجب أن تتخيل الوضع الحالي ، لكنك لن تتوصل إلى أي شيء إذا تعثرت في أنين أو مهاجمة أو شيء من هذا القبيل. , , , , , .
, , , , . (« »), . , , (?) (« , , »). , .
, : , .
