بعد غياب تخطى العام عن أخر تدوينة تقنية لي, إبتعدت في تلك الفترة كلياً عن البرمجة والحاسب والمجتمع عموماً.

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

سنتحدث اليوم عن الشمولية أو العمومية عند كتابة الكود بمعنى كتابة كود عام لإستخدامه عدة مرات وفي أكثر من موضع.

  • ليتسم كودك بالعمومية عليك بتجريده من الإرتباطات التي تحد إستخدامه في غرض معين بمعنى آخر محاولة كتابة كود قابل للتخيصيص بأكبر قدر ممكن.

  • تطورت اللغات البرمجية تبعاً لتخدم هذا المبدأ, فبدأت البرمجة عن طريق الأوامر المتتابعة فوجد تكرار الأكواد أكثر من مرة فجاءت الفكرة لإستخدام الإجراءات والدوال لإعادة إستخدام عملية معينة بكود وحيد دون تكرار, وهو ما يعرف بمبدأ "لا تكرار لنفس الكودك" أي لا تقم بكتابة الكود أكثر من مرة لتنفيذ نفس المهمة.

  • مبدأ أكتب القليل ونفذ الكثير وهي الجملة المشهورة لمكتبة عمل jQuery المبنية على لغة javaScript, فهي سهلت كتابة أكواد هذه اللغة بشكل جميل. ومن هنا نجد أن اللغة في حد ذاتها ليست بالعقبة الكبيرة فيمكن تطويعها وجعلها ذات إنتاجية أكبر دون الحاجة للغات جديدة.

  • مبدأ التقسيم وهو مبدأ معروف في طرق حل المشكلات وهو تقسيم المشكلة الكبيرة لعدة مشكلات صغيرة والعمل على حل تلك المشكلات الصغيرة على حدة سينتهي بك المطاف بحل مشكلتك المعقدة :), نَنتهج نفس المنهج في حل المشكلات البرمجية أو العمل عموماً بقسيمه لمهمات صغيرة والعمل على إنجاز كل مهمة على حدة ثم الإنتقال للتالي.

  • من محاسن مبدأ التقسيم سهولة الرجوع للكود وفهمه بشكل أسرع, ومن هنا بدأت العمل لتطوير اللغات البرمجية لتناسب هذه المبادى التي من شأنها تنظيم الكود وسهولة تتبعه فيما بعد, فظهرت بعد الإجراءات والدوال تقسيم الأكواد عبر الملفات ومن ثَم بدأ الحاجة لأسلوب لتنظيم البرمجة أكثر وحمايته من التداخل والتعقيد وسهولة تتبعه في حالة الأكواد الكبيرة فبدأ مبدأ برمجة الكائنات أو البرمجة الكائنية "OOP" ليخدم هذه الأفكار التي تجرد الأكواد من محدوديتها لإعادة إستخدامها تبعاً.

  • مبدأ توحيد المسميات من النقاط الهامة التي تجعل الكود قابل للإستخدام مرة أخرى بشكل سهل وسريع, وقد وفرت البرمجة الكائنية "OOP" الطرق لترسيخ هذا المبدأ وتجريد المسمى ليصف صفات معينة في فئة معينة "Class" تتشابه مع صفات لفئة أخرى وفي هذه الحالة لن أغير المسمى بل سيظل هو نفسه, وهي عمليه إستخدام نفس المسميات داخل الفئات المختلفة مع محافظة الفئات على عدم تداخل هذه المسميات أو الوصول إليها أو غيره على حسب متطلبات الكود من خلال حماية المسميات عبر صلاحيات ومدى نطاق تعريف المتغيرات, هذا توحيد المسيات على مستوى الكود في لغة واحدة داخل مشروع واحد فيوجد توحيد للمسميات على مستوى مشروع واحد متعدد اللغات ويتم نقل البيانات من جهة لأخرى, ويوجد توحيد مسميات على مستوى أعم وتجده في APIs المقدمة من الشركات لسهولة التخاطب معاً ولخدمة نطاق عريض من المستخدمين وتنفيذ مهام مشتركه عبر مسميات محدده مسبقاً.

  • سأسرد مثال في مجال الويب وقس عليه.

*مثال:

  • قمنا بإنشاء قاعدة بيانات بأسماء محدده لكل عنصر في جدول معين, وتم إستخدام نفس المسميات في اللغة البرمجية للخادم (php,Python,...) وتم نقل البيانات عبر أحد هيئات نقل البيانات وليكن JSON بنفس المسميات إلى لغة العميل التي تعمل على المتصفحات وهي javaScript وإستلمتها بنفس المسميات, وعند إستخدامك للغة التنسيق CSS إستخدمت نفس المسميات لتنسيق هذه البيانات, هذا النمط يجعل مخطط حركة البيانات حاضر في ذهنك وغير مشتت وستجد نفسك تعتاد كتابة المسميات دون الرجوع لمصدرها الآتية منه لإتباعك إسلوب موحد سهل عليك البرمجة الحالية وبكل تأكيد جعل من الكود أكثر قابلية لإعادة إستخدامه مجدداً.

-وفي النهاية لا تدع هوس الوصول للكود المثالي يعطلك عن إكمال مشروعاتك وظهوره للنور فقط إبدأ في مشروع بما لديك من معرفه وستكتسب من عملك كل يوم جديد معرفة فالأكواد المثالية لم توليد مثالية ولكن مرت بمراحل تطوير كثيرة وهو حال البرمجيات جميعاً دائماً في ترقية وتعديل مستمر للوصول للمثالية وإضافة ميزات جديدة.

  • وأعتذر على الإسهاب في الموضوع ولكن هذا ما جال في خاطرى هذه الصباح فنقرت تلك النقرات على لوحة المفاتيح لأشارككم إياها :)

  • وملخص ما جاء في الأعلى أن لا تكتب كود لتستخدمه اليوم ولكن أكتب كود لتستخدمه اليوم وغداً

دمتم في رعاية الله وحفظه