شرح المفهوم
يربط هذا الدرس الأساسيات معًا بوضع كود Java في مثال على نمط مشروع صغير بدلاً من مقتطف معزول. ستعمل مع خدمة بسيطة، وتزوّدها بمدخلات حقيقية، وتلاحظ كيف تؤثر خيارات التصميم الصغيرة على الوضوح والصيانة. الهدف الرئيسي هو ممارسة الدمج: ربط الدوال (methods)، والحالة (state)، والمخرجات (output) بطريقة تظل منظمة عندما يتجاوز الكود مهمة واحدة.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض المخرجات (طباعة، `canvas`، `SVG`، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- شغّل مثال المشروع مرة واحدة، ثم تتبع كيف تنتقل البيانات من `main` إلى الخدمة وتعود كمخرجات.
- أنشئ مجموعة مدخلات صغيرة تحتوي على وحدتي SKU وتحقق من أن الخدمة تخزن كل نتيجة بشكل صحيح.
- أعد هيكلة جزء واحد من المنطق إلى دالة (method) خاصة به ليصبح الصنف (class) أسهل في الاختبار.
- وثّق قرار تصميم واحد يساعد هذا المثال على أن يبدو كمشروع مصغر حقيقي بدلاً من مقتطف كود فضفاض.
دليل خطوة بخطوة
- اقرأ التدفق من `main` إلى الخدمة وحدد مكان تخزين الحالة.
- شغّل الإصدار الأساسي بدون تعديلات وتأكد من المخرجات الأولية.
- قم بإجراء تغيير واحد مركز، مثل رفض الكميات غير الصحيحة أو دعم البحث عن عنصر آخر.
- اختبر حالة متوقعة وحالة حدية واحدة للتحقق من أن الدمج لا يزال يعمل.
- اختتم بقائمة تحقق سريعة تغطي الوضوح، والصحة، وما إذا كان لكل صنف (class) وظيفة واضحة.
تمارين تطبيقية
- وسّع المثال بحيث يمكنه إزالة المخزون بالإضافة إلى إضافته.
- أنشئ مشروعًا مصغرًا ثانيًا باستخدام نفس الهيكل للمهام، أو التذاكر، أو كتب المكتبة.
- اكتب تقرير مخرجات قصير يثبت أن الخدمة تعمل بشكل صحيح بعد عدة عمليات.
تحديات برمجية
- نفّذ نسختين من منطق المخزون وقارن أيهما أسهل في الصيانة.
- صمم سيناريو أكبر قليلاً مع خدمات متعددة واشرح كيف ستحافظ على فصل المسؤوليات.
مهام تمرين صغيرة
- أضف شرط حماية (guard clause) لأكواد العناصر غير الصالحة أو الفارغة.
- اكتب فحصًا يدويًا سريعًا واحدًا للبحث عن SKU مفقود.
- لخّص في سطر واحد مسؤولية هذا المشروع المصغر.
خطأ شائع
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
تحدٍ مصغّر من الواقع
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.