التطبيق
تجميع كل شيء: التخزين الدائم، والمرشّحات، والأمان، والأخطاء، والنشر.
تطبيق متكامل باستخدام Java EE
عالجت الدروس الستة السابقة كل مكوّن على حدة. التطبيق الحقيقي هو ما يتبقى عندما نجمع هذه المكوّنات معًا، وعملية التجميع تثير أسئلة لا تظهر عند دراسة كل مكوّن بمفرده.
أين يعيش الاتصال بقاعدة البيانات؟ بالتأكيد ليس في استدعاء DriverManager.getConnection() عند كل طلب: فاستحداث اتصال TCP والمصادقة والتفاوض يستغرق ما بين عشرة وخمسين ميلي ثانية، وتُضرب هذه المدة في عدد الطلبات. كيف يبقى المستخدم مصادَقًا عليه عبر ثلاثين صفحة دون أن تكرّر كل servlet الفحص نفسه؟ وكيف يتحول استثناء وقع على عمق ثلاثة مستويات إلى صفحة خطأ مقروءة بدلًا من تتبّع Java يُعرض على الزائر؟
يبني هذا الدرس تطبيقًا لإدارة المهام، صغيرًا بما يكفي ليتسع له درس واحد، وكاملًا بما يكفي لطرح كل هذه المشكلات. سترى فيه مجمّع الاتصالات المضبوط على مستوى الخادم، وسلسلة مرشّحات تعالج الترميز والمصادقة وتسجيل الأحداث قبل تنفيذ أي servlet، ومعالجة مركزية للأخطاء، ثم النشر النهائي.
كلمة أخيرة عن موقع هذا كله بعد أن اطّلعت على كل شيء. ما تعلمته للتو هو الأساس الذي بُني عليه الويب في Java، وما يزال يشغّل جزءًا كبيرًا من تطبيقات المؤسسات في بيئات الإنتاج. أنت الآن قادر على صيانة هذا الكود وتصحيح أخطائه وتطويره. وتعلم أيضًا أن تنفيذه يتطلب قدرًا كبيرًا من العمل اليدوي في «السباكة»: ربط الاعتمادات، وكتابة جدول التوجيه، وتحويل كل معامل. يؤتمت Spring Boot هذه السباكة، وإليه ستتجه في مشروع جديد. الفرق الآن أنك ستعرف ما الذي يؤتمته.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش