الخميس، نوفمبر 04، 2010

ترجمة كتاب 97 مسألة ينبغي أن يعرفها كل مبرمج 97 things every programmer should know--2

بسم الله و الحمد لله و الصلاة و السلام على رسول الله و بعد...
2- استفد من مباديء البرمجة الوظيفية
بالرغم من زيادة الاهتمام بالبرمجة الوظيفية functional programming في الآونة الأخيرة, إلا أن هذه المقالة ليس غرضها حثك على تعلم إحدى اللغات الوظيفية, بقدر حثك على الاستفادة من مبادئها, و أهم هذه المباديء ما يسمى بالشفافية المرجعية Referential transparency. و التي تعني أن البرنامج متى استُدعي من أي مكان سيعطي نفس النتيجة طالما أخذ نفس المدخلات و, قد تحدثنا عنها في المقالة السابقة, فلتُراجع لزاما.
من أهم مشاكل البرامج, تلك الأخطاء الناتجة عن تغيير قيم المتغيرات variables من أكثر من مكان في البرنامج, و هناك دائما قواعد في لغات البرمجة تحدد أي جزء في البرنامج يمكنه الوصول إلى أي معلومة (Visibility semantics), لكن هذه مرتبطة بمدى حِذق (مهارة) المبرمج في استخدامها.
يمكن تجنب هذه المشاكل إذا استطعنا تحقيق "الشفافية المرجعية" في برامجنا, عن طريق الإكثار من تقسيم البرامج إلي أجزاء أصغر numerous smaller functions, كل منها له مسئولية محدودة, و يتعامل مع البيانات التي تمرر له فقط passed arguments من غير التعامل مع بيانات مشاعة بين كل أجزاء البرنامج. هذا الأسلوب سيقلل المشاكل و سيسهل اكتشاف الأخطاء أيضا. و لن تتمكن من تطبيق هذه المباديء باحتراف ما لم تتعلم إحدى لغات البرمجة الوظيفية, حيث هذا الأسلوب في البرمجة هو الأسلوب الافتراضي.
عند برمجة واجهات الاستخدام User Interfaces لن يكون هذا الأسلوب مجديا, بل الأجدى أن تستخدمه عند برمجة "لب البرنامج", أي طبق هذا الأسلوب عند برمجة الوظيفة الفعلية للبرنامج و ليس واجهة استخدامه.
و هذا هو النص الأصلي للمقالة.

ليست هناك تعليقات: