Фундаментальный подход к программной архитектуре: паттерны, свойства, проверенные методы

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Марк Ричардс, Нил Форд
Series: Для профессионалов
Edition: 1
Publisher: Питер
Year: 2023

Language: Russian
Commentary: Publisher's PDF
Pages: 448
City: СПб.
Tags: Negotiation; Leadership; Microservices; Best Practices; Software Architecture; Team Management; Career; Event-Driven Architecture; Service-Oriented Architecture

Отзывы о книге «Фундаментальный подход к программной архитектуре»
Предисловие. Развенчание аксиом
Условные обозначения
Использование исходного кода примеров
Благодарности
Благодарности от Марка Ричардса
Благодарности от Нила Форда
От издательства
Глава 1. Введение
Определение архитектуры программного обеспечения
Ожидания от работы архитектора
Принятие архитектурных решений
Постоянный анализ архитектуры
Своевременное следование последним тенденциям
Контроль за выполнением принятых решений
Обладание обширными знаниями и опытом
Компетентность в нужной области бизнеса
Владение навыками межличностного общения
Четкое понимание политики компании
Пересечение архитектуры и …
Практика проектирования
Использование систем сопровождения или DevOps
Процесс разработки
Данные
Законы архитектуры программного обеспечения
Часть I. Основы
Глава 2. Архитектурное мышление
Архитектура и проектирование
Широта технических взглядов
Анализ компромиссов
Понимание бизнес-факторов
Баланс между архитектурой и кодированием
Глава 3. Модульность
Определение
Измерение модульности
Связность
Связанность
Абстрактность, нестабильность и удаленность от главной последовательности
Расстояние от главной последовательности
Коннасценция
Объединение показателей связанности и коннасценции
От модулей к компонентам
Глава 4. Основные свойства архитектуры
Список (неполный) архитектурных свойств
Эксплуатационные свойства архитектуры
Структурные свойства архитектуры
Сквозные свойства архитектуры
Компромиссы и наименее худшая архитектура
Глава 5. Выбор архитектурных свойств
Выбор архитектурных свойств на основе задач предметной области
Выбор архитектурных свойств на основе требований
Конкретный пример: Silicon Sandwiches
Явные свойства
Неявные свойства
Глава 6. Измерение параметров архитектурных свойств и управление их соблюдением
Измерение параметров архитектурных свойств
Эксплуатационные показатели
Структурные показатели
Показатели процесса
Управление и функции пригодности
Управление архитектурными свойствами
Функции пригодности
Глава 7. Область действия архитектурных свойств
Связанность и коннасценция
Архитектурные кванты и гранулярность
Конкретный пример: Going, Going, Gone
Глава 8. Компонентно-ориентированное мышление
Область применения компонентов
Задача архитектора
Разбиение архитектуры
Конкретный пример: Silicon Sandwiches. Разбиение
Задача разработчика
Процесс выявления компонентов
Выявление исходных компонентов
Назначение требований к компонентам
Роли и ответственности
Анализ архитектурных свойств
Реструктуризация компонентов
Гранулярность компонентов
Проектирование компонентов
Выявление компонентов
Конкретный пример: Going, Going, Gone. Выявление компонентов
Архитектурный квант. Выбор между монолитной и распределенной архитектурой
Часть II. Архитектурные стили
Глава 9. Архитектурные стили. Основы
Базовые паттерны
Большой ком грязи
Цельная архитектура
Клиент-сервер
Сравнение монолитной и распределенной архитектуры
Заблуждение № 1: надежность сети
Заблуждение № 2: нулевая задержка
Заблуждение № 3: пропускная способность ничем не ограничена
Заблуждение № 4: сеть безопасна
Заблуждение № 5: топология никогда не меняется
Заблуждение № 6: сетью всегда занимается только один администратор
Заблуждение № 7: передача данных ничего не стоит
Заблуждение № 8: сеть однородна
Другие соображения насчет распределенных архитектур
Глава 10. Многоуровневая архитектура
Топология
Уровни изоляции
Добавление уровней
Другие факторы, заслуживающие внимания
Зачем выбирать этот архитектурный стиль
Оценки архитектурных свойств
Глава 11. Конвейерная архитектура
Топология
Каналы
Фильтры
Пример
Оценки архитектурных свойств
Глава 12. Микроядерная архитектура
Топология
Ядро системы
Подключаемые компоненты (плагины)
Реестр
Контракты
Примеры и варианты использования
Оценки архитектурных свойств
Глава 13. Архитектура на основе сервисов
Топология
Варианты топологии
Дизайн сервисов и гранулярность
Разбиение базы данных
Пример архитектуры
Оценки архитектурных свойств
Когда выбирать этот архитектурный стиль
Глава 14. Архитектура, управляемая событиями
Топология
Топология брокера
Топология медиатора
Возможности работы в асинхронном режиме
Обработка ошибок
Предотвращение потери данных
Возможность широковещательной передачи
Запрос — ответ
Выбор между моделью на основе запросов и моделью на основе событий
Гибридные архитектуры, управляемые событиями
Оценки архитектурных свойств
Глава 15. Архитектура на основе пространства
Топология
Блок обработки
Виртуализированное связующее программное обеспечение
Средства переноса данных
Средства записи данных
Средства чтения данных
Коллизии данных
Облачные и локальные реализации
Реплицированное и распределенное кэширование
Особенности near-cache
Примеры реализации
Система продажи концертных билетов
Система онлайн-аукциона
Оценки архитектурных свойств
Глава 16. Оркестрированная сервис-ориентированная архитектура
История и философия
Топология
Таксономия
Бизнес-сервисы
Корпоративные сервисы
Сервисы приложений
Инфраструктурные сервисы
Механизм оркестрации
Поток сообщений
Многократное использование… и связывание
Оценки архитектурных свойств
Глава 17. Архитектура микросервисов
История
Топология
Распределенность
Ограниченный контекст
Гранулярность
Изолированность данных
API-уровень
Многократное использование в эксплуатации
Клиентские стороны приложения (фронтенды)
Обмен данными
Хореография и оркестровка
Транзакции и саги
Оценки архитектурных свойств
Дополнительные источники информации
Глава 18. Выбор подходящего архитектурного стиля
Веяния моды в архитектуре
Критерии принятия решения
Конкретный пример монолита: Silicon Sandwiches
Модульный монолит
Микроядро
Конкретный пример распределенной архитектуры: Going, Going, Gone
Часть IIIТехнические приемы и гибкие навыки
Глава 19. Архитектурные решения
Антипаттерны архитектурных решений
Антипаттерн Covering Your Assets
Антипаттерн Groundhog Day
Антипаттерн Email-Driven Architecture
Архитектурно значимые решения
Запись архитектурных решений
Базовая структура
Сохранение ADR
ADR как документация
Использование ADR для введения стандартов
Пример
Глава 20. Анализ архитектурных рисков
Матрица рисков
Оценка рисков
Проведение риск-штурма
Выявление
Консенсус
Анализ рисков пользовательских историй в методологии Agile
Примеры риск-штурма
Доступность
Адаптируемость
Безопасность
Глава 21. Составление диаграмм и проведение презентаций архитектуры
Составление диаграмм
Инструментарий
Стандарты составления диаграмм: UML, C4 и ArchiMate
Рекомендации по составлению диаграмм
Проведение презентаций
Управление временем
Постепенное выстраивание
Инфо-деки и презентации
Слайды — лишь половина всей истории
Затемнение экрана
Глава 22. Эффективная команда
Рамки, устанавливаемые для команд
Личные качества архитекторов
Диктатор
Кабинетный архитектор
Эффективный архитектор
Насколько жестким должен быть контроль?
Тревожные признаки в работе команд
Чек-листы
Чек-лист завершения разработки кода
Чек-лист модульного и функционального тестирования
Чек-лист релиза ПО
Выдача рекомендаций
Итоги
Глава 23. Навыки лидерства и ведения переговоров
Переговоры и фасилитация
Ведение переговоров с бизнес-партнерами
Переговоры с другими архитекторами
Переговоры с разработчиками
Архитектор ПО в роли лидера
Четыре «C» архитектуры
Будьте прагматичны, но дальновидны
Лидерство на основе личного примера
Взаимодействие с командой разработчиков
Итоги
Глава 24. Карьерный путь
Правило 20 минут
Разработка персонального радара
ThoughtWorks Technology Radar
Средства визуализации с открытым исходным кодом
Социальные сети
Напутствия
Приложение. Контрольные вопросы
Об авторах
Иллюстрация на обложке