لا تكرر نفسك
" لا تكرر نفسك " ( DRY ) هو مبدأ من مبادئ تطوير البرمجيات يهدف إلى تقليل تكرار المعلومات التي من المحتمل أن تتغير، واستبدالها بمفاهيم مجردة أقل عرضة للتغيير، أو استخدام تطبيع البيانات الذي يتجنب التكرار في المقام الأول.
ينص مبدأ DRY على أن "لكل معلومة تمثيل واحد واضح لا لبس فيه وموثوق به داخل النظام". وقد صاغ هذا المبدأ آندي هانت وديف توماس في كتابهما "المبرمج العملي " . [ 1 ] ويطبقانه على نطاق واسع ليشمل مخططات قواعد البيانات ، وخطط الاختبار ، ونظام البناء ، وحتى التوثيق . [ 2 ] عند تطبيق مبدأ DRY بنجاح، لا يتطلب تعديل أي عنصر من عناصر النظام تغييرًا في العناصر الأخرى غير المرتبطة به منطقيًا. بالإضافة إلى ذلك، تتغير العناصر المرتبطة منطقيًا بشكل متوقع وموحد، وبالتالي تبقى متزامنة . [ 3 ] إلى جانب استخدام الدوال والإجراءات الفرعية في شفرتهما البرمجية، يعتمد توماس وهانت على مولدات الشفرة ، وأنظمة البناء الآلية، ولغات البرمجة النصية لمراعاة مبدأ DRY عبر مختلف الطبقات.
مبدأ الاختيار الفردي
يُعد مبدأ الاختيار الواحد حالة خاصة من حالات مبدأ DRY (لا تكرر نفسك). وقد عرّفه برتراند ماير على النحو التالي: "عندما يتعين على نظام برمجي دعم مجموعة من البدائل، يجب أن تعرف وحدة واحدة فقط في النظام قائمة البدائل الكاملة." [ 4 ] وقد طُبّق هذا المبدأ عند تصميم برنامج إيفل .
البدائل
مبتل
يُطلق على الرأي المُعارض لمبدأ DRY اسم WET، وهو اختصار يُفهم منه عادةً كتابة كل شيء مرتين [ 5 ] (أو الكتابة في كل مرة ، سواءً أكانت ممتعة أم مضيعة لوقت الجميع ). تُعد حلول WET شائعة في البنى متعددة الطبقات، حيث قد يُكلف المطور، على سبيل المثال، بإضافة حقل تعليق إلى نموذج في تطبيق ويب. قد تتكرر سلسلة النص "comment" في التسمية، وعلامة HTML، واسم دالة القراءة، ومتغير خاص، وبيانات تعريف قاعدة البيانات (DDL)، والاستعلامات، وما إلى ذلك. يُزيل نهج DRY هذا التكرار باستخدام أُطر عمل تُقلل أو تُزيل جميع مهام التحرير هذه باستثناء أهمها، مما يُتيح إمكانية إضافة متغيرات معرفية جديدة في مكان واحد. [ 6 ] وقد ظهر هذا التصور لـ "WET" كبديل لبرمجة "DRY" منذ عام 2002 على الأقل في عالم جافا، على الرغم من أنه من غير المعروف من صاغ هذا المصطلح. [ 7 ]
أها
يتمثل أحد المناهج الأخرى للتجريد في تجنب التجريد المتسرع (AHA). ينطلق هذا المنهج من فهم أنه كلما زاد استثمار المهندسين في تجريد جزء من البرنامج، كلما ازداد اعتقادهم بأن تكلفة هذا الاستثمار لا يمكن استردادها ( مغالطة التكلفة الغارقة ). وبالتالي، يميل المهندسون إلى الاستمرار في تكرار نفس التجريد في كل مرة تتغير فيها المتطلبات. يفترض منهج AHA أن حلول WET وDRY تُنتج حتمًا برامج جامدة ويصعب صيانتها. بدلًا من البدء بتجريد، أو التجريد عند عدد محدد من التكرارات، يمكن أن يكون البرنامج أكثر مرونة وقوة إذا تم التجريد عند الحاجة إليه، أو عندما يصبح التكرار نفسه عائقًا، وعندما يكون معروفًا كيفية عمل التجريد. وفقًا لكينت سي. دودز، يتمثل هذا المنهج في تحسين البرنامج للتغيير أولًا، وتجنب التحسين المبكر. [ 8 ] [ 9 ]
صاغت هذا المصطلح مهندسة البرمجيات شير سكارليت ، ووصفت هذه الممارسة في الأصل من قبل مهندسة البرمجيات والمؤلفة ساندي ميتز بأنها "تفضيل التكرار على التجريد الخاطئ". [ 9 ]
انظر أيضاً
مراجع
- ↑ هانت، أندرو؛ توماس ، ديفيد (1999). المبرمج العملي: من مبتدئ إلى خبير ( الطبعة الأولى). الولايات المتحدة: أديسون-ويسلي. ص 328. ISBN 978-0-201-61622-4.
- ↑ ديف توماس، مقابلة أجراها بيل فينرز (10-10-2003). "التعامد ومبدأ DRY" . تم الاطلاع عليه بتاريخ 1-12-2006 .
- ↑ نغوين، هوان آنه؛ نغوين، تونغ ثانه؛ فام، نام هـ.؛ الكفاحي، جعفر؛ نغوين، تيان ن. (2012). "إدارة النسخ للبرمجيات المتطورة" . معاملات IEEE في هندسة البرمجيات . 38 (5): 1008-1026 . doi : 10.1109/TSE.2011.90 . ISSN 0098-5589 . تاريخ الاسترجاع: 2026-07-04 .
- ↑ بناء البرمجيات الموجهة للكائنات، الطبعة الثانية، صفحة 63
- ↑ باي، براسيد؛ خافيير، شاين (31 يناير 2017). أنماط تصميم .NET . دار نشر Packt المحدودة. رقم ISBN 978-1-78646-186-5.
- ↑ جاستن لي (2006-03-08). "الجفاف للخاسرين" . تم الاسترجاع في 2013-08-31 .
- ^ زيج زيترمان (2002-08-08). "JavaOne 2002: ملاحظات زيج" . تم الاسترجاع بتاريخ 2024-01-09 .
- ↑ كينت سي. دودز (2019-04-01). "برمجة AHA" . تم الاسترجاع في 2021-05-08 .
- 1 2 موريس، كيف (2025). البنية التحتية كبرنامج: تصميم وتقديم أنظمة ديناميكية لعصر الحوسبة السحابية ( الطبعة الثالثة). سيباستوبول، كاليفورنيا: أورايلي. ISBN 978-1-0981-5031-0.
روابط خارجية
- لا تكرر نفسك على ويكي ويكي ويب
- مرة واحدة فقط في ويكي ويكي ويب
- 97 شيئًا يجب أن يعرفها كل مبرمج (أورايلي)
- أسطورة التطبيع المفرط (مناقشة التطرف الأكاديمي مقابل سيناريوهات قواعد البيانات في العالم الحقيقي)
- ويلسون جي، أروليا دي إيه، براون سي تي، تشو هونغ إن بي، ديفيس إم، جاي آر تي، وآخرون . (2014). " أفضل الممارسات للحوسبة العلمية" . PLOS Biol . 12 (1) e1001745. arXiv : 1210.0530 . doi : 10.1371/journal.pbio.1001745 . PMC 3886731. PMID 24415924.
لا تكرر نفسك (أو الآخرين)
.
- حكايات شعبية في هندسة البرمجيات
- حكايات شعبية عن برمجة الحاسوب
- مبادئ البرمجة
- مصطلحات الحاسوب
