كود خالص: الأسباب والآثار



المؤلف: فيكتور سفيرسكي ، كبير مطوري / قائد فريق Python ، DataArt

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

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

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

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

ما هو الرمز النظيف؟


اتضح أن الرمز نظيف وأن النظام مصمم بشكل صحيح ، القراءة السهلة للشفرة ليست كافية. يجب أن يمتلك صفات أخرى:

  • . . , . , , .
  • , , . , . . , . , .
  • . . . -, OWASP.
  • — , . , , . , , . , .
  • . , . , .

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

هل يجب علي كتابة كود نظيف؟


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

لا تنسى فائدة وحياة التعليمات البرمجية الخاصة بك. على سبيل المثال ، إذا كنت تواجه مهمة تطوير المفهوم - PoC (إثبات المفهوم) ، وتثبت أن مجموعة التكنولوجيا المحددة تؤدي المهمة ، فإن التعليمات البرمجية الخاصة بك ستصبح غير ذات صلة في غضون أسبوع أو أسبوعين. لا يستحق الجهد لتحسين هذه الوظيفة.

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

ما الذي سيساعد على تحسين التعليمات البرمجية الخاصة بك؟


يحلم معظم المبرمجين بكتابة التعليمات البرمجية بسرعة وجمال ، بحيث يعمل كل شيء بشكل مثالي في المرة الأولى. لكن لا ينجح الجميع في جعل الشفرة لا تعمل فحسب ، بل يمكن فهمها. كيف تنجح في كتابة كود نظيف؟ هناك طريقتان - التنظيم الذاتي والعمل الجماعي.



التنظيم الذاتي


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


  1. , — . — . IDE ( ) , , . IDE , . — .

    . , .
  2. open source
    . , . , . !

  3. , . . . , , 10, , . .

    . -, .

  4. . . . .

    . .


  5. . . - . , .

    — , , , , .


  6. , . — .
  7. !

    , .


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

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

    هناك العديد من الأشياء التي يجب مراعاتها عند التحقق من الرمز الخاص بك:

    • أحدها هو التحقق مما إذا كان الرمز ينتهك قواعد اتفاقية الرمز. هذه عملية يمكن ويجب أن تتم بشكل آلي باستخدام محللات ثابتة في CI (التكامل المستمر).
    • البعض الآخر هو الحفاظ على التعليمات البرمجية ومعالجة الأخطاء التي لا يمكن التحقق منها تلقائيًا.
    • , , . , ?

  2. (Continuous integration)

    , .

    , :

    • . . , . , , .
    • , , .
  3. (Coding onventions)

    . , . , , .

    , , , . . , , . , . , . .

    , , . — , - .

    . , . .


  4. , . , , .

    , . , . , , .

    -. . , . . , .


  5. , , . . , .

    , :

    • ? , . , .
    • ?
    • ()?
    • ?
    • — ?

    , , . , .


  6. , . SonarQube. :



    • — . , . , .


    • , — DRY (Don’t repeat yourself).


    • . . . , .


    • , , , .


    • . , . , .

***


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

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

All Articles