مهندسی بیشازحد (Over-engineering) ما رو کند میکنه از طرفی کم مهندسی کردن (Under-engineering) هم تو مقیاس بزرگ اذیتمون خواهد کرد.
پس نقطهی بهینه این داستان کجاست؟
چندتا سوال از این تیپ میتونیم از خودمون بپرسیم:
- این تصمیم برگشتپذیره (reversible)؟ یعنی اگه به فنا رفتیم مشه برگردیم به قبل تصمیم؟
- این تصمیم یه مشکل واقعیای که امروز داریم رو حل میکنه؟
- این موضوع میتونه بدون rewrite کد حل بشه؟
- اگه ترافیک ۱۰ برابر بشه چی میشه؟
- آیا داریم بیمورد سرویسها رو به هم وابسته (coupling) میکنیم؟
خلاصهی خلاصهش یعنی
بهتره به جای اینکه بخوایم آینده رو پیشبینی کنیم، بهتره طوری سیستم رو طراحی کنیم که برای تغییرات راحت باشیم. 👽
Saman
@cappuccino_plus