فحص حدود الوحدات بالأوامر لا بالمراجعة

قاعدة لا يفحصها أحد تتوقف عن كونها قاعدة
تعمل الكتلة المعيارية ما دامت وحداتها منفصلة. والقاعدة سهلة الصياغة: تتواصل الوحدات عبر العقود لا عبر الأجزاء الداخلية لبعضها. وهي سهلة الكسر كذلك، استيرادًا مريحًا بعد آخر، وكل كسر يبدو بريئًا في المراجعة.
ثلاثة أماكن يظهر فيها الانحراف
- حدود الوحدات: وحدة تدخل في مجلدات وحدة أخرى بدل عقدها العام.
- الكود: فئات في مجال تعتمد مباشرة على فئات في مجال آخر.
- قاعدة البيانات: مفتاح أجنبي أو join يربط جداول وحدتين، فيصبح فصلهما لاحقًا مستحيلًا.
اجعل كل فحص أمرًا
الفحص الذي يجب تذكّره سيُنسى. أما الأمر فيعمل في hook وفي CI. يستحق كل انحراف من الثلاثة فحصًا خاصًا، مع أمر يطبّق سياسة المعمارية ويعطي درجة، وآخر يلتقط صورة للمشهد كله ليظهر ما تغيّر بين الإصدارات.
أبلِغ أولًا ثم امنع
عند تشغيل فحص جديد على كود قائم تظهر مخالفات موجودة أصلًا. منع كل شيء من اليوم الأول يوقف الفريق. سجّل الوضع الحالي كخط أساس، وافشل فقط عند المخالفات الجديدة، ثم اخفض خط الأساس مع الوقت.
شغّلها قبل الدمج
أرخص وقت لإصلاح مخالفة حدود هو قبل أن تدخل. يعطي pre-commit hook المطوّر الجواب والتغيير ما زال في ذهنه، وتلتقط الأوامر نفسها في CI ما تجاوز الـ hook.
في منتجاتنا
تقدّم RumuzePMO هذه الفحوصات كأوامر artisan: فحص للمعمارية، وفحص لحدود الوحدات والاعتماد في الكود والاعتماد في قاعدة البيانات، ولقطة معمارية بين الوحدات. وتتضمن pre-commit hook لفحوصات المعمارية يُثبَّت بسكربت واحد، فتُفرض القاعدة بالأدوات لا بالذاكرة.
هل أعجبك المقال؟ شاركه مع شبكتك.