همه ما با کدی سرو کار داریم که در جای مختلف اپلیکیشن استفاده میکنیم. اصل DRY(Don't Repeat Yourself) یعنی خودتو تکرار نکن استواره. هدف اصل DRY کاهش اطلاعات تکراری و بنا به wiki تعریف دقیقش میشه:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
"هر قطعه از دانش باید یک بازنمایی منحصر به فرد و بدون ابهام در یک سیستم داشته باشد."
این اصل توسط Andy Hunt و Dave Thomas تهیه شده که در کتاب اونو توی کتاب The Pragmatic Programmer به خوبی شرح دادن.
ما تایپ کردن را دوست داریم "We enjoy typing" و یا به وقت تلف کردن همه ("Wasting everyone's time."). یعنی یک کد و یا منطق رو هی تکرار کنیم. مدیریت این کدها خیلی سخت خواهد شد مخصوصا اگه تغییری در کد ویا منطق ایجاد بشه باید همه جا تغییرات لازم رو انجام بدیم که اغلب برنامه نویس ها یه جایی رو فراموش میکنن و به اررور میخورین.
برای دوری از نقض Dry اپلیکیشنتون رو به قسمت های مختلف تقسیم کنید. وظیفه تونه کد و منطق هاتون رو به یونیت های قابل استفاده کوچک بشه. یادتون نره که متد های طولانی ننویسید.
کد کمتر, برنامه نویسی راحت تر. در وقتتون خیلی صرفه جویی میشه, ماندگاری بهتری داره و صد البته احتمال به اررور خوردن کم میکنه.
یکی از مثال های خوب برای اصل DRY هلپر ها (class helpers)هستن. که توی کتابخانه و فریمورک ها خیلی مورد استفاده قرار میگیرن.
این اصل خیلی مهمه برای برنامه نویسی بهتر شدن ولی وسواس الکی اینجا بعضی ها زیادی به خرج میدن مثلا یک قابلیت نسبتا پیچیده میخان توی اپلیکیشنشون پیاده کنن که توی جاهای مختلف استفاده میشه.
ولی توسعه دهنده میاد از اول کار قابلیت رو میبره توی یک کلاس هلپر که نمیدونه کار میکنه یا نه واسه همین کلی ساعت و شاید روز رو تلف میکنه در حالی که میشه توی همون کنترلر(یا روت های لاراول) نوشت. اینجوری واسه درک خیلی بهتر میشه