شرح المفهوم
يبدأ تصحيح الأخطاء في Go غالبًا بفحوصات صغيرة وواضحة بدلًا من "السحر" الخفي. في هذا الدرس، ستعمل مع نمط Go الشائع المتمثل في إرجاع خطأ، والتحقق منه فورًا، وتغليفه بسياق أفضل. الهدف هو بناء عادة قراءة الأخطاء بعناية، وتحسين الرسالة، والحفاظ على تدفق التحكم واضحًا للشخص التالي الذي يقرأ الكود.
أين تضع الكود
- عرّف متغيرات اللون والموضع في الأعلى.
- أنشئ منطق رسم الأشكال أو وضعها في المنتصف.
- اعرض المخرجات (طباعة، لوحة، SVG، أو كتلة منسقة) في النهاية.
مرجع الأوامر
- تحقق من الأخطاء مباشرة بعد العملية التي قد تفشل ليبقى مصدر المشكلة واضحًا.
- استخدم `fmt.Printf` مع `%q` أو `%v` عندما تريد مخرجات تصحيح أخطاء أوضح في الطرفية.
- حسّن رسالة الخطأ بإضافة سياق حول الإدخال أو الخطوة التي فشلت.
- أعد تشغيل البرنامج بإدخال فاشل وصالح حتى تتمكن من مقارنة السلوك مباشرة.
دليل خطوة بخطوة
- شغّل البرنامج الأولي بإدخال خاطئ واقرأ رسالة الخطأ بعناية.
- استبدل القيمة الخاطئة بسلسلة رقمية صالحة وتأكد من أن مسار النجاح يعمل.
- أعد الإدخال غير الصالح، ولكن أعد كتابة الرسالة بحيث توفر سياقًا أفضل للقارئ.
- اشرح لماذا يعود البرنامج فورًا بعد معالجة الخطأ.
- اختتم بذكر شيء واحد جعل عملية تصحيح الأخطاء أسهل.
تمارين تطبيقية
- غيّر المثال لاختبار قيمتين غير صالحتين مختلفتين وقارن الرسائل.
- أنشئ نسخة تقرأ متغير سلسلة نصية باسم `ageText` وتحوله إلى عدد صحيح.
- أعد كتابة المخرجات بحيث تكون رسائل النجاح والفشل متميزة بصريًا وسهلة المسح الضوئي.
تحديات برمجية
- غلّف التحويل في دالة مساعدة تُرجع `(int, error)` وحافظ على وضوح رسالة الخطأ.
- صمم مثالًا صغيرًا لتصحيح الأخطاء حيث يأتي الفشل من إدخال فارغ بدلًا من أحرف غير صالحة.
مهام تمرين صغيرة
- اختبر إدخالًا واحدًا صالحًا وآخر غير صالح.
- حسّن صياغة رسالة الخطأ.
- اكتب ملخصًا من سطر واحد لسبب فحص Go لـ `err` بشكل صريح.
خطأ شائع
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.