بسیاری از توسعهدهندگان فکر میکنند پیچیدگی زمانی ایجاد میشود که سیستم بزرگ شود.
اما معمولاً پیچیدگی خیلی زودتر از آن به وجود میآید.
از اولین جایی که میگوییم:
«شاید بعداً به درد بخورد.»
یک Interface اضافی،
یک لایه اضافی،
یک Generic پیچیده،
یا یک Abstraction که هنوز هیچ مسئلهای را حل نمیکند.
همه چیز با نیت خوب شروع میشود.
میخواهیم سیستم آماده آینده باشد.
اما آیندهای که هنوز نیامده، گاهی بیشترین هزینه را به امروز تحمیل میکند.
جالب اینجاست که اکثر پروژهها از کمبود معماری آسیب نمیبینند.
از معماریای آسیب میبینند که زودتر از نیاز واقعی وارد سیستم شده است.
سادگی به معنی نداشتن دانش نیست.
سادگی یعنی توانایی مقاومت در برابر اضافه کردن چیزهایی که هنوز به آنها نیاز نداریم.
در مهندسی نرمافزار، حذف کردن اغلب سختتر از اضافه کردن است.
Post #641
310