Загрузка...
Чистая архитектура. Искусство разработки программного обеспечения — обложка книги
Краткое содержание, анализ и герои

Чистая архитектура. Искусство разработки программного обеспечения

Автор Роберт С. Мартин
16+2018524 читателей
Год издания2018
Дата написания2017-12-31
ИздательствоИздательский дом "Питер"
ISBN978-5-4461-0772-8, 9780134494166
Язык книгиru
Язык оригиналаen
СерияБиблиотека программиста (Питер)
Возрастное ограничение16+
Темы
искусство программированияразработка программного обеспечениятехнология программированияархитектура информационных системтехнологии разработки программного обеспечения

Описание

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

Главный конфликт / проблема

Как построить архитектуру, которая одновременно обеспечивает гибкость, тестируемость и экономичность, избегая преждевременных решений и антишаблонов, и при этом остаётся адаптируемой к изменениям в требованиях и технологиях.

Ключевые идеи

  • Архитектура и дизайн – одно и то же, их решения формируют единую структуру.
  • Хорошая архитектура снижает трудозатраты и повышает производительность.
  • Все архитектуры следуют тем же правилам, потому что строительные блоки кода неизменны.
  • Поведение и структура – две ценности, приоритетом должна быть структура.
  • Матрица Эйзенхауэра помогает правильно расставлять приоритеты и избежать битвы за архитектуру.
  • Открытость/закрытость обеспечивает расширяемость без влияния изменений.
  • Подстановка Лисков гарантирует совместимость подтипов и предотвращает логические ошибки.
  • Разделение интерфейсов минимизирует ненужные зависимости и перекомпиляцию.
  • Инверсия зависимостей направляет зависимости от абстракций к реализациям.
  • Компонентные принципы (REP, CCP, CRP) балансируют повторное использование и изменение.
  • Ацикличность зависимостей упрощает сборку и тестирование.
  • Устойчивость компонентов определяется метриками Fan‑in/Fan‑out и связана с абстрактностью.

Вывод

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

Кому полезна

  • Разработчики программного обеспечения
  • Архитекторы систем
  • Технические лиды и менеджеры проектов
  • Инженеры по встраиваемым системам
  • Кто хочет улучшить качество и поддерживаемость кода

Главные темы

  • SOLID‑принципы и их применение в архитектуре
  • Разделение уровней: код, развертывание, сервисы
  • Тест‑драйвенный подход и его влияние на эффективность
  • Проблемы преждевременных архитектурных решений в компаниях
  • Встраиваемые системы: микропрограммы, HAL, OSAL
  • Модульные технологии Java 9 и OSGi
  • Антишаблоны портов и адаптеров
  • Метрики устойчивости и абстракции
  • Практика отложенного принятия решений
  • Компилятор как инструмент соблюдения архитектуры

Персонажи

  • Роберт Мартин — Опытный разработчик, который сформулировал основные принципы чистой архитектуры. Объясняет принципы разделения микропрограмм и программного обеспечения, приводит практические примеры.
  • User — Класс, который взаимодействует с объектами Rectangle и Square, демонстрируя нарушение LSP.
  • Bob — Именованный водитель, чей URI служит примером несовместного интерфейса.
  • Инженер‑системотехник — Обеспечивает детали оборудования, но его знания часто становятся «справочником» для кода.

Цитаты

  • «Архитектура — это набор верных решений, которые хотелось бы принять на ранних этапах работы над проектом, но которые не более вероятны, чем другие.»
  • «Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру.»
  • «Принцип открытости/закрытости — одна из движущих сил в архитектуре систем»
  • «Принцип подстановки Барбары Лисков может и должен распространяться до уровня архитектуры»
  • Проблема разделения на службы — дороговизна, и в отношении разработки, и в отношении системных ресурсов.
  • Проведя границу между бизнес‑правилами и базой данных, мы смогли задержать и отложить принятие решений, и это сэкономило нам немало времени и нервов.
  • «Не позволяйте всему вашему коду превращаться в микропрограммы — это вредно для долгосрочного здоровья вашего продукта.»
  • «Чистая встраиваемая архитектура — архитектура, поддерживающая тестирование.»
  • Окружной антишаблон портов и адаптеров
  • Дьявол кроется в деталях реализации.

Вам также может понравиться