یک روز مدیرم حرفی بهم زد که تا مدتها داشتم بهش فکر میکردم. برگشت بهم گفت: «پوریا، چرا نمیشه برای یک پروژهی ۲۰ میلیونی، ۱۰۰ میلیون کد زد؟!»
خیلی از ما برنامهنویسها فکر میکنیم اگه برای یک پروژهی کوچک و کمبودجه، بیایم معماریِ سنگین سیستمهای غولپیکر رو پیاده کنیم یا فیچرهای فرضیِ آینده رو همین اول کار کد بزنیم، داریم در حق کارفرما لطف میکنیم و کار مهندسی و خفن تحویل میدیم! اما حقیقت اینه که این کار دقیقاً زیر پا گذاشتن اصل YAGNI است.
یاد خاطرهی یکی از همکارام افتادم که میگفت: «اوایل کارم برای یک مشتری که کلاً ۲۰ میلیون بودجه داشت و یک سیستم ساده میخواست، رفتم سراغ پیادهسازی Microservices و CQRS و Event Sourcing و کشینگ چندلایهای با Redis! با خودم میگفتم من یک مهندس نرمافزارم و نباید از کیفیت کار بزنم. اما چی شد؟ پروژهای که قرار بود ۲ هفتهای جمع بشه، ۳ ماه طول کشید! هزینههای سرور مشتری سر به فلک کشید و موقع تغییر یک فیچر ساده، آنقدر کدها کلافِ سردرگم شده بود که مشتری کلافه شد و کلاً پروژه شکست خورد.»
کیفیت در مهندسی نرمافزار یعنی تحویلِ یک راهحل ساده، پایدار و دقیقاً متناسب با نیازِ امروز. اگه برای زیرساخت ۲۰ میلیونی، ۱۰۰ میلیون کد بزنی، کیفیت خلق نکردی؛ بلکه یک «فیل سفید» پرهزینه ساختهای که فردا نه خودت و نه هیچکس دیگه از پس نگهداری و توسعهاش برنمیآید!
به اندازه کافی نصیحتتون کردم ولی به قول ما لر ها :
گیوه بیکِش، صلا به پا نکو
گیوهای که اندازهت نیست و کش نمیاد رو به زور پات نکن
#lawsofsoftwareengineering
@codehalics | کدهالیک
Post #1167
678
کدهالیک | codehalic اصل YAGNI اتفاقاً تو عصر هوش مصنوعی صد برابر مهمتر شده! الان که AI با یک دستور ساده برامون فیچر میزنه، بزرگترین تله اینه که وسوسه بشیم بگیم «خب اینم اضافه کن، کاری نداره که!» ولی نتیجهاش میشه کدی پیچیده، دستپاشکسته و پر از دردسر. مثلاً سر سناریوی تست…
- ❤ 7
- 🔥 3
- 👏 3