حسین رضائی
حسین رضائی
خواندن ۲ دقیقه·۵ ماه پیش

ساده‌نویسی با پرهیز از "شاید به درد بخوره" ؛ YAGNI در برنامه نویسی چیست؟

یگنی یا YAGNI مخفف "You Aren't Gonna Need It" است، به معنی "بهش نیاز پیدا نمی‌کنی". این اصل در برنامه‌نویسی به ما یاد می‌دهد که فقط کدی را بنویسیم که در حال حاضر به آن نیاز داریم و از نوشتن کدهایی که احتمالاً در آینده ممکن است به کارمان بیایند، خودداری کنیم.

چرا YAGNI مهم است؟

  • کاهش پیچیدگی: نوشتن کدهای اضافی، برنامه را پیچیده‌تر می‌کند و خوانایی، نگهداری و توسعه آن را دشوارتر می‌سازد.
  • صرفه‌جویی در زمان: نوشتن کدهایی که به آنها نیاز نداریم، اتلاف وقت و انرژی است.
  • افزایش انعطاف‌پذیری: با تمرکز بر نیازهای فعلی، می‌توانیم کد را به گونه‌ای طراحی کنیم که به راحتی در آینده قابل تغییر و گسترش باشد.
  • کاهش خطا: کدهای کمتر، به معنای اشکالات کمتر است.

مثالی از YAGNI در عمل:

فرض کنید در حال ساخت یک وبسایت برای فروش کتاب هستید. در حال حاضر، به سیستمی برای ارسال نظر برای کتاب‌ها نیازی ندارید.

طبق YAGNI، شما نباید کدی برای این سیستم بنویسید تا زمانی که نیاز واقعی به آن احساس شود.

در عوض، می‌توانید روی قابلیت‌های اصلی مانند نمایش لیست کتاب‌ها، سبد خرید و پردازش پرداخت تمرکز کنید.

مزایای عدم نوشتن کد YAGNI:

  • سادگی: کد شما تمیزتر و خواناتر خواهد بود.
  • نگهداری آسان: به‌روزرسانی و اصلاح کد آسان‌تر خواهد بود.
  • قابلیت تست: تست کد شما آسان‌تر خواهد بود.
  • انعطاف‌پذیری: می‌توانید به راحتی در آینده ویژگی‌های جدید را اضافه کنید.

نکاتی برای رعایت YAGNI:

  • بر نیازهای فعلی تمرکز کنید: فقط کدی را بنویسید که برای حل مشکلات موجود ضروری است.
  • از حدس و گمان پرهیز کنید: اگر مطمئن نیستید که در آینده به یک ویژگی نیاز خواهید داشت، آن را ننویسید.
  • طراحی برای تغییر: کدی بنویسید که به راحتی قابل گسترش و تغییر باشد.
  • از تست به عنوان راهنما استفاده کنید: فقط کدهایی را تست کنید که واقعاً به آنها نیاز دارید.

یگنی YAGNI یک اصل ساده اما قدرتمند است که می‌تواند به شما کمک کند تا کدهای تمیزتر، قابل نگهداری‌تر و انعطاف‌پذیرتر بنویسید. با تمرکز بر نیازهای فعلی و پرهیز از نوشتن کدهای "شاید به درد بخوره"، می‌توانید در زمان و انرژی خود صرفه‌جویی کنید و از پیچیدگی‌های غیرضروری جلوگیری کنید.

yagniیگنیبرنامه نویسیprogrammingاتلاف وقت
من حسین هستم یک برنامه نویس.
شاید از این پست‌ها خوشتان بیاید