Опубликован: 12.10.2017 | Уровень: для всех | Доступ: платный
Лекция 2:

Введение в аналитические шаблоны и стили проектирования

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

Классификация используемых шаблонов проектирования

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

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

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

  • Архитектурные шаблоны:
    • структурные;
    • централизованного управления;
    • управления по событиям;
    • взаимодействия с базой данных.
  • Интеграционные шаблоны:
    • структурные;
    • по методу интеграции;
    • по типу обмена данными.
  • Структурные шаблоны.
  • Поведенческие шаблоны.
  • Порождающие шаблоны.

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

Выводы

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

К подобным архитектурам относятся те, которые отвечают следующим принципам:

  • Разделение функций. Разделение приложений на отдельные компоненты с минимальным "перекрытием" используемой общей функциональности.

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

  • Принцип единственности ответственности.

Каждый отдельно взятый компонент или модуль должен отвечать только за одно конкретное свойство/функцию или их совокупность.

  • Принцип минимального знания.

Компоненту или объекту не должны быть известны внутренние детали других компонентов или объектов.

  • Не повторяйтесь. Намерение должно быть обозначено только один раз.

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

  • Минимизируйте проектирование наперед.YAGNI ("You ain’t gonna need it").

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

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

  • Многократное применение высококачественного решения для повторяющихся бизнес-задач.
  • Предсказуемый стиль создаваемого продукта, с минимизацией затрат на его дальнейшую поддержку и развитие.
  • Общая терминология для установки единого бизнес-технического глоссария и расширения взаимопонимания в пределах группы разработки.
  • Более высокий уровень реализации задач и минимизация нежелательного углубления в детали реализации на ранних стадиях разработки.
  • Ускорение профессионального развития как всей группы в целом,так и отдельных ее членов.
  • Повышение универсальности создаваемого кода приложений.
  • Обеспечение набора альтернатив возможных реализаций, в зависимости от бизнес-требований к продукту.
< Лекция 1 || Лекция 2: 12345 || Лекция 3 >
Канагат Дюсекеев
Канагат Дюсекеев
Казахстан, Караганды, Карагандинский экономический университет, 2009
Алексей Мохов
Алексей Мохов
Россия, г. Самара