- •Введение
- •1. Цели и задачи архитектора информационных систем
- •1.1. Цели создания информационных систем
- •1.2. Базовые структуры информационных систем
- •1.3. Уровни реализации архитектуры ИС
- •1.4. Атрибуты качества информационных систем
- •1.5. Сопровождение бизнес-ориентированных ИС
- •2.2. Структурное программирование
- •2. Парадигмы программирования
- •2.1. Модульное программирование
- •2.4. Функциональное программирование
- •2.5. Общие тенденции развития парадигм программирования
- •3. Чистая архитектура
- •3.1. Кричащая архитектура
- •3.2. Принципы SOLID
- •3.2.1. Принцип единственной ответственности
- •3.2.2. Принцип открытости/закрытости
- •3.2.3. Принцип подстановки Б. Лисков
- •3.2.4. Принцип разделения интерфейсов
- •3.2.5. Принцип инверсии зависимостей
- •3.3. Программные компоненты и принципы их организации
- •3.3.1. Диаграмма компонентов
- •3.3.2. Принципы взаимосвязи компонентов
- •3.3.3. Принцип эквивалентности повторного использования и выпусков
- •3.3.4. Принцип согласованного изменения
- •3.3.5. Принцип совместного повторного использования
- •3.3.6. Сравнение принципов взаимосвязи компонентов
- •3.4. Компонентный подход как способ динамического изменения архитектуры ИС
- •3.4.1. Принцип ацикличности зависимостей
- •3.4.2. Принцип устойчивых зависимостей
- •3.4.3. Принцип устойчивости абстракций
- •3.4.4. Графическая интерпретация принципов SDP и SAP
- •3.5. Вычислительные архитектуры ИС
- •3.5.1. Клиент-серверная архитектура
- •3.5.2. Трёхзвенная архитектура
- •3.5.3. Микросервисная архитектура
- •3.6. Шаблоны и антишаблоны проектирования ИС
- •3.6.1. Шаблоны проектирования
- •3.6.2. Антишаблоны проектирования
3.Чистая архитектура
Всвязи с тем, что новые парадигмы программирования не появ-
ляются в последнее время, а сложность разрабатываемых ИС растёт,
современная архитектура систем нуждается в дополнительных подхо-
дах и принципах, позволяющих каким-то образом справляться с этой сложностью.
Одной из попыток решения вышеозначенной проблемы является появление понятия «чистой архитектуры» («clean architecture») [25].
Под «чистой архитектурой» понимается так называемая «кричащая ар-
хитектура», дополненная рядом принципов организации программного кода (принципы SOLID) и взаимодействия компонентов ИС.
3.1. Кричащая архитектура
«Кричащая архитектура» представляет собой в свою очередь не-
формализованный принцип, говорящий о том, что программные сущ-
ности должны быть названы так и иметь такие характеристики и пове-
дение, которые соответствуют рассматриваемой предметной области.
Пример 1. Так, например, сущность «Товар» с параметрами «На-
звание», «Вес», «Стоимость», «Количество» в совокупности с сущно-
стью «Заказ» с параметрами «Список товаров», «Адрес доставки» и «Покупатель» явно говорит о том, что в качестве предметной области в данном случае выступает интернет-магазин.
Пример 2. Если же для описания той же задачи оперировать поня-
тиями «Хранилище объектов» с параметрами «Список объектов», «Ад-
рес» и «Пользователь» и «Объект» с параметрами «Имя объекта», «Сумма1», «Сумма2», «Сумма3», то понять, о чем в системе идёт речь,
будет невозможно.
27
