اصول برنامه نویسی خوب - !YAGNI- شما به آن احتیاج ندارید!

You ain’t gonna need it!
You ain’t gonna need it!


هیچ دلیلی ندارد که کدی بنویسید که نباید بنویسید! نگذارید آینده نگری یا هر دلیل دیگری کد اضافی به پروژه ی شما وارد کند. خودتان را کنترل کنید! همانقدر کد بزنید که لازم است نه بیشتر...

خیلی وقتها سعی می کنیم ویژگی های جالبی به کدمان اضافه کنیم که فقط جالب است! پس مدیریت زمان، هزینه تولید، هزینه نگهداری و پشتیبانی و ... چه می شود؟!

آها! به این فکر می کنید که در آینده ممکن است این ویژگی به کار شما بیاید و اگر بعدا آن را اضافه کنید کد شما کثیف می شود. ممنونیم از آینده نگری شما ولی آینده چه زمانی است؟ برای آن برنامه ریزی خاصی دارید؟ اگر واقعا فعلا دلیل قانع کننده ای برای وجود این ویژگی ندارید، اجازه دهید تا آن روز کد کمتر و تمیزتری داشته باشیم! این ویژگی را در دفتر یادداشت خود ثبت کنید تا فراموش نکنید ولی لطفاااا آن را به کدهای پروژه اضافه نکنید.

میلیونها تومان هزینه کردیم که این پل را روی این جوی پر آب!!!! احداث کنیم (البته به حساب شهرداری تهران میلیاردها تومان! ) این جوی آب از چه زمانی بوجود آمده و به این حجم از آب رسیده؟! سالهاست؟! چه زمانی به آن حجم از آب خواهد رسید که شما انتظار دارید؟ معلوم نیست؟ تا آن زمان این پل چقدر فرسوده می شود؟ شاید آن زمان به جای این روش و مصالح جایگزین بهتری ساخته شده باشد. حتما یک دلیل قانع کننده برای احداث آن هست؟ سیل!!!؟ خیر! کمی آنطرف تر رودخانه ای با شرایط مناسب وجود دارد که احتمال طغیان آن تقریبا صفر است! پس فقط یک سوال باقی می ماند. چرا این کار را با زمان، طبیعت، نیروی کار و بودجه کردیم؟!