Язык профессионалов PDF Печать E-mail

(В оригинале Talk the Talk)

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

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

Все паттерны можно классифицировать по четырем основным категориям: паттерны корпоративной архитектуры, паттерны архитектуры приложения, интеграционные паттерны и паттерны проектирования. Такое разделение основано на уровне взгляда на архитектуру. Паттерны уровня корпоративной архитектуры имеют дело с самым высоким уровнем абстракции, а паттерны проектирования имеют дело с тем, как устроены и как работают отдельные компоненты.

Паттерны корпоративной архитектуры определяют фреймворки для архитектуры самого высокого уровня. Наиболее известные паттерны – это Event Driven Architecture, Service Oriented Architecture, Resource Oriented Architecture и Pipeline Architecture.

Паттерны уровня архитектуры приложения определяют то, как должны быть спроектированы отдельные приложения, входящие в корпоративную архитектуру. Наиболее часто встречающиеся паттерны – это J2EE паттерны (Session Façade и Transfer Object), а также паттерны, описанные в книге Martin Fowler «Patterns of Enterprise Application Architecture».

Паттерны интеграции важны для проектирования концепций распределения информации между компонентами, приложениями и подсистемами. Примеры интеграционных паттернов – общие файлы, удаленный вызов процедур и множество схем обмена сообщениями. Эти паттерны можно найти вот тут: http://www.enterpriseintegrationpatterns.com/eaipatterns.html.

Знание основных паттернов проектирования, описанных в книге «Design Patterns: Elements of Reusable Object-Oriented Software», обязательно для каждого проектировщика. Хотя эти паттерны могут казаться слишком низкоуровневыми для архитектора ПО, однако они являются частью стандартного словарного запаса, облегчающего коммуникацию с разработчиками.

Также очень важно знать и понимать различные антипаттерны. Термин «Антипаттерн» предложил Andrew Koenig для обозначения часто встречающегося процесса, приводящего к неудовлетворительному результату. Наиболее известные антипаттерны – это Analysis Paralysis, Design By Committee, Mushroom Management, и Death March. Знание этих антипаттернов поможет вам избежать множества ошибок, которые вы бы наверняка совершили без этого знания. Более полный список антипаттернов вы можете найти в википедии: http://en.wikipedia.org/wiki/Anti-patterns.

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

Автор оригинала - Mark Richards