البرمجة الدفاعية
تعلّم البرمجة الدفاعية: تحقّق من المدخلات، وتجنّب null، وافشل مبكرًا باستثناءات واضحة.
البرمجة الدفاعية درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
مقدمة
تعني البرمجة الدفاعية كتابة تعليمات برمجية تتوقع الأخطاء، مثل الإدخال غير الصالح والقيم null والحالات غير الصحيحة. وتساعد على اكتشاف المشاكل مبكرًا.
التحقق من الإدخالات
تحققوا من الوسائط في بداية الدوال. وإذا كان الإدخال غير صالح، فألقوا استثناءً فورًا بدلًا من متابعة التنفيذ ببيانات غير صالحة.
الشفرة: التحقق من الإدخال
تتحقق هذه الدالة من المقام وتلقي استثناءً بدلًا من القسمة على صفر.
public class Main {
static int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("Denominator must not be zero");
}
return a / b;
}
public static void main(String[] args) {
try {
System.out.println(divide(10, 0));
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
تجنّب القيم null
تجنّبوا تمرير null أو إعادته. وبدلًا من ذلك، استخدموا مجموعات فارغة أو قيمًا افتراضية أو Optional لتقليل NullPointerExceptions.
الشفرة: التحقق من null
نتحقق هنا من null ونلقي استثناءً بدلًا من السماح بوقوع NullPointerException لاحقًا.
public class Main {
static String upper(String s) {
if (s == null) {
throw new IllegalArgumentException("String must not be null");
}
return s.toUpperCase();
}
public static void main(String[] args) {
try {
System.out.println(upper(null));
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
الشفرة: الفشل السريع
الفشل السريع: اكتشفوا المشاكل فورًا من خلال أخطاء واضحة. يمنع ذلك ظهور أخطاء مربكة لاحقًا.
public class Main {
static int[] makeArray(int size) {
if (size < 0) {
throw new IllegalArgumentException("Size must be non-negative");
}
return new int[size];
}
public static void main(String[] args) {
try {
makeArray(-5);
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
التحقق من البرمجة الدفاعية
تحقق سريع: ما الهدف الأساسي من البرمجة الدفاعية؟
خلاصة
خلاصة: تتحقق البرمجة الدفاعية من الإدخالات، وتتجنب القيم null، وتفشل بسرعة. وهذا يجعل البرامج أكثر أمانًا وأسهل في تصحيح أخطائها.
الأسئلة الشائعة
هل درس «البرمجة الدفاعية» مجاني؟
نعم — نص درس «البرمجة الدفاعية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «البرمجة الدفاعية»؟
تعلّم البرمجة الدفاعية: تحقّق من المدخلات، وتجنّب null، وافشل مبكرًا باستثناءات واضحة. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «البرمجة الدفاعية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.