avl (avl) wrote,
avl
avl

Category:

50. Границы и интерфейсы

(В оригинале - Architects focus is on the boundaries and interfaces)

C тех пор как Нельсон разбил флот Испании и Франции в Трафальгарском сражении, «Разделяй и властвуй» стало девизом при решении сложных проблем. Более простая формулировка, означающая почти то же самое – разделение интересов. Разделение интересов дает нам инкапсуляцию, а инкапсуляция приводит к появлению границ и интерфейсов.

С точки зрения проектировщика, самая сложная задача в построении системы – найти правильные места расположения границ и определить подходящие интерфейсы. В случае больших промышленных систем это особенно сложно, поскольку особенность таких систем – отсутствие естественно очерченных границ и сложнозапутанные предметные области. И в этой ситуации старые добрые правила «минимизируй связи, увеличивай связность» и «Не проводи границу там, где будет требоваться интенсивный обмен информацией» хоть и могут чем-то помочь, но уже не дают ответа на вопросы о том, как нужно взаимодействовать с заинтересованными сторонами для наиболее эффективного решения проблем.

И здесь приходит на помощь концепция ограниченных контекстов и их отображений, описанная в книге Эрика Эванса “Domain-Driven Design”. Ограниченный контекст – это область, в пределах которой модель или концепция однозначно определены, обычно представляемая в виде облака с информативным названием, определяющим ее роль и ответственность в предметной области. Например, в системе доставки могут быть такие контексты как «Погрузка», «Расписание» и «Доставка морем». В других предметных областях будут другие имена.

После того как контексты выделены и нарисованы, время определить отношения между ними. Эти отношения могут отображать организационные, функциональные или технические зависимости. Результатом будет отображение контекстов – набор самих контекстов и интерфейсов между ними.

Отображение контекстов дает архитектору мощный инструмент, позволяющий сфокусироваться на том, что должно быть вместе, а что – раздельно, позволяя разделять и властвовать наиболее эффективно. Эта техника может легко использоваться для документирования и анализа текущей ситуации с целью ее улучшения и редизайна для получения системы с меньшим количеством связей, повышенной связностью и хорошо определенными интерфейсами.

Автор оригинала - Einar Landre

Перевод мой. Если вы решите использовать его полностью или частично, не забудьте указать ссылку на мой живой журнал!
Tags: 97_things_architect_should_know
Subscribe

  • Фиг переведешь :)

    Пересматривая с детками Ледниковый период, включаю английские субтитры. Иногда удается заметить в оригинале игру слов, безвозвратно потерявшуюся при…

  • О сопровождении...

    Вот! Я давно это чувствовал интуитивно, а тут вот эксперт популярно объяснил, почему писать легко сопровождаемый код настолько важно.

  • Гуглокнопка и Фейсбукнопка

    Добавил к себе на сайт - надо же следовать тенденциям :) Теперь, если статья понравилась, есть куда нажимать :) Посмотрим на результат. А вообще…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments