مبدأ عدم التكرار، أو "لا تكرر نفسك" ( Don't repeat yourself أو DRY) في هندسة البرمجيات هو مبدأ تطوير البرمجيات يهدف إلى الحد من تكرار المعلومات من جميع الأنواع، وهو مفيد بشكل خاص في الأنظمة متعددة الطبقات.[1][2][3] ينص مبدأ (DRY) على أن "أي جزء في النظام ينبغي أن يكون معرّفاً في مكان واحد واضح مسؤول عن هذا الجزء." وقد وضع المبدأ آندي هانت وديف توماس في كتابهما المبرمج العملي، وهما يقومان بتطبيق المبدأ بشكل واسع على "قواعد البيانات، خطط الاختبارات، بناء النظام، وحتى التوثيق"[4]. عندما يتم تطبيق مبدأ (DRY) بنجاح، يحتاج تعديل أي عنصر في النظام إلى التعديل في مكان واحد فقط، لينعكس التعديل في جميع الأماكن ذات الصلة وتبقى موحدة ومتسقة ومتزامنة، ودون أن يستدعي الأمر القيام بعدة تعديلات في الأماكن غير المرتبطة بهذا العنصر منطقياً.
عدم التكرار DRY وضده
يقابل مبدأ عدم التكرار DRY ما يعرف بالحلول المبللة WET. الحلول المبللة قد تكون اختصاراً من "write everything twice" أو "we enjoy typing" أو "waste everyone's time". تظهر مشكلة الحلول المبللة عادة في الأنظمة متعددة الطبقات، حيث يمكن أن تظهر كلمة ما في عدة أماكن بدءاً من واجهة المستخدم المرئية، مروراً بأسماء المتغيرات وأسماء التوابع، وانتهاءاً ببنية قاعدة البيانات وجمل الاستعلام، بحيث لو احتاج المبرمج تغيير هذه الكلمة سيضطر إلى التعديل في كل أماكن استخدامها، أو ستظهر مشكلة عدم اتساق وتوحد المصطلحات في نفس النظام. يعالج مبدأ عدم التكرار هذه المشكلة عن طريق الحث على استخدام أدوات وقواعد تتلافى تكرار عملية التعديل إلا في مكان واحد صحيح مسؤول عنه، الأمر الذي يسمح أيضاً بإضافة وتوسيع قائمة المصطلحات بشكل سلس[5].
طالع أيضاً
المراجع
- Dave Thomas, interviewed by Bill Venners (2003-10-10). "Orthogonality and the DRY Principle". مؤرشف من الأصل في 21 مارس 201901 ديسمبر 2006.
- Justin Lee (2006-03-08). "DRY is for losers". مؤرشف من الأصل في 1 يناير 201731 أغسطس 2013.
- Alex Papadimoulis (2011-12-08). "The WET Cart". مؤرشف من الأصل في 3 سبتمبر 201421 مايو 2012.
- Venners, Bill. "Orthogonality and the DRY Principle". www.artima.com. مؤرشف من الأصل في 21 مارس 201911 مايو 2017.
- Papadimoulis, Alex (2011-12-08). "The WET Cart". The Daily WTF (باللغة الإنجليزية). مؤرشف من الأصل في 27 يونيو 201811 مايو 2017.