شرح المفهوم
يركز هذا الدرس على جعل برامج Java الصغيرة أكثر أمانًا وقابلية للتنبؤ. بدلاً من افتراض أن المدخلات صالحة دائمًا، ستتدرب على فحص الحالات الخطرة، والاستجابة للفشل بوضوح، والحفاظ على سهولة متابعة الكود. الهدف هو رؤية كيف تبدأ الموثوقية بخيارات صغيرة: التحقق من صحة البيانات، ومعالجة الاستثناءات عمدًا، وكتابة كود يمكن لمطور آخر الوثوق به دون تخمين ما يحدث عندما تسوء الأمور.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض المخرجات (طباعة، لوحة رسم، SVG، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- شغّل البرنامج مرة بعمر صالح ومرة بنص غير صالح لتأكيد معالجة كلتا النتيجتين بنظافة.
- أنشئ قائمة مدخلات صغيرة مثل "18"، "0"، "-4"، و "abc" ولاحظ أي القيم يجب أن تمر أو تفشل.
- أعد هيكلة منطق التحليل (parsing) إلى دالة مخصصة بحيث تكون قواعد التحقق من الصحة في مكان واحد.
- دوّن قاعدة موثوقية واحدة اتبعتها، مثل الفشل السريع أو إرجاع رسالة خطأ واضحة.
دليل خطوة بخطوة
- ابدأ بالنسخة الأساسية وحدد أين يمكن للمدخلات غير الصالحة أن تعطل البرنامج.
- انقل عمل التحليل (parsing) المحفوف بالمخاطر إلى دالة مساعدة صغيرة ذات اسم واضح.
- اختبر مدخلاً طبيعيًا واحدًا وحالة فشل واحدة، ثم تحقق من أن المخرجات تشرح ما حدث.
- قم بتحسين واحد مركز، مثل رفض الأرقام السالبة أو تحسين رسالة الخطأ.
- اختتم بملاحظة سبب كون هذه النسخة أكثر أمانًا من التحليل المباشر في `main`.
تمارين تطبيقية
- غيّر المثال بحيث يتحقق من صحة كمية أو سعر بدلاً من العمر.
- أضف قاعدة أخرى، مثل قيمة قصوى مسموح بها، واشرح سبب أهميتها.
- اكتب خطة اختبار قصيرة توضح ثلاثة مدخلات على الأقل والنتيجة المتوقعة لكل منها.
تحديات برمجية
- نفّذ نسخة واحدة ترمي استثناءات وأخرى تُرجع نتيجة نجاح/فشل، ثم قارن بينهما.
- صمم أداة صغيرة للتحقق من صحة المدخلات يمكن إعادة استخدامها بواسطة أكثر من صنف (class).
مهام تمرين صغيرة
- أضف حارسًا يرفض المدخلات الفارغة قبل بدء التحليل (parsing).
- أعد تسمية أي متغيرات غامضة بحيث يكون غرضها واضحًا للوهلة الأولى.
- حسّن إحدى الرسائل بحيث يمكن للمستخدم المبتدئ فهم الفشل دون قراءة الكود.
خطأ شائع
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.