- Артикул:00-01036667
- Автор: Мартин Р.
- ISBN: 978-5-4461-0772-8
- Обложка: Мягкая обложка
- Издательство: Питер (все книги издательства)
- Город: Санкт-Петербург
- Страниц: 352
- Формат: 70x100/16 (~170x240 мм)
- Год: 2022
- Вес: 881 г
- Серия: Библиотека программиста (все книги серии)
«Идеальный программист» и «Чистый код» - легендарные бестселлеры Роберта Мартина - рассказывают, как достичь высот профессионализма. «Чистая архитектура» продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для вашего успеха.
Роберт Мартин дает прямые и лаконичные ответы на ключевые вопросы архитектуры и дизайна. «Чистую архитектуру» обязаны прочитать разработчики всех уровней, системные аналитики, архитекторы и каждый программист, который желает подняться по карьерной лестнице или хотя бы повлиять на людей, которые занимаются данной работой.
Оглавление
Предисловие
От издательства
Вступление
Благодарности
Об авторе
Часть I. Введение
Глава 1. Что такое дизайн и архитектура
Цель
Пример из практики
Заключение
Глава 2. История о двух ценностях
Поведение
Архитектура
Наибольшая ценность
Матрица Эйзенхауэра
Битва за архитектуру
Часть II. Начальные основы: парадигмы программирования
Глава 3. Обзор парадигм
Структурное программирование
Объектно-ориентированное программирование
Функциональное программирование
Пища для ума
Заключение
Глава 4. Структурное программирование
Доказательство
Объявление вредным
Функциональная декомпозиция
Формальные доказательства отсутствуют
Наука во спасение
Тестирование
Заключение
Глава 5. Объектно-ориентированное программирование
Инкапсуляция
Наследование
Полиморфизм
Заключение
Глава 6. Функциональное программирование
Квадраты целых чисел
Неизменяемость и архитектура
Ограничение изменяемости
Регистрация событий
Заключение
Часть III. Принципы дизайна
Глава 7. Принцип единственной ответственности
Признак 1: непреднамеренное дублирование
Признак 2: слияния
Решения
Заключение
Глава 8. Принцип открытости/закрытости
Мысленный эксперимент
Управление направлением
Сокрытие информации
Заключение
LSP и архитектура
Пример нарушения LSP
Заключение
Глава 10. Принцип разделения интерфейсов
Принцип разделения интерфейсов и язык
Принцип разделения интерфейсов и архитектура
Заключение
Глава 11. Принцип инверсии зависимости
Стабильные абстракции
Фабрики
Конкретные компоненты
Заключение
Часть IV. Принципы организации компонентов
Глава 12. Компоненты
Краткая история компонентов
Перемещаемость
Компоновщики
Заключение
Глава 13. Связность компонентов
Принцип эквивалентности повторного использования и выпусков
Принцип согласованного изменения
Принцип совместного повторного использования
Диаграмма противоречий для определения связности компонентов
Заключение
Глава 14. Сочетаемость компонентов
Принцип ацикличности зависимостей
Проектирование сверху вниз
Принцип устойчивых зависимостей
Принцип устойчивости абстракции
Заключение
Часть V. Архитектура
Глава 15. Что такое архитектура
Разработка
Развертывание
Эффективность работы
Сопровождение
Сохранение разнообразия вариантов
Независимость от устройства
Нежелательная почта
Физическая адресация
Заключение
Глава 16. Независимость
Варианты использования
Эффективность работы
Разработка
Развертывание
Сохранение разнообразия вариантов
Разделение уровней
Разделение вариантов использования
Режим разделения
Возможность независимой разработки
Возможность независимого развертывания
Дублирование
Режимы разделения (еще раз)
Заключение
Глава 17. Границы: проведение разделяющих линий
Пара печальных историй
FitNesse
Какие границы проводить и когда
О вводе и выводе
Архитектура с плагинами
Аргумент в пользу плагинов
Заключение
Глава 18. Анатомия границ
Пересечение границ
Ужасный монолит
Компоненты развертывания
Потоки выполнения
Локальные процессы
Службы
Заключение
Глава 19. Политика и уровень
Уровень
Заключение
Глава 20. Бизнес-правила
Сущности
Варианты использования
Модели запросов и ответов
Заключение
Глава 21. Кричащая архитектура
Тема архитектуры
Цель архитектуры
А что насчет Веб
Фреймворки - это инструменты, а не образ жизни
Тестируемые архитектуры
Заключение
Глава 22. Чистая архитектура
Правило зависимостей
Типичный сценарий
Заключение
Глава 23. Презентаторы и скромные объекты
Шаблон «Скромный объект»
Презентаторы и представления
Тестирование и архитектура
Шлюзы к базам данных
Преобразователи данных
Службы
Заключение
Глава 24. Неполные границы
Пропустить последний шаг
Одномерные границы
Фасады
Заключение
Глава 25. Уровни и границы
Охота на Бампуса
Чистая архитектура
Пересечение потоков
Разбиение потоков
Заключение
Глава 26. Главный компонент
Конечная деталь
Заключение
Глава 27. Службы: большие и малые
Сервисная архитектура
Преимущества служб
Проблема с животными
Спасение в объектах
Службы на основе компонентов
Сквозные задачи
Заключение
Глава 28. Границы тестов
Тесты как компоненты системы
Проектирование для простоты тестирования
Программный интерфейс для тестирования
Безопасность
Заключение
Глава 29. Чистая встраиваемая архитектура
Тест на профпригодность
Привязка к оборудованию - узкое место
Заключение
Часть VI. Детали
Глава 30. База данных - это деталь
Реляционные базы данных
Почему системы баз данных настолько распространены
Сохранятся ли диски
Детали
А производительность
История
Заключение
Глава 31. Веб - это деталь
Бесконечный маятник
Вывод
Заключение
Глава 32. Фреймворки - это деталь
Авторы фреймворков
Неравный брак
Риски
Решение
Объявляю вас
Заключение
Глава 33. Практический пример: продажа видео
Продукт
Анализ вариантов использования
Компонентная архитектура
Управление зависимостями
Заключение
Глава 34. Недостающая глава
Упаковка по уровням
Упаковка по особенностям
Порты и адаптеры
Упаковка по компонентам
Дьявол в деталях реализации
Организация и инкапсуляция
Другие режимы разделения
Заключение: недостающий совет
Часть VII. Приложение
Архитектурная археология
Профсоюзная система учета
Laser Trim
Контроль алюминиевого литья под давлением
4-TEL
Компьютер зоны обслуживания
Язык С
BOSS
pCCU
DLU/DRU
VRS
Электронный секретарь
Система командирования ремонтников
ROSE
Регистрационные экзамены для архитекторов
Заключение
Послесловие