كل المنشورات

~/blog/deep-modules-six-months-later

الوحدات العميقة بعد ستة أشهر

1 د قراءة#architecture#lessons

قبل ستة أشهر قرأت كتاب A Philosophy of Software Design («فلسفة تصميم البرمجيات»)، والتزمت بتجربة واحدة: أن أفضّل الوحدات العميقة على كثرة الوحدات الصغيرة. واجهات قصيرة، وتنفيذٌ ثقيل خلفها، ولا دوالّ مساعدة تستدعي دوالّ مساعدة.

وهذه الرواية كما جرت، دون تجميل.

ما الذي نجح

  • صار انضمام الزملاء الجدد أسرع؛ فقد أصبح بوسع أحدهم أن يشرح ما تفعله خدمةٌ ما بقراءة ثلاث دوالّ مُصدَّرة فقط.
  • توقفت عن كتابة المصانع (factories). فسؤال «هل تحتاج إلى هذا حقًا؟» يصبح أصعب بكثير حين يكون الملف قد بلغ 600 سطر.

ما الذي لم ينجح

  • صارت كتابة الاختبارات أبطأ. فالوحدات العميقة تمنحك نقاط فصلٍ (seams) أقل، فتغدو الاختبارات عالية الأثر أعلى كلفة.
  • الانضباط يتآكل تحت ضغط المواعيد. فبعد ستة أسابيع ظهرت «دالّتان مساعدتان صغيرتان» في إصلاحٍ عاجل، ولم تغادرا أبدًا.

لم يكن أنفع ما خرجت به هو المبدأ نفسه، بل أن امتلاك ذوقٍ جماليٍّ يهتدي به المشروع كما يُهتدى بالنجم القطبي يغيّر القرار الافتراضي، والقرارات الافتراضية تتراكم آثارها.