تفكيك الدوال والشفرة النظيفة
قسّم المشكلات إلى دوال صغيرة واضحة الأسماء. قلّل التكرار، وفضّل الدوال المساعدة النقية، وحافظ على بساطة قوائم المعلمات.
تفكيك الدوال والشفرة النظيفة درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
لماذا نقسّم الدوال؟
لماذا نقسّم الدوال؟ الدوال الصغيرة أسهل في القراءة والاختبار وإعادة الاستخدام. وهي توضّح القصد وتخفي التفاصيل، بحيث يبدو المسار الرئيسي كأنه قصة.
مسؤولية واحدة
غرض واحد لكل دالة. إذا كانت الدالة تحسب وتطبع معًا، فقسّموها. اجعلوا الأجسام قصيرة، في حدود 5–15 سطرًا تقريبًا، واجعلوا الأسماء أفعالًا.
الأسماء والمعاملات
الأسماء تروي القصة. فضّلوا applyDiscount على calc1. اجعلوا المعاملات قليلة وذات معنى، وتجنّبوا أعلام boolean التي تخفي السلوك.
التخلص من التكرار
DRY. إذا نسختم الأسطر القليلة نفسها ولصقتموها، فاستخرجوا دالة مساعدة واستدعوها في الموضعين. يقلّل ذلك الأخطاء عند تغيّر القواعد.
الدوال المساعدة النقية
الدوال النقية تعتمد على المدخلات فقط وتعيد نتيجة. يسهل إعادة استخدامها واختبارها. أبقوا عمليات I/O والطباعة عند الأطراف.
عرض توضيحي: تقسيم العمل إلى دوال مساعدة
لاحظوا الدوال المساعدة الصغيرة والواضحة (applyDiscount وaddTax وround2). المنطق قابل لإعادة الاستخدام والاختبار، بينما الطباعة معزولة.
public class Main {
// Entry point: reads like a story using small helpers
public static void main(String[] args) {
double subtotal = 120.00;
double discountRate = 0.10; // 10% off
double taxRate = 0.08; // 8% tax
double discounted = applyDiscount(subtotal, discountRate); // pure
double taxed = addTax(discounted, taxRate); // pure
double total = round2(taxed); // pure
printReceipt(subtotal, discountRate, taxRate, total); // I/O kept at edge
}
// Apply a percentage discount (pure)
static double applyDiscount(double amount, double rate) {
return amount - (amount * rate);
}
// Add a percentage tax (pure)
static double addTax(double amount, double rate) {
return amount + (amount * rate);
}
// Round to 2 decimals (pure)
static double round2(double x) {
return Math.round(x * 100.0) / 100.0;
}
// Handle printing separately (side effect)
static void printReceipt(double subtotal, double discountRate, double taxRate, double total) {
System.out.println("Subtotal: " + subtotal);
System.out.println("Discount: " + (int)(discountRate * 100) + "%");
System.out.println("Tax: " + (int)(taxRate * 100) + "%");
System.out.println("Total: " + total);
}
}
التحقق من التصميم النظيف
تحقق سريع: أي اختيار يعكس أفضل تصميم للدوال؟
مراجعة
مراجعة: قسّموا المهام، واختاروا أسماء واضحة، وأزيلوا التكرار، وأبقوا الدوال المساعدة النقية في النواة، مع وضع الآثار الجانبية عند الأطراف.
الأسئلة الشائعة
هل درس «تفكيك الدوال والشفرة النظيفة» مجاني؟
نعم — نص درس «تفكيك الدوال والشفرة النظيفة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «تفكيك الدوال والشفرة النظيفة»؟
قسّم المشكلات إلى دوال صغيرة واضحة الأسماء. قلّل التكرار، وفضّل الدوال المساعدة النقية، وحافظ على بساطة قوائم المعلمات. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «تفكيك الدوال والشفرة النظيفة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التمرير بالقيمة في Java
- الدوال static مقابل دوال الكائن
- تفكيك الدوال والشفرة النظيفة