تطوير البرمجيات
التصميم كائني التوجه وأنماط التصميم في Java
برنامج تصميم تطبيقي لمطوري Java الذين تعمل شيفرتهم لكنها تقاوم التغيير. يفحص المشاركون التماسك والاقتران ومبادئ SOLID، ثم يتناولون الأنماط الإنشائية والبنيوية والسلوكية بوصفها مقايضات، بما في ذلك الحالات التي يكلّف فيها النمط أكثر مما يعيد.
نظرة عامة
تعلم عملي قابل للتطبيق في بيئة العمل.
تُكتسب معرفة الأنماط عادةً على هيئة فهرس، والنتيجة متوقعة: مصانع تغلّف بانياً واحداً، وتسلسلات استراتيجية بتطبيق وحيد، وطبقة تجريد كُتبت من أجل قاعدة بيانات ثانية لن تأتي أبداً. ويُدافَع عن كل قرار من هذه القرارات باسم التصميم الجيد بينما يرفع في صمت كلفة التغيير التالي. يتعامل هذا البرنامج مع النمط بوصفه قراراً له ثمن. يعيد المشاركون هيكلة شيفرة Java حقيقية، ويسمّون القوى التي تبرر كل بنية، ويتدربون على إزالة الأنماط التي لم تعد تستحق مكانها، مستعينين بـrecords والأنواع المختومة ومطابقة الأنماط حيث تؤدي اللغة العمل نيابة عنهم.
المتطلبات المسبقة
معرفة عملية ببنية Java والأصناف والواجهات والمجموعات، وتُعد خبرة صيانة تطبيق Java ميزة إضافية.
الأهداف
- تقييم التصميم من خلال تماسكه واقترانه والتغييرات التي يجعلها رخيصة أو باهظة.
- تطبيق مبادئ SOLID على شيفرة Java دون تضخيم عدد الأصناف.
- الاختيار بين الوراثة والتركيب والتفويض استناداً إلى مقايضات صريحة.
- تطبيق الأنماط الإنشائية والبنيوية فقط حيث يتغير الإنشاء أو الحدود تغيراً فعلياً.
- استبدال أنماط تقليدية بـrecords والأنواع المختومة ومطابقة الأنماط في switch حين تكفي اللغة الآن.
- إعادة هيكلة وحدة Java قائمة نحو تصميم يستوعب المتطلب التالي.
الفئة المستهدفة
- مطورو Java ذوو خبرة إنتاجية سنة فأكثر
- القادة التقنيون المسؤولون عن بنية الشيفرة ومعايير المراجعة
- مهندسو الواجهة الخلفية الذين يصونون تطبيقات أعمال طويلة العمر
- معماريو البرمجيات الذين يتحققون من التصاميم قبل بدء التنفيذ
- المطورون الذين يستعدون لتقسيم تطبيق أحادي إلى وحدات
- المهندسون الذين ورثوا قواعد شيفرة لم يصمموها
محاور البرنامج
هيكل واضح لرحلة التعلم.
محاور البرنامج
تظهر محاور البرنامج في صندوق واحد بدلاً من تحويل كل سطر إلى وحدة منفصلة.
الوحدة 1: قوى التصميم: التماسك والاقتران والتغيير
ما الذي يحسّنه التصميم فعلاً: التغييرات التي يتوقع الفريق إجراءها لاحقاً
قياس التماسك والاقتران على أصناف وحزم Java حقيقية
التجريد الذي يغطي كلفته مقابل التعميم المبني على التوقع
قراءة قاعدة شيفرة غير مألوفة لاستخلاص قرارات التصميم غير الموثقة
الوحدة 2: مبادئ SOLID تطبيقاً لا تنظيراً
مبدأ المسؤولية الواحدة على مستوى الوحدة لا على مستوى الدالة
مبدأ الانفتاح والانغلاق عبر نقاط توسعة مستخدمة فعلاً
مبدأ ليسكوف والعقود التي يعد بها تسلسل الوراثة ضمنياً
فصل الواجهات وعكس التبعيات داخل شيفرة الخدمات في Java
الوحدة 3: إنشاء الكائنات والأنماط الإنشائية
دالة المصنع والمصنع المجرد حيث يتغير الإنشاء فعلياً
نمط الباني للبواني الواسعة والحقول الاختيارية والكائنات المتحقق منها
نمط المفرد وكلفته الاختبارية ولماذا يحل حقن التبعيات محله
النموذج الأولي وتجميع الكائنات والحالات الشائعة التي لا يبررهما فيها شيء
الوحدة 4: الأنماط البنيوية وحدود النظام
المهايئ والواجهة الجامعة لترويض الواجهات الخارجية والقديمة
المزخرف مقابل الوراثة لتركيب السلوك أثناء التشغيل
النمط المركّب للبنى العودية وكلفة المرور التي يضيفها
الوكيل للتحميل المؤجل والتحكم بالوصول والاستدعاء البعيد
الوحدة 5: الأنماط السلوكية والتباين أثناء التشغيل
نمط الاستراتيجية ومتى يكون التعداد أو التعبير اللامي هو الجواب الأفضل
نمط القالب مقابل التركيب لمشاركة هيكل خوارزمية
المراقب ونشر الأحداث وكلفة التنقيح الناتجة عن الوساطة
الحالة والأمر والزائر موازنةً مع عبء صيانتها
الوحدة 6: Java الحديثة وتبسيط التصميم
records والواجهات المختومة بديلاً عن كائنات القيمة وتسلسلات الأنواع
مطابقة الأنماط في switch بديلاً عن الزائر والإرسال المزدوج
إزالة النمط بأمان عبر تحديد كل المستدعين المتبقين أولاً
مراجعة تصميم ختامية على وحدة يأتي بها المشاركون أنفسهم
المواد المقدمة
- دليل الدورة وأمثلة شيفرة موثّقة وملاحظات مرجعية
- بيئة معملية عملية ومستودعات بداية جاهزة
- تمارين وقوائم تحقق وقوالب شيفرة قابلة لإعادة الاستخدام
- شهادة إتمام من 4D
- دعم فني بعد انتهاء البرنامج
خيارات التدريب
يمكن تقديم البرامج داخل مقر المؤسسة، أو عن بُعد، أو بصيغة مدمجة بحسب جدول الفريق وموقعه وأهداف التعلم. عندما يتضمن البرنامج شهادة أو اختباراً من جهة خارجية، تبقى قواعد الشهادة ورسومها خاضعة لسياسات الجهة المانحة، بينما تقدم 4D التدريب ودعم التحضير.
لماذا البعد الرابع
تقدّم 4D هذا البرنامج على شيفرة Java كتبها فريقكم فعلاً، لا على أمثلة الأشكال والحيوانات. ويُختتم كل يوم بمراجعة تصميم يناقش فيها المدربون والمشاركون مقايضات وحدة حقيقية، ويتفقون على التجريدات التي تبقى، ويحددون ما يجب إزالته قبل أن يتصلب في معمارية لا يجرؤ أحد على المساس بها.
دورات ذات صلة
أساسيات البرمجة بلغة Python
مقدمة عملية إلى Python للمهندسين والمحللين الذين يحتاجون شيفرة تعمل فعلاً لا مقتطفات تعليمية. يكتسب المشاركون طلاقة في أنواع البيانات والمجموعات والدوال والملفات ومعالجة الأخطاء، ثم يبنون برنامجاً صغيراً يقرأ بيانات حقيقية وينتج تقريراً قابلاً للاستخدام.
View coursePython المتوسط وممارسات الشيفرة النظيفة
برنامج موجّه للمطورين الذين تعمل شيفرة Python لديهم لكن يصعب تغييرها. يغطي dataclasses والمولّدات والمزخرفات ومديري السياق وتلميحات الأنواع، ثم يطبّق خطوات إعادة الهيكلة التي تحوّل وحدة من تسعمئة سطر إلى وحدات صغيرة مختبَرة تحرسها أدوات black وruff وmypy.
View courseأتمتة المهام المكتبية والبرمجة النصية بلغة Python
برنامج موجّه للفرق التي تهدر ساعات أسبوعية في أعمال متكررة على الملفات والجداول والتقارير. يقوم المشاركون بأتمتة هذه المهام باستخدام Python: معالجة الملفات دفعياً وجداول Excel وCSV واستدعاء واجهات REST وتنبيهات البريد والمهام المجدولة التي تعمل دون إشراف وتبلّغ بوضوح عند الفشل.
View course