4.0

4.0 مقدمة إلى الجزء 4: مقاييس الكود والجودة

قاس الجزءان 2 و3 كيف يتحرك العمل وكيف يبلي الأشخاص الذين ينتجونه. يتحول هذا الجزء إلى المُنتَج نفسه: الكود، وما يستطيع مقياس، وما لا يستطيع، إخبارك عن جودته. مقاييس جودة الكود لديها أطول تاريخ من أي عائلة مقاييس في هذا الكتاب، التعقيد الدوري يعود إلى عام 1976، وأطول تاريخ من سوء الاستخدام يوازيه. يأخذ هذا الجزء ذلك التاريخ بجدية: يُسمِّي كل موضوع إشارة مفيدة حقًا إلى جانب الطريقة المحددة والموثقة جيدًا التي تُتلاعَب بها تلك الإشارة بمجرد أن تصبح هدفًا.

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

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

المواضيع في هذا الجزء

  • 4.1 مقاييس تعقيد الكود: التعقيد الدوري وأقاربه، ما يتنبأون به فعليًا، وخطر التلاعب بهم الموثق جيدًا.
  • 4.2 تغطية الاختبار وفعاليته: لماذا تُخبرك نسبة تغطية وحدها أقل مما تبدو، وكيف يسد اختبار الطفرات الفجوة.
  • 4.3 تغيّر الكود وتحليل النقاط الساخنة: إيجاد الجزء المحدد والصغير من قاعدة كود المسؤول عن حصة غير متناسبة من العيوب وتكلفة الصيانة.
  • 4.4 التحليل الساكن ومقاييس روائح الكود: إشارات جودة كود آلية، قيمتها الحقيقية، وحدودها مقابل الحكم البشري.
  • 4.5 قياس الديون التقنية: تحويل التزام غير مرئي ومُناقَش بشكل غير رسمي إلى محفظة مرئية وذات أولويات وقابلة للإدارة.
  • 4.6 مقاييس التوثيق والمعرفة: قياس ما إذا كان التوثيق يساعد فعليًا، لا مجرد وجوده.

كيف ترتبط هذه المواضيع ببعضها

تبني هذه المواضيع الستة من أصغر وحدة كود نحو الخارج. يبدأ الموضوع 4.1 عند مستوى دالة أو طريقة واحدة؛ يسأل الموضوع 4.2 ما إذا كانت الاختبارات تُتحقَّق فعليًا من سلوك تلك الوحدة؛ يُكبِّر الموضوع 4.3 لإيجاد أي الملفات والوحدات عبر قاعدة الكود بأكملها تستحق الاهتمام أولًا؛ يضيف الموضوع 4.4 طبقة الأدوات الآلية التي تفحص كل ذلك باستمرار؛ يُحوِّل الموضوع 4.5 النتائج المتراكمة من الأربعة كلها إلى قائمة انتظار مُدارة وذات أولويات بدلًا من قلق منتشر وغير مُعالَج؛ ويختتم الموضوع 4.6 الجزء بقياس ما إذا كانت المعرفة اللازمة لصيانة كل هذا بأمان موثقة وقابلة للإيجاد فعليًا.

يرتبط هذا الجزء مباشرة عائدًا بمقاييس الاستقرار في الجزء 2: معدل فشل التغيير (الموضوع 2.10) هو، بجزء كبير، نتيجة لاحقة لجودة الكود التي يقيسها هذا الجزء في مرحلة سابقة. يرتبط أيضًا تقدمًا بمقاييس المُنتَج في الجزء 5، إذ العيوب المتسربة (الموضوع 5.1) غالبًا ما يمكن تتبعها إلى بالضبط نقاط التعقيد الساخنة وفجوات التغطية التي بُنِي هذا الجزء لكشفها قبل أن تصل إلى الإنتاج على الإطلاق.