لا تكرر نفسك
'''لا تكرر نفسك''' {{إنج| Don't repeat yourself أو DRY}} أو مبدأ عدم التكرار في [[هندسة البرمجيات]] يهدف إلى الحد من تكرار المعلومات من جميع الأنواع، وهو مفيد بشكل خاص في الأنظمة متعددة الطبقات.<ref>{{استشهاد بويب
|مسار=http://www.artima.com/intv/dry.html
|عنوان=Orthogonality and the DRY Principle
|تاريخ=2003-10-10
|تاريخ الوصول=2006-12-01
|مؤلف=Dave Thomas, interviewed by Bill Venners
| مسار أرشيف = https://web.archive.org/web/20190321050848/https://www.artima.com/intv/dry.html | تاريخ أرشيف = 21 مارس 2019 }}</ref><ref>{{استشهاد بويب
|مسار=https://www.theserverside.com/discussions/thread/39358.html#203288
|عنوان=DRY is for losers
|تاريخ=2006-03-08
|تاريخ الوصول=2013-08-31
|مؤلف=Justin Lee
| مسار أرشيف = https://web.archive.org/web/20170101184441/http://www.theserverside.com/news/thread.tss?thread_id=39358 | تاريخ أرشيف = 1 يناير 2017 }}</ref><ref>{{استشهاد بويب
|مسار=http://thedailywtf.com/articles/The-WET-Cart
|عنوان=The WET Cart
|تاريخ=2011-12-08
|تاريخ الوصول=2012-05-21
|مؤلف=Alex Papadimoulis
| مسار أرشيف = https://web.archive.org/web/20140903020653/http://thedailywtf.com:80/Articles/The-WET-Cart.aspx | تاريخ أرشيف = 3 سبتمبر 2014 }}</ref> ينص مبدأ (DRY) على أن «أي جزء في النظام ينبغي أن يكون معرّفاً في مكان واحد واضح مسؤول عن هذا الجزء.» وقد وضع المبدأ آندي هانت وديف توماس في كتابهما [[:en:The Pragmatic Programmer|المبرمج العملي]]، وهما يقومان بتطبيق المبدأ بشكل واسع على «قواعد البيانات، خطط الاختبارات، بناء النظام، وحتى التوثيق».<ref>{{استشهاد بويب
| مسار = http://www.artima.com/intv/dry.html
| عنوان = Orthogonality and the DRY Principle
| موقع = www.artima.com
| تاريخ الوصول = 2017-05-11
| الأخير = Venners
| الأول = Bill
| مسار أرشيف = https://web.archive.org/web/20190321050848/https://www.artima.com/intv/dry.html | تاريخ أرشيف = 21 مارس 2019 }}</ref> عندما يتم تطبيق مبدأ (DRY) بنجاح، يحتاج تعديل أي عنصر في النظام إلى التعديل في مكان واحد فقط، لينعكس التعديل في جميع الأماكن ذات الصلة وتبقى موحدة ومتسقة ومتزامنة، ودون أن يستدعي الأمر القيام بعدة تعديلات في الأماكن غير المرتبطة بهذا العنصر منطقياً.

== عدم التكرار DRY وضده ==
يقابل مبدأ عدم التكرار DRY ما يعرف بالحلول المبللة WET. الحلول المبللة قد تكون اختصاراً من "write everything twice" أو "we enjoy typing" أو "waste everyone's time". تظهر مشكلة الحلول المبللة عادة في الأنظمة متعددة الطبقات، حيث يمكن أن تظهر كلمة ما في عدة أماكن بدءاً من واجهة المستخدم المرئية، مروراً بأسماء المتغيرات وأسماء التوابع، وانتهاءاً ببنية قاعدة البيانات وجمل الاستعلام، بحيث لو احتاج المبرمج تغيير هذه الكلمة سيضطر إلى التعديل في كل أماكن استخدامها، أو ستظهر مشكلة عدم اتساق وتوحد المصطلحات في نفس النظام. يعالج مبدأ عدم التكرار هذه المشكلة عن طريق الحث على استخدام أدوات وقواعد تتلافى تكرار عملية التعديل إلا في مكان واحد صحيح مسؤول عنه، الأمر الذي يسمح أيضاً بإضافة وتوسيع قائمة المصطلحات بشكل سلس.<ref>{{استشهاد بخبر
| مسار = http://thedailywtf.com/articles/The-WET-Cart
| عنوان = The WET Cart
| تاريخ = 2011-12-08
| صحيفة = The Daily WTF
| لغة = en
| تاريخ الوصول = 2017-05-11
| الأخير = Papadimoulis
| الأول = Alex
| مسار أرشيف = https://web.archive.org/web/20180627231308/http://thedailywtf.com/articles/The-WET-Cart | تاريخ أرشيف = 27 يونيو 2018 }}</ref>

== طالع أيضاً ==
* [[تكرار الكود]]
* [[إعادة استخدام التعليمات البرمجية]]
* [[تسوية قاعدة البيانات]]
* [[فصل الاهتمامات]]
* [[برمجة مهيكلة]]

== المراجع ==
{{مراجع}}
{{شريط بوابات|برمجة الحاسوب|برمجيات|تقانة المعلومات|علم الحاسوب}}

{{بذرة حوسبة}}

[[تصنيف:هندسة البرمجيات]]
لا تكرر نفسك  أو مبدأ عدم التكرار في هندسة البرمجيات يهدف إلى الحد من تكرار المعلومات من جميع الأنواع، وهو مفيد بشكل خاص في الأنظمة متعددة الطبقات. ينص مبدأ (DRY) على أن «أي جزء في النظام ينبغي أن يكون معرّفاً في مكان واحد واضح مسؤول عن هذا الجزء.» وقد وضع المبدأ آندي هانت وديف توماس في كتابهما المبرمج العملي، وهما يقومان بتطبيق المبدأ بشكل واسع على «قواعد البيانات، خطط الاختبارات، بناء النظام، وحتى التوثيق». عندما يتم تطبيق مبدأ (DRY) بنجاح، يحتاج تعديل أي عنصر في النظام إلى التعديل في مكان واحد فقط، لينعكس التعديل في جميع الأماكن ذات الصلة وتبقى موحدة ومتسقة ومتزامنة، ودون أن يستدعي الأمر القيام بعدة تعديلات في الأماكن غير المرتبطة بهذا العنصر منطقياً.

 عدم التكرار DRY وضده 
يقابل مبدأ عدم التكرار DRY ما يعرف بالحلول المبللة WET. الحلول المبللة قد تكون اختصاراً من "write everything twice" أو "we enjoy typing" أو "waste everyone's time". تظهر مشكلة الحلول المبللة عادة في الأنظمة متعددة الطبقات، حيث يمكن أن تظهر كلمة ما في عدة أماكن بدءاً من واجهة المستخدم المرئية، مروراً بأسماء المتغيرات وأسماء التوابع، وانتهاءاً ببنية قاعدة البيانات وجمل الاستعلام، بحيث لو احتاج المبرمج تغيير هذه الكلمة سيضطر إلى التعديل في كل أماكن استخدامها، أو ستظهر مشكلة عدم اتساق وتوحد المصطلحات في نفس النظام. يعالج مبدأ عدم التكرار هذه المشكلة عن طريق الحث على استخدام أدوات وقواعد تتلافى تكرار عملية التعديل إلا في مكان واحد صحيح مسؤول عنه، الأمر الذي يسمح أيضاً بإضافة وتوسيع قائمة المصطلحات بشكل سلس.

 طالع أيضاً 
 تكرار الكود
 إعادة استخدام التعليمات البرمجية
 تسوية قاعدة البيانات
 فصل الاهتمامات
 برمجة مهيكلة

 المراجع 

تصنيف:هندسة البرمجيات