1. بسم الله الرحمن الرحيم
الحمد لله رب العالمين, الحمد لله رب السماوات ورب العرش العظيم, الحمد لله حمدا
كما ينبغي لجلال وجهه, وعظيم سلطانه, الحمد لله رب العالمين.
DRY (Don't Repeat Yourself)
إن من أهم المبادئ لدى المبرمجين, عدم تكرار نفس النص البرمجي أكثر من مرة
داخل المشروع, وهذا الأمر يعد من مبادئ هندسة البرمجيات, ويعد هذا المبدئ من
أهم المبادئ التي قدمت لتطوير البرمجيات المختلفة بأنواعها, وتم تصميم هذا
وكانت انطلاقة هذا المبدئ .. Dave Thomas و Andy Hunt المبدئ من قبل
من فكرة أن كل معرفة يجب أن تكون واحدة. لا اختلاف بها داخل النظام الواحد,
يعني أن أي نظام يجب أن تقوم ببنائه ..له قواعد يسير عليه ..هذه القواعد ثابته
للمشروع, وعليه يكون وجودها في مكان واحد هو الأساس, واستخدامها في أكثر
من مكان هو الوسيلة .. ويكون الإستخدام عن طريق الإستدعاء وليس التكرار, ومن
هنا تكمن الأهمية..فمثلا ..لو احتجنا أن نقوم بتغيير هذه القاعدة, لجميع أجزاء
النظام, فإن كل ما يلزمنا هو أن نقوم بتغيير أسطر هذه القاعدة فقط, وفي مكان
واحد, بينما في الأسلوب الآخر يلزمنا تغيير القاعدة في جميع الأماكن داخل
المشروع,
والآن .. بعد هذه اللمحة السريعة عن الموضوع ماذا تتوقع أن يكون نتاج استخدام
هذا الأسلوب ؟
clean ( ستكون النتائج بكل بساطة شيفرة برمجية واضحة - مرتبة - نظيفة
وهذه الشيفرة توضح دائما مدى احترافية المبرمج الذي يعمل على هذا ,)code
المشروع, وهي مقياس يقاس به المبرمجون لتقييم المستوى البرمجي للمبرمج ..
أيضا فإن هذا الإسلوب يقلل من التكرار الغير مرغوب فيه, وهذا يعني سرعة وأداء
أفضل للمشروع, كما أنك بذلك تجعل من عملية معالجة - تطوير - تعديل - حذف -
اضافة أي عنصر الى المشروع عملية سهلة, ويمكن القيام بها من قبلك شخصيا أو
2. من قبل أي مبرمج آخر سيقوم بقرائة الشيفرة البرمجية الخاصة بك.. فأنت عندما
تعمل ... إعمل بإسلوب تجعل من شيفرتك البرمجية مقروئة وواضحة لأي شخص
قد يقف بجانبك ويطلع على ما تكتب, وكم مقدار الوضوح في استخدام الموارد في
المشروع, كم هو دليل على احترافية المبرمج)طبعا مع اخذ الإعتبار الأداء والوقت
والتنظيم ...الخ(
والآن ..لماذا تم الإستغناء عن العمل بالأسلوب القديم والتوجه الى العمل على مبدأ
؟ DRY
وذلك لأسباب كثيرة قد يكون أهمها:
1( كل سطر في المشروع يحتاج الى تعديل أو صيانة يلزمني من المرور على
المشروع كاملا.
أيضا يجب أن يكون على مستوى Bug وحل ال ,Bug 2( يخرج كم كبير من ال
المشروع.
3( غير واضح وصعب التتبع للمبرمجين الآخرين.
4( كل مبرمج يتبع أسلوب برمجي معين, سيقوم بتوجيه اتقناص أو تحميل المبرمج
السابق مسؤولية الأخطاء الناتجة, بالإضافة الى التقليل من مهارته.
5( لم يعد أحد يعمل بهذه الأنظمة سوى المبرمجين الذي يتعلمون في أول الطريق,
لأنها مرحلة أولى قبل الانطلاق الى المرحلة الأخرى ..فهي حجر الأساس ..
؟.DRY اذن .. كيف يتم العمل على مفهوم ال
يكون العمل بتنظيم الشيفرة البرمجية بآليات وطرق مختلفة تستخدم لتنسيق الشيفرة
البرمجية داخل المشروع دون تكرار, وباستغلال كامل للوظائف....ويمكن تلخيص
3. MVC system وقد يكون من أشهرها ال ,design patterns ذلك بفكرة ال
الخ ... zend وال Yii المستخدمة في العديد من بيئات العمل مثل ال
View و Model يكون بتنظيم المشروع من خلال عمل MVC فمبدأ عمل هذا ال
شاهد هذه الصورة لفهم اجرائات العمل .. Control و
لمعرفة المزيد من التفاصيل, وسيتم بإذن MVC system )بإمكانك البحث عن ال
الله تعالى شرح هذه الموضوع في مقال آخر بإذن الله تعالى, ونكتفي هنا بالسرد
فقط(
هو من أهم الأمور التي أدت الى الإنطلاق في هذا العالم OOP وطبعا ظهور ال
وهذا المبدئ ...
؟.DRY والآن هل دائما يجب أن تكون الشيفرة البرمجية
4. مثل DRY الجواب طبعا لا .. فهناك حالات يجب أن لا يكون فيها الشيفرة البرمجية
يستخدم هذا الأسلوب لتحسين سرعة data denormalization in a database
أو أداء البيانات في قاعدة البيانات, فيكون هنا الية الإستدعاء استدعاء مباشرللبيانات
المطلوية ... )لكنها حالات خاصة وليست عامة ولها أسلوب ومبدئ خاص بها
أيضا(..
والآن ..أرجوك, عندما ترغب في تطوير أي مشروع خذ بعين الإعتبار من سيأتي
بعدك, أو خذ بعين الإعتبار نفسك اذا طلب منك أي تعديل .. استخدم مفاهيم ال
فهذا ليس عيبا !! .. function على أقل تقدير للقيام بالوظائف .. إستخدم ال OOP
أرجوك ..لا تقم بكتابة شيفرتك البرمجية على شكل أسطر متتابعة فقط ..لتنفيذ
المهمة ونقطة.
خلاصة الموضوع:
يعني استخدامك لاستراتيجية أساسية للحد من التعقيد في DRY 1( استخدامك لل
وحدات النظام, وذلك عن طريق تقسم المشروع الى أجزاء صغيرة.
2( القطع الصغيرة التي تم انشائها في النقطة الأولى يجب أن تضبط مرة واحدة في
كل النظام.
3( يجب أن قطعة صغيرة وتم ضبها داخل النظام موثقة ولا يوجد لبس بها.
اللهم اغفر لي ولوالدي وللمسلمين أحيائهم وأمواتهم إنك سميع عليم رحيم, وآخر
دعوانا أن الحمد لله رب العالمين.
أخوكم أنيس حكمت أبو حميد.