لا تكرر نفسك dry (don't repeat yourself)

4

Click here to load reader

Upload: anees-abu-hmaid

Post on 11-Jul-2015

310 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: لا تكرر نفسك DRY (Don't Repeat yourself)

بسم هللا الرحمن الرحيم

الحمد هلل رب العالمين, الحمد هلل رب السماوات ورب العرش العظيم, الحمد هلل حمدا

كما ينبغي لجالل وجهه, وعظيم سلطانه, الحمد هلل رب العالمين.

DRY (Don't Repeat Yourself)

إن من أهم المبادئ لدى المبرمجين, عدم تكرار نفس النص البرمجي أكثر من مرة

داخل المشروع, وهذا األمر يعد من مبادئ هندسة البرمجيات, ويعد هذا المبدئ من

أهم المبادئ التي قدمت لتطوير البرمجيات المختلفة بأنواعها, وتم تصميم هذا

وكانت انطالقة هذا المبدئ .. Dave Thomas و Andy Huntالمبدئ من قبل

من فكرة أن كل معرفة يجب أن تكون واحدة. ال اختالف بها داخل النظام الواحد,

يعني أن أي نظام يجب أن تقوم ببنائه ..له قواعد يسير عليه ..هذه القواعد ثابته

للمشروع, وعليه يكون وجودها في مكان واحد هو األساس, واستخدامها في أكثر

هو الوسيلة .. ويكون اإلستخدام عن طريق اإلستدعاء وليس التكرار, ومن من مكان

هنا تكمن األهمية..فمثال ..لو احتجنا أن نقوم بتغيير هذه القاعدة, لجميع أجزاء

ير أسطر هذه القاعدة فقط, وفي مكان يالنظام, فإن كل ما يلزمنا هو أن نقوم بتغ

ر القاعدة في جميع األماكن داخل واحد, بينما في األسلوب اآلخر يلزمنا تغيي

المشروع,

واآلن .. بعد هذه اللمحة السريعة عن الموضوع ماذا تتوقع أن يكون نتاج استخدام

هذا األسلوب ؟

cleanنظيفة ) -مرتبة -ستكون النتائج بكل بساطة شيفرة برمجية واضحة

code ,)على هذا لوضح دائما مدى احترافية المبرمج الذي يعموهذه الشيفرة ت

.. للمبرمجالمشروع, وهي مقياس يقاس به المبرمجون لتقييم المستوى البرمجي

أيضا فإن هذا اإلسلوب يقلل من التكرار الغير مرغوب فيه, وهذا يعني سرعة وأداء

-حذف -تعديل -تطوير -أفضل للمشروع, كما أنك بذلك تجعل من عملية معالجة

ملية سهلة, ويمكن القيام بها من قبلك شخصيا أو اضافة أي عنصر الى المشروع ع

Page 2: لا تكرر نفسك DRY (Don't Repeat yourself)

من قبل أي مبرمج آخر سيقوم بقرائة الشيفرة البرمجية الخاصة بك.. فأنت عندما

تعمل ... إعمل بإسلوب تجعل من شيفرتك البرمجية مقروئة وواضحة ألي شخص

قد يقف بجانبك ويطلع على ما تكتب, وكم مقدار الوضوح في استخدام الموارد في

المشروع, كم هو دليل على احترافية المبرمج)طبعا مع اخذ اإلعتبار األداء والوقت

والتنظيم ...الخ(

واآلن ..لماذا تم اإلستغناء عن العمل باألسلوب القديم والتوجه الى العمل على مبدأ

DRY ؟

وذلك ألسباب كثيرة قد يكون أهمها:

صيانة يلزمني من المرور على ( كل سطر في المشروع يحتاج الى تعديل أو 1

المشروع كامال.

أيضا يجب أن يكون على مستوى Bug, وحل ال Bug( يخرج كم كبير من ال 2

المشروع.

( غير واضح وصعب التتبع للمبرمجين اآلخرين.3

( كل مبرمج يتبع أسلوب برمجي معين, سيقوم بتوجيه اتقناص أو تحميل المبرمج 4

ناتجة, باإلضافة الى التقليل من مهارته.السابق مسؤولية األخطاء ال

( لم يعد أحد يعمل بهذه األنظمة سوى المبرمجين الذي يتعلمون في أول الطريق, 5

النطالق الى المرحلة األخرى ..فهي حجر األساس .. ألنها مرحلة أولى قبل ا

.؟ DRYاذن .. كيف يتم العمل على مفهوم ال

جية بآليات وطرق مختلفة تستخدم لتنسيق الشيفرة يكون العمل بتنظيم الشيفرة البرم

البرمجية داخل المشروع دون تكرار, وباستغالل كامل للوظائف....ويمكن تلخيص

Page 3: لا تكرر نفسك DRY (Don't Repeat yourself)

MVC system, وقد يكون من أشهرها ال design patternsذلك بفكرة ال

... الخ zendوال Yiiالمستخدمة في العديد من بيئات العمل مثل ال

Viewو Modelعمل يكون بتنظيم المشروع من خالل MVCال فمبدأ عمل هذا

شاهد هذه الصورة لفهم اجرائات العمل .. Controlو

لمعرفة المزيد من التفاصيل, وسيتم بإذن MVC system)بإمكانك البحث عن ال

هللا تعالى شرح هذه الموضوع في مقال آخر بإذن هللا تعالى, ونكتفي هنا بالسرد

فقط(

هو من أهم األمور التي أدت الى اإلنطالق في هذا العالم OOPوطبعا ظهور ال

وهذا المبدئ ...

.؟ DRYواآلن هل دائما يجب أن تكون الشيفرة البرمجية

Page 4: لا تكرر نفسك DRY (Don't Repeat yourself)

مثل DRYالجواب طبعا ال .. فهناك حاالت يجب أن ال يكون فيها الشيفرة البرمجية

data denormalization in a database يستخدم هذا األسلوب لتحسين سرعة

فيكون هنا الية اإلستدعاء استدعاء مباشرللبيانات قاعدة البيانات, البيانات في أو أداء

)لكنها حاالت خاصة وليست عامة ولها أسلوب ومبدئ خاص بها المطلوية ...

أيضا(..

يأتي واآلن ..أرجوك, عندما ترغب في تطوير أي مشروع خذ بعين اإلعتبار من س

بعدك, أو خذ بعين اإلعتبار نفسك اذا طلب منك أي تعديل .. استخدم مفاهيم ال

OOP على أقل تقدير للقيام بالوظائف .. إستخدم الfunction !! فهذا ليس عيبا..

أرجوك ..ال تقم بكتابة شيفرتك البرمجية على شكل أسطر متتابعة فقط ..لتنفيذ

المهمة ونقطة.

خالصة الموضوع:

في التعقيد من للحد أساسية ستراتيجيةيعني استخدامك ال DRY( استخدامك لل 1

وحدات النظام, وذلك عن طريق تقسم المشروع الى أجزاء صغيرة.

( القطع الصغيرة التي تم انشائها في النقطة األولى يجب أن تضبط مرة واحدة في 2

كل النظام.

موثقة وال يوجد لبس بها. ( يجب أن قطعة صغيرة وتم ضبها داخل النظام3

اللهم اغفر لي ولوالدي وللمسلمين أحيائهم وأمواتهم إنك سميع عليم رحيم, وآخر

دعوانا أن الحمد هلل رب العالمين.

أخوكم أنيس حكمت أبو حميد.