У центрі уваги архітектора – кордони і інтерфейси

Ейнар Ландре

З тих пір як лорд Нельсон знищив французький та іспанський флоти при Трафальгарі в 1805 році, принцип «розділяй і володарюй» став головною мантрою для вирішення складних, комплексних завдань Інший, більш знайомий термін з таким же змістом – поділ відповідальності (separation of concern) Розподіл відповідальності веде до інкапсуляції, а інкапсуляція сприяє виділенню кордонів і інтерфейсів

Якщо дивитися на завдання очима архітектора, найбільш складна її частина – пошук природних місць для формування кордонів і визначення підходящих інтерфейсів, потрібних для створення працездатної системи Це особливо важко зробити в великих корпоративних системах, де природних кордонів часто дуже мало, а різні предметні області тісно переплетені У подібних ситуаціях почасти допомагають традиційні принципи на кшталт «Мінімізуй звязаність, збільшуй зчеплення (minimize coupling, maximize cohesion) і «Не розрізавши там, де потрібен інтенсивний обмін інформацією», однак вони нічого не говорять про те, як простим шляхом донести інформацію про завдання та потенційних рішеннях до зацікавлених сторін

Тут на допомогу приходить концепція обмежених контекстів і карт контекстів, описана Еріком Евансом в книзі «Domain-Driven Design» (Проектування на основі предметної області) (Addison-Wesley Professional) Обмеженим контекстом (bounded context) називається область унікального визначення моделі або поняття на діаграмах вона зображується у вигляді хмарки з змістовним імям, визначальним його роль або задачу в предметній області Наприклад, система транспортування може містити такі контексти, як «Відвантаження», «Планування відвантаження» та «Переміщення в межах порту» В інших предметних областях виникнуть інші імена

Після того як ви виділили обмежені контексти і завдали їх на дошку, настає наступний етап – позначення звязків між контекстами Ці звязки можуть відображати організаційні, функціональні або технічні залежності У результаті створюється карта контекстів (context тар) – сукупність контекстів і інтерфейсів між ними

Карта контекстів стає в руках архітектора корисним інструментом, який допомагає зосередитися на тому, які компоненти слід тримати разом, а які необхідно відокремити одне від одного іншими словами, наочно реалізується принцип «розділяй і володарюй» Ця техніка може бути з легкістю використана як для документування та аналізу поточної ситуації, так і для перепроектування з метою створення системи, яка має слабкою повязаністю, високим зчепленням і чітко визначеними інтерфейсами

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

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

*

*