
كل شيء قديم يومًا ما يصبح جديدًا. يأتي وقت يخطو فيه المبرمجون ذوو الخبرة على نفس الأداة. لا يمكن سرد جميع "القواعد غير المكتوبة" لأي انضباط ، جزئياً لأن الكثير منها ليس
قواعد . غالبًا ما تكون هذه طريقة لإعادة صياغة الحقائق المجردة والأبدية.
صنعت
ماري كوندو مسيرة مهنية من خلال تطبيق المبادئ العالمية للكفاءة والنظافة والجمال على المهمة المنزلية المتمثلة في التدبير المنزلي. اتضح أن الكثير من الناس يحتاجون فقط إلى مترجم بين الحكمة الأبدية وحياتهم اليومية من أجل "فهم" حقيقة ما يحدث حولها (انظر أيضًا
"Zen وفن صيانة الدراجات النارية" ). نأمل مخلصين أن تستمتع بمحاولتنا لفعل نفس الشيء من أجل البرمجة.
1. لا الودائع الجمعة
حتى لو كان لديك نظام نشر مستمر. الجمعة هو أكثر الأيام غير المناسبة لبدء المعلم ، وذلك لسبب واضح: لم يتبق سوى نصف يوم لإصلاح عضادات محتملة. عادة ، بعد التحديثات ، يتم ملاحظة حدوث طفرات في بطاقات الدعم الفني ، خاصة بعد إصدار وظائف جديدة ، حتماً ، حدوث أخطاء جديدة. الناس يوم الجمعة نعسان ، غير مدركين ، يميلون إلى تأجيل كل شيء حتى وقت لاحق ... أنت تعرف كيف يحدث.
لا يوجد أحد محصن ضد قوى العالم الآخر التي تختار دائما يوم الجمعة للبق! لذلك ، راقب أفضل الممارسات ، وإذا لم تكن متأكدًا ، فاخذ انتباه قادة الصناعة. على سبيل المثال ، من
المفترض أن تقوم Apple
بإصدار إصدارات كل يوم ثلاثاء ، تاركة وقتًا كافيًا على جانبي حدث حرج مثل Deploy: Monday لاختبار واختبار أحدث الأخطاء ، ومن الأربعاء إلى الجمعة لإجراء أي تغييرات عاجلة. ومع أرباح Apple ، فأنت تدرك أن طراز النشر الخاص بها يتم غسله بالدم والعرق.
2. النسخ الاحتياطي العادية
من الصعب المبالغة في تقدير أهمية النسخ الاحتياطية العادية. بنيت صناعتنا بأكملها على نظام النسخ الاحتياطي التدريجي مجردة. بالطبع أنا أتحدث عن جيت ، لكن هذا لا يكفي. يجب تخزين قاعدة البيانات الخاصة بك ، مفاتيح التشفير ، ملفات التكوين ، صور VM ، الصور / الفيديو ... حتى الحزم المستوردة بشكل آمن حيث ستكون متاحة دائمًا في حالة الطوارئ. إذا لم يكن لديك نظام آلي ، فدع اثنين من الموظفين على الأقل يقومون بحفظ مجلد العمل بانتظام ونسخه إلى محرك أقراص خارجي. نعم ، مجرد زوجين - التكرار ليس لزوم له.
ربما لن تحتاج إلى 9 من أصل 10 نسخ احتياطية. لكن في يوم من الأيام ، كما أنا اليوم ، سترغب في العودة إلى الماضي ومعرفة بالضبط متى ارتكبنا هذا الخطأ غير الواضح ولكن القاتل تمامًا الذي لم يلاحظه أحد من قبل؟! ثم سوف تكون سعيدا لأنك استغرقت وقتا للنسخ الاحتياطي. أو ، كما تعلم ، عندما يقوم موظف جديد بحذف 100000 سطر من التعليمات البرمجية بطريق الخطأ. هذا يحدث. نحن لا نحمل ضغينة ضد الناس ، ولكن نتعلم من الأخطاء. قم بعمل نسخ احتياطية ، حتى لو كانت صعبة!
3. الحصول على المواصفات الكاملة قبل بدء التطوير
كثيرا ما أعاني من متلازمة "بدأت في وقت مبكر جدا". لقد اضطررت أكثر من مرة إلى إعادة كتابة أجزاء كبيرة من الشفرة ، لأنني لم أطرح أسئلة كافية في الاجتماعات الأولى مع العميل ، حيث حدد الخطوط العريضة للمهمة. إن عقولنا صغيرة للغاية ، وهي تكره الدقة ، خاصة عندما تكون الدقة معقدة ومكلفة (اقرأ: ضرورية للعميل). يجد أوجه التشابه حيث لم يكن حتى قريب. هذا صحيح بشكل خاص في تصميم البرنامج - في تطبيق معقد إلى حد ما ، تؤدي عشرة أزرار مماثلة عشرات المهام المختلفة تمامًا. قبل أن تبدأ الترميز ، يجب عليك التقاط هذه التفاصيل الدقيقة إذا كنت ترغب في الحصول على أقصى استفادة من وقتك ووقت العملاء. لا تكون مثلي أو عقلي. ارسم كل شيء على الورق ، وتأكد من أن كل شيء واضح ، وإذا لزم الأمر ، يمكنك إعادة رسم النظام من نقطة الصفر (مع مراعاة وقت الإعداد الكافي - نحن جميعًا بشر).
لن يتمكن أحد من تحقيق الكمال في هذه العملية. ما زلت تعتمد كثيرا على التخمين. لكن منذ أن أدركت المشكلة ، أصبحت الافتراضات التي لا أساس لها من الصحة أقل. يجب التفكير فيه كجهاز كمبيوتر: بشكل لا لبس فيه وبلا تفكير في منطقه. في مفهوم تصميم النظام ، قم بدراسة المواقف الحدودية ، كن "داعيةًا للمختبر" - وستجد على الأرجح تصميمًا يزيل على الفور فئات كاملة من الأخطاء المسموح بها في تصميم أقل تفكيرًا.
4. إذا رأيت هراء غير مهم ، فقل ذلك
حاول التوقف بلطف أو منع
المناقشات غير المثمرة قبل أن تخرج عن السيطرة. يعد وقت مكتبنا ذا قيمة تقارب الـ 3-8 ساعات التي نقضيها في اللاوعي كل ليلة - وهذا أمر مهم للغاية! من وجهة نظر العمل ، كلما زاد عدد الأشخاص الموجودين هناك ، كان من المفترض أن يكون الاجتماع أكثر فاعلية ، لأن المرتب كل ساعة يضاعف من 20 إلى 500 مطور في غرفة واحدة / قاعة مؤتمرات / وما إلى ذلك. هذه أموال مجنونة ، خاصة في ولاية كاليفورنيا المشمسة مع رواتبها. الوقت هو المال! ونحن نعمل على هذه الأموال من خلال اختراع الحيل الفكرية حول الوحوش مع مخالب مخبأة وراء كل قاعدة الشفرة وننتظر فقط لكسر التوقعات البريئة مع البق والحوادث القاسية.
لكننا لا نتجول دائمًا من خلال سراديب الموتى التي تم نسيانها من خلال شعلة ترتجف وجبهة تفوح منه رائحة العرق. أحيانًا نجلس في اجتماعات أو نناقش شيئًا ما خارج الاجتماعات الرسمية. سلاك تشتهر بزيادة تماسك الفريق ، ولكن بأي ثمن (بخلاف الرسوم الشهرية)؟ في تجربتي ، يزيد Slack بشكل كبير من "وقت لا معنى له" في عقلك - الوقت المستغرق لتصفية دفق ثابت آخر من تنبيهات الصوت (غير المناسبة في كثير من الأحيان) عندما تحاول أن تفعل ما تدفعه لك الشركة ؛ وهذا هو ، وتطوير وإصلاح رمز مفيد. والناس يسقطون بسهولة في نزاعات غير ضرورية.
لا بأس في طلب إنهاء المناقشة إذا استغرق الأمر الكثير من الوقت. في الوقت الحاضر ، يحب الأطفال أن يقولوا أن "الحاضر يرى الحاضر": الأشخاص الذين يقومون بعمل حقيقي حقًا ، ويساعدون العملاء والمستخدمين والعالم - سيكونون ممتنين لمطالبتكم بإنهاء النقاش حول ما إذا كانت الثلاجة الجديدة يجب أن تكون سوداء أو مطلي بالكروم. "نعم ، أنت ترمي قطعة معدنية ، ما هو الفرق ... لدينا مشاكل أكثر خطورة." والعديد من الأشخاص الذين ينتبهون إليك سيكونون من القيادة.
شكرا لانضمامك لي في هذه الرحلة. قد ترى نفس الحكمة مثل أولئك الذين كتبوا هذه النصائح لأول مرة أمامنا. والرجاء ، إذا كنت قد تعلمت في تجربتك بعض القواعد غير المعلنة الأخرى ، فاكتبها وأعلمنا!