برمجياتقراءة دقيقتين

Alex Kladov: لا تجعل دالة عامة تنادي دالة عامة أخرى، بل استخرج دالة خاصة يناديها الاثنان

نشر Alex Kladov، كاتب rust-analyzer، يوم 29 أكتوبر 2026 مقالًا بعنوان Avoid Public Functions Calling Other Public Functions. والقاعدة فيه بسيطة: إذا كان جزء من عمل دالة عامة تؤديه دالة عامة أخرى، فلا تنادِها. استخرج دالة ثالثة خاصة، واجعل الدالتين العامتين تناديانها.

والعلّة التي يشرحها أهم من القاعدة. فالـ API العامة هدفها أن تكون مريحة في مكان الاستخدام، لا أن تكون مريحة لمن يكتب الكود من الداخل. وحين يصبح نصفها أساسًا لتنفيذ نصفها الآخر، ينشأ تعارض بين الهدفين.

ولا يظهر هذا التعارض في اللحظة نفسها، بل بعد أشهر من مشاركة الكود. فالدالة العامة تكبر وتجمع معاملات اختيارية لا يُفترض أن يلمسها المستخدم أبدًا، لأنها موجودة أصلًا لخدمة النداء الداخلي. وتنتهي الواجهة مثقلة بما لا علاقة له بمن يستخدمها.

وما يحمي من ذلك أن يكون الجزء المشترك خاصًا من البداية. فتعديل دالة خاصة رخيص ومحلي، أما تعديل دالة عامة فيصل إلى كل من يعتمد عليها.

ويذكر Kladov استثناءً يقلب القاعدة: دوال الاختصار، وهي التي تجمع سلسلة نداءات شائعة لدوال عامة. هنا يُمنع أي نداء داخلي، حتى تبقى الدالة اختصارًا حقيقيًا لما يستطيع المستخدم فعله بنفسه.

ويقر الكاتب في أول المقال بأنه لم يجد مثالًا ملموسًا من الواقع يسوقه، ويطلب من القارئ أن يأخذ القاعدة على ثقة.

المصادر

  1. مقال Avoid Public Functions Calling Other Public Functions بقلم Alex Kladov

من عدد الأحد 21 جمادى الأولى - 1 نوفمبر

أخبار ذات صلة

فرق ومنتجات

مقال Coding is NOT solved: كتابة الكود صارت رخيصة لكن امتلاكه وتحمّل مسؤوليته لم يصبحا كذلك

من يقول إن البرمجة انحلّت يحسب تكلفة كتابة الكود، وهي أصغر بند. أما الصيانة والاعتمادية والأمان وتحمّل نتيجة الخطأ فما زالت على عاتق المهندس، وهي ما يُدفع له أجره.

18 ربيع الآخر - 29 سبتمبر

أخبار الأحد 21 جمادى الأولى - 1 نوفمبر