كيفية اختيار أفضل اصطلاحات التعليمات البرمجية لك ولفريقك

ضع حدًا للجدل الذي لا ينتهي

- "اسمع ، تلك المتغيرات الخاصة يجب أن تتبع المتغيرات العامة!"

- "لا يمكن! المتغيرات العامة تذهب قبل الخاص! "

- "دعونا نسأل ديب ، ونتركها تقرر"

- "انتظر ، لماذا هذه الثوابت ليست مغلفة بالجمل؟"

؟ ‍♂؟ ‍♀

ارفع يدك إذا وجدت نفسك في هذا النوع من النقاش من قبل. حسنًا ، لا ترفعها حقًا ، ولكن هناك شيء يخبرني أن بعضكم ربما شارك في هذا السيناريو مرة أو مرتين.

بصفتي مطورًا على مدار العقد الماضي ، وجدت نفسي في عدد قليل جدًا من المناقشات ، وقد يقول البعض كثيرًا ، حول اصطلاحات الكود. هذه المناقشات ، على الرغم من كونها مفيدة ، تتدهور أحيانًا إلى مشاغبين فلسفيين لا ينتهي. ثم يبدأون في التحول إلى موضوعات تتراوح من المسافة البادئة إلى بنية المجلد.

يمكن أن تكون مؤلمة.

لذا ، كيف تقرر حقًا ما هو أفضل اتفاقية ، والأفضل من ذلك ، هل توجد أفضل الاتفاقيات؟ سوف أضعها هنا ، حتى تتمكن من إراحة تلك المشاحنات الفلسفية ، مرة واحدة وإلى الأبد.

إذن لماذا نحتاج حتى إلى الاتفاقيات؟

من أجل تحديد أفضل اتفاقية وما إذا كانت موجودة ، نحتاج أولاً إلى فهم سبب حاجتنا إلى الاتفاقيات.

هناك أكثر من بضعة أسباب ، لكنني سأركز على السبب الأكثر أهمية: سهولة القراءة .

ماذا لو قررت التحول إلى الكتابة بالأحرف الكبيرة فقط. مثل هذا ، والذي قد يبدو غريبًا. تلاحظ ذلك على الفور ، ويبدأ عقلك في معالجة ما هو مختلف.

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

يصبح هذا الأمر أكثر أهمية عند العمل مع فريق من المطورين ، حيث يكتب كل منهم الكود الخاص به وفقًا للاتفاقية المفضلة لديهم. سيستغرق مقدار الوقت المستغرق في فهم ومراجعة رمز بعضنا البعض ... حسنًا ... تحصل على هذه النقطة.

من أجل التعاون مع المطورين الآخرين بكفاءة ونوعية ، يجب أن يكون لديك اتفاقية مشتركة.

"يجب كتابة البرامج ليقرأها الأشخاص ، وبشكل عرضي فقط حتى تتمكن الأجهزة من تنفيذها." - هال ابلسون

كيفية اختيار أفضل اصطلاح كود

سواء كنت قد بدأت للتو في البرمجة ، أو كنت جزءًا من فريق مطوري kickass ، أو إذا أصبحت للتو مديرًا للتكنولوجيا ، كيف يمكنك اختيار اصطلاحات التعليمات البرمجية الخاصة بك؟

هذا دليلي لاختيار أفضل اصطلاح الكود:

  1. احصل على الإلهام من فرق التطوير التي تعجبك: لا شيء يتفوق على الخبرة ، وتنشر بعض أكبر وأذكى الشركات إرشادات الترميز الخاصة بهم. على سبيل المثال ، نشرت Airbnb أدلة أسلوب جافا سكريبت والياقوت ، ونشرت Google أدلة أسلوب Java و Python الخاصة بها. سواء كنت تحب هذه الشركات أم لا ، إذا لخصت سنوات الخبرة التي يمتلكها كل من مطوريها ، فإنها تضيف ما يصل إلى gazillion. حاول تطبيق بعض أدلة أسلوب هذه الشركات على فريقك.
  2. حشد المعرفة من زملائك: نحن محظوظون لأن نكون جزءًا من هذا المجتمع الديناميكي. في الواقع ، يعد مجتمعنا أحد أكبر مزايا كونك مطورًا اليوم. سواء كان ذلك على Slack أو Spectrum أو Discord أو أي منصة تعاون ، يمكنك دائمًا العثور على مجموعات مطلعة لنشر سؤال حول اصطلاحات الكود والحصول على إجابات من المطورين حول العالم على الفور.
  3. تجاهل نماذج التعليمات البرمجية. نعم ، فقط تجاهلهم. بين الحين والآخر أعثر على الكود الذي تم نسخه / لصقه من إجابة على Stackoverflow ، أو شيء مشابه. ما ينساه الناس أحيانًا هو أن نماذج التعليمات البرمجية التي قاموا بنسخها للتو ربما تمت كتابتها كإجابة لسؤال تقني ، أو كتفسير لبعض المكتبات. في معظم الحالات ، لم يقصد الكاتب ، ولم يكن لديه وقت للتعامل مع اصطلاحات الكود.

يجب أن تساعدك هذه النصائح في البدء ، ويمكن أن تضع الأساس لتقديم اصطلاحات التعليمات البرمجية لفريق التطوير لديك.

والآن لبعض الفلسفة.

هل توجد اتفاقيات "أفضل"؟

هذا يعتمد على ما تعنيه كلمة "الأفضل". إذا استخدمت Airbnb أو Google اتفاقية معينة ، أو إذا أخبرك 10 رؤساء تنفيذيين مختلفين أن الاتفاقية الخاصة بهم هي الأفضل - فهل هذا يعني أنها أفضل اتفاقية بالنسبة لك؟

علاوة على ذلك ، الاتفاقيات عرضة للتغيير. هل يمكن تسمية شيء يتغير بمرور الوقت بأنه "الأفضل"؟

عندما بدأت في Lemonade بصفتي المطور الوحيد للواجهة الأمامية ، وجدت صعوبة في قراءة الكود الذي كتبه المطور السابق. ربما كان أفضل مؤتمر بالنسبة له ، لكنه لم يكن بالنسبة لي. لذلك أعدت كتابة كل جزء من التعليمات البرمجية التي عملت عليها باستخدام اصطلاحاتي. بمرور الوقت ، انضم المزيد من المطورين إلى الفريق وتطورت اتفاقياتنا.

جاء كل مطور من خلفية متنوعة ، بمعايير واتفاقيات مختلفة. لإضفاء الطابع الرسمي على اتفاقياتنا ، استخدمنا دليل أسلوب جافا سكريبت من Airbnb كنقطة انطلاق. راجعنا الاتفاقيات في هذا الدليل وقمنا بتغيير أو إزالة تلك التي لم نتفق معها ، واعتمدنا الاتفاقيات التي أحببناها. حتى أننا اعتمدنا مطوري الاتفاقيات التي جلبوها من تجربتهم الخاصة ، ودمجناهم في مؤتمرنا الرئيسي.

إن عملية تقييم كل اتفاقية وتحديد ما إذا كان ينبغي علينا اعتمادها ، لم تحسن قابلية قراءة الكود لدينا فحسب ، بل حسنت أيضًا العمل الجماعي لدينا. (المزيد عن ذلك في منشور مستقبلي!)

إليكم الحقيقة الصعبة: لا يوجد تعريف عالمي لأفضل الاتفاقيات ، لأنها ببساطة غير موجودة.

على عكس ما تعلمته في المدرسة ، لا توجد دائمًا إجابة واحدة صحيحة لكل سؤال. في هذه الحالة ، يمكن أن يكون هناك الكثير منهم.

للمطورين طرق مختلفة لتنفيذ أشياء مختلفة أو حتى نفس الأشياء. البعض منا يفضل أن تبدأ أسماء جميع أعضاء الفصل بالبادئة "m_". يحب البعض منا استخدام مسافات بادئة ، ويفضل البعض علامات تبويب ، وقد يقول البعض أن استخدام الكلمة Utilsفي اسم فئة أمر خاطئ. الجيز ، هذه مناقشة لا تنتهي ، لكن كل هذه التفضيلات تأتي مع تفكير جيد.

في نهاية اليوم ، يتعلق الأمر كله بالاتفاقية التي تعمل على تحسين قابلية قراءة الكود الخاص بك. أيهما يسمح لفريقك بالتواصل بشكل أفضل ، والمضي قدمًا بشكل أسرع ، وبكفاءة أفضل.

تذكر ، اصطلاحات التعليمات البرمجية هي مجرد اقتراحات. نعم ، بمجرد أن تقرر استخدام اتفاقية ، يجب عليك المتابعة. لكن تذكر: أنها ليست منحوتة في الحجر وهي عرضة للتغيير. اسمح لنفسك بتجربة اصطلاحات مختلفة حتى تجد أفضل ما يناسبك أنت وفريقك.

إذن ما هي أفضل اصطلاحات الكود؟ سهل - لك!