Краще – ворог хорошого

Грег Найберг

Проектувальники програмного забезпечення (і особливо архітектори) схильні оцінювати рішення по тому, наскільки елегантно і оптимально вони вирішують конкретне завдання Немов судді на конкурсі краси, ми дивимося на дизайн або реалізацію і негайно бачимо незначні дефекти або недоліки, які можна легко усунути всього декількома додатковими змінами або итерациями рефакторинга Модель предметної області буквально благає виконати ще один прохід для пошуку спільних атрибутів або функцій, які можна було б перемістити в базові класи Служби, продубльовані в декількох реалізаціях, стогнуть про перетворення їх у веб-служби Запити вимагають уваги, скаржачись на буферизацію і неунікальні індекси

Моя порада: не піддавайтеся спокусі довести дизайн або реалізацію системи до досконалості Орієнтуйтеся на позначку «досить добре» і зупиніться, коли ви доберетеся до неї

«Що саме означає досить добре ?» – Запитаєте ви Це означає, що залишилися недоліки не роблять скільки-небудь помітного впливу на функціональність, зручність супроводу або продуктивність системи Архітектура та дизайн йдуть рука об руку Реалізована система працює і відповідає вимогам до продуктивності Програмний код зрозумілий, лаконічний і добре документований Чи можна зробити краще Звичайно, але й так досить добре – тому зупиніться Заявіть про свою перемогу і переходите до наступної задачі

Я вважаю, що прагнення до ідеального дизайну і ідеальної реалізації призводить до скомплікованою і заплутаним рішенням, які в кінцевому підсумку ускладнюють супровід системи

Деякі етюди в цій книзі застерігають проектувальників від зайвих абстракцій і надлишкової складності Чому ми не задовольняємося простими рішеннями Тому що ми прагнемо до ідеального рішенням Навіщо ще архітектору вводити складність в працездатний рішення, якщо не для усунення субєктивних недосконалостей в більш простому варіанті

Памятайте, що розробка додатків – не конкурс краси Перестаньте вишукувати недоліки і витрачати час на пошуки досконалості

Грег Найберг (Greg Nyberg) – незалежний консультант в області J2EE з 18-річним досвідом проектування, побудови, тестування і розгортання великомасштабних транзакційних додатків, таких як системи оформлення попередніх замовлень, центри прийому дзвінків і споживчі веб-сайти Є автором довідника «WebLogic 61 Server Workbook for Enterprise JavaBeans, 3-е видання» (O Reilly) і ведучим автором книги «Mastering WebLogic Server» (Wiley)

Джерело: Форд Н, Найгард М, де Ора Б, 97 етюдів для архітекторів програмних систем – Пер з англ – СПб: Сим-вол-Плюс, 2010 – 224 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*