Классификация шаблонов разработки ПО

О пользе шаблонов сказано много. Знание и уместное их применение ускоряет разработку программного обеспечения, а также уменьшает стоимость сопровождения кода. Шаблоны позволяют программистам эффективно общаться между собой, так как вместо того, чтобы говорить: Ну нам нужно сделать такой объект, который добавляет поведение другому объекту на этапе выполнения программы, достаточно сказать: Тут нужен декоратор. По причине необъятности отрасли разработки ПО, существует не меньше сотни различных шаблонов. Попробуем их кратко классифицировать.

Архитектурные шаблоны

К основным архитектурным шаблонам можно отнести сервис-ориентированную архитектуру (SOA), событийно-ориентированную архитектуру (EDA) и клиент-серверную архитектуру. Подобные шаблоны определяют высокоуровневый каркас системы, охватывая отдельные приложения, работающие на разных машинах.

Шаблоны уровня приложения

Шаблоны уровня приложения обычно работают в пределах отдельного микросервиса либо монолита и охватывают значительную его часть. Такие шаблоны описаны в книге Мартина Фаулера «Шаблоны корпоративных приложений», из которых можно выделить основные Domain Model, Unit Of Work, Repository и MVC.

Шаблоны интеграции

Применение шаблонов интеграции позволяет согласовать взаимодействие отдельный подсистем между собой. К основным шаблонам можно отнести файловый обмен (File Transfer), общая база данных (Shared Database), вызов удаленной процедуры (Remote Procedure Invocation) и обмен сообщениями (Messaging). Эти и другие шаблоны интеграции описаны в книге «Шаблоны интеграции корпоративных приложений», также их краткое описание можно найти на сайте enterpriseintegrationpatterns.com.

Шаблоны проектирования (GoF)

Шаблоны из книги «банды четырех» могут быть реализованы в пределах всего одного или нескольких классов, но в отдельных случаях использование некоторого GoF шаблона может просочиться во все аспекты микросервиса или монолита и сравниться по своему влиянию с шаблонами уровня приложения. Шаблоны GoF в свою очередь делятся на порождающие, структурные и поведенческие. К самым известным можно отнести шаблоны Abstract Factory, Singleton, Factory Method, Builder, Decorator, Mediator, Strategy и Iterator.

Анти-шаблоны

Осмысленное использование шаблонов повышает общую эффективность разработки, а непреднамеренное применение анти-шаблонов ту самую эффективность снижают. Знание анти-шаблонов необходимо для того, чтобы их не применять, а также уметь быстро распознать в коде, с целью выполнения рефакторинга. Такие анти-шаблоны, как God Object, Magic numbers, Spaghetti code, Reinventing the wheel являются анти-шаблонами практически всегда, а шаблоны Singleton или Service Locator могут быть рассмотрены как шаблоны, так и анти-шаблоны, в зависимости от контекста в котором они используются.

Почитать дальше

97 этюдов для архитекторов программных систем
Большой список анти-шаблонов на Википедии
Классика! Шаблоны проектирования от банды четырех

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s