Боріться з повтореннями

Ніклас Нільссон

Чи доводиться вашим розробникам виконувати одноманітні завдання, над якими майже не потрібно думати Трапляються чи в коді майже однакові фрагменти Чи помічаєте ви код, написаний методом «скопіювати- вставити-змінити » Якщо відповіді позитивні, то ваша команда працює повільніше, ніж могла б, і, як не дивно, причиною тому можете бути саме ви

Перш ніж пускатися в пояснення, давайте домовимося про двох істинах, що стосуються розробки програмного забезпечення:

• Дублювання – це зло

• Повторювана робота уповільнює розробку

Ви як архітектор задаєте тон Ви краще всіх уявляєте собі систему в цілому, і, швидше за все, саме ви задали напрямок роботи, створивши повний вертикальний зріз системи – приклад, який до теперішнього моменту був неодноразово скопійований Кожна операція копіювання (копіює чи розробник кілька рядків коду, XML-файл або клас) свідчить про те, що в системі щось можна спростити або викинути Найчастіше копіюється не логікою предметної області, а інфраструктурний код, що забезпечує її роботу З цієї причини дуже важливо, щоб ви чітко уявляли собі можливий ефект від своїх прикладів Будь-які фрагменти коду, будь приклади конфігурації в ваших прикладах стануть основою для десятків, сотень і тисяч інших частин системи Отже, ви зобовязані стежити за тим, щоб ваш код був зрозумілим, добре передавав ваші наміри і не містив нічого, крім самого істотного – логіки предметної області Як архітектор ви повинні бути вкрай чутливі до будь повторам, тому що все, що ви пишете, буде повторено

У вашій системі такого не відбувається, правда А тепер погляньте на цей конфігураційний файл: що потребують зміни, якщо застосувати його до іншої частини системи, а що залишиться колишнім Або візьміть типовий метод рівня бізнес-логіки: чи немає в ньому шаблону, який виявляється і в інших методах з такими операціями, як обробка транзакцій, логи-вання, аутентифікація або аудит А як щодо рівня доступу до даних Чи часто зустрічаються однакові фрагменти, що відрізняються тільки іменами сутностей і полів Дивіться на речі ширше Трапляються Чи вам дві-три рядки коду, які завжди йдуть поруч і сприймаються як одне ціле, хоча і працюють з різними обєктами Все це приклади повторення З часом розробники вчаться відсівати й ігнорувати повторення при читанні коду, звертаючи увагу лише на цікаві відмінності Але навіть за наявності такого навику читання коду гальмується Такий код підходить для виконання компютером, але не для читання розробниками

Ваша прямий обовязок – позбутися повторень Можливо, для цього вам доведеться освоїти нову інфраструктуру, створити досконаліші абстракції, звернутися до фахівців для створення аспектно інфраструктури або написати кілька невеликих генераторів коду І все ж повторення нікуди не зникнуть, поки хтось спеціально не подбає про це

І цей хтось – ви

Біографія автора наведена на стор 45

Джерело: Форд Н, Найгард М, де Ора Б, 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>

*

*