التطبيق
جمع المكوّنات السبعة في كلٍّ متماسك.
تطبيق متكامل
إتقان كتابة متحكّم (controller) ومستودع (repository) ونموذج (form) وقاعدة أمان لا يكفي لإتقان كتابة تطبيق. فالمكوّنات حين تؤخذ منفصلة تبدو بسيطة؛ أما تجميعها فهو ما يولّد الصعوبات، لأنه يُظهر أسئلة لا يطرحها أي درس منفرد.
أين نضع القاعدة «لا يمكن استعارة كتاب خرجت جميع نسخه»؟ في الكيان (entity)، الذي يعرف نسخه لكنه لا يعرف عمليات الإعارة الجارية لدى الآخرين؟ أم في الخدمة (service)، التي ترى كل شيء لكنها تخلط حينئذٍ بين مسؤوليتين؟ أم في المتحكّم، الذي لا شأن له بها أصلاً؟ لهذا الاختيار عواقب طويلة الأمد: فإذا وُضعت القاعدة في مكان خاطئ فسيجري الالتفاف عليها يوم تنفّذ الواجهة البرمجية (API) العملية نفسها دون المرور بالمسار ذاته.
ثمة سؤال آخر لا يظهر إلا عند التجميع: العملية التي تمسّ كيانين — إنقاص التوفّر وإنشاء الإعارة — يجب أن تنجح أو تفشل كتلةً واحدة. وإذا كانت حدود المعاملة (transaction) في المكان الخطأ، فسينتج التطبيق أحياناً حالات غير متسقة لن يعرف أحد كيف يعيد إنتاجها.
لذلك يبني هذا الدرس الأخير وظيفة متكاملة — إعارة كتاب — مروراً بجميع الطبقات، مع تبرير موضع كل جزء. ثم يضيف معالجة الأخطاء في جانب الصفحات، وتعريب الرسائل (internationalisation)، واختبارات التكامل التي تتحقق من المجموع لا من الأجزاء.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش