Я багато часу проводив, читаючи різні книги про "гарний дизайн", "дизайнерські зразки" і т. Д. Я великий фанат SOLID- підходу, і кожен раз, коли мені потрібно написати простий фрагмент коду, я думаю про те майбутнє. Отже, якщо впровадити нову функцію або виправити помилку, потрібно просто додати три рядки коду, як це:
if(xxx) {
doSomething();
}
Це не означає, що я зроблю це так. Якщо я відчуваю, що цей фрагмент коду, швидше за все, стане найближчим часом, я подумаю про те, щоб додати абстракції, перемістити цю функціональність кудись інше тощо. Мета, яку я переслідую, - зберегти середню складність такою ж, як була до моїх змін.
Я вважаю, що з точки зору коду, це досить гарна ідея - мій код ніколи не є досить довгим, і зрозуміти значення для різних сутностей, наприклад, класи, методи та відносини між класами та об'єктами, досить легко.
Проблема полягає в тому, що це займає занадто багато часу, і я часто відчуваю, що було б краще, якби я просто реалізував цю функцію "як є". Мова йде лише про "три рядки коду" проти "нового інтерфейсу + два класи для реалізації цього інтерфейсу".
З точки зору продукту (коли ми говоримо про результат ), те, що я роблю, є абсолютно безглуздим. Я знаю, що якщо ми будемо працювати над наступною версією, мати хороший код - це справді чудово. Але з іншого боку, час, який ви витратили на те, щоб зробити свій код "хорошим", можливо, було витрачено на реалізацію пари корисних функцій.
Я часто відчуваю себе дуже незадоволеним своїми результатами - хороший код, який може зробити тільки A, є гіршим, ніж поганий код, який може робити A, B, C і D.
Чи може цей підхід призвести до позитивного чистого прибутку для програмного проекту, чи це марна трата часу?