الدرس 2: المبدأ الأساسي: الأولوية لسهولة القراءة
الوضوح هو حجر الزاوية في البرمجة الجوهرية. يُقرأ الكود أكثر بكثير مما يُكتب. لذلك، فإن التحسين من أجل فهم القارئ أمر بالغ الأهمية.
فخ الكود 'الذكي' (Clever)
غالباً ما يحاول المبتدئون كتابة كود مُكثف و 'ذكي'، باستخدام ميزات لغوية معقدة أو منطق متداخل بشكل مفرط لإظهار البراعة التقنية. هذا عادةً ما يخلق إحساساً (Vibe) سيئاً.
القاعدة: في أي وقت تكتب فيه كوداً يتطلب تعليقاً فورياً لشرح ماذا يفعل، فمن المحتمل أنك فشلت في اختبار الأناقة.
الوضوح فوق الكثافة
بينما لا ندعو إلى الكود المتضخم، فإننا نعطي الأولوية لأسماء المتغيرات الواضحة والتحكم المباشر في التدفق، حتى لو أضاف ذلك بضعة أسطر إضافية.
| إحساس سيئ (ذكي/معقد) | إحساس جيد (واضح) |
|---|---|
| js | |
| const users = data.filter(u => u.a && u.b).map(u => ({ id: u.c })); | |
| js | |
| const activeAndVerifiedUsers = data.filter(user => user.isActive && user.isVerified); | |
| const userIds = activeAndVerifiedUsers.map(user => ({ id: user.userId })); | |
تقنيات للوضوح الفوري
- إدخال متغيرات تفسيرية: إذا كان هناك حساب أو شرط معقد، قم بتخزين النتيجة في متغير ذي اسم وصفي.
- تجنب التعشيش العميق (Deep Nesting): إذا كان لديك أكثر من ثلاثة مستويات من المسافة البادئة (حلقات أو شروط)، فكر في تقسيم المنطق إلى دوال منفصلة.
python
إحساس سيئ: تعشيش عميق وفحوصات معقدة
if condition_a: if condition_b: for item in list: if item.type == 'critical': # ... six lines of logic
python
إحساس جيد: تغليف التعقيد
def process_critical_items(items): # ... six lines of logic pass
if is_valid_transaction(condition_a, condition_b): for item in list: if item.type == 'critical': process_critical_items(item)