Эволюционная архитектура. Автоматизированное управление программным обеспечением
Форд Нил, Парсонс Ребекка, Куа Патрик
Код товара: 5065185
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 17
PDF
1 / 17
Издательство:
Оригинальное название:
Building Evolutionary Architectures. Automated Software Governance
Год издания:
2026
Cерия:
Переводчик:
Отмечено тегами
Описание
Характеристики
Новые инструменты, фреймворки методики и парадигмы вновь и вновь меняют экосистему разработки программного обеспечения. Непрерывный прогресс основных практик разработки на протяжении последних пяти лет заставил искать новые пути и подходы к архитектуре, чтобы соответствовать постоянно меняющимся требованиям пользователей. В обновленном издании авторы Нил Форд, Ребекка Парсонс, Патрик Куа и Прамод Садаладж приводят реальные примеры, соответствующие потребностям современной разработки ПО.
"Эта книга знаменует собой важную веху, обозначающую нынешний уровень понимания проблемы. По мере того как люди начинают осознавать роль ПО в XXI веке, информация о том, как реагировать на изменения, сохраняя достигнутое, становится важнейшим навыком в области создания программного обеспечения." - Мартин Фаулер
"Эта книга знаменует собой важную веху, обозначающую нынешний уровень понимания проблемы. По мере того как люди начинают осознавать роль ПО в XXI веке, информация о том, как реагировать на изменения, сохраняя достигнутое, становится важнейшим навыком в области создания программного обеспечения." - Мартин Фаулер
код в Майшоп
5065185
возрастная категория
16+
количество томов
1
количество страниц
272 стр.
размеры
235x165x15 мм
ISBN
978-601-08-3643-3
тип бумаги
офсетная (60-220 г/м2)
цвет
Белый
вес
425 г
язык
Русский
переплёт
Мягкая обложка
Содержание
Предисловие ко второму изданию
Введение
Структура книги
Практические примеры и PenultimateWidgets
Условные обозначения
Использование исходного кода примеров
Благодарности
О научном редакторе русского издания
От издательства
ЧАСТЬ I. МЕХАНИКА
Глава 1. Архитектура эволюционных систем
Сложности создания эволюционных систем
Эволюционная архитектура
Управляемые изменения
Инкрементные изменения
Разные измерения архитектуры
Как осуществлять долгосрочное планирование,
если все постоянно меняется?
Как, построив архитектуру, предотвратить
постепенное ухудшение ее качества
Почему архитектура эволюционная
Итоги
Глава 2. Фитнес-функции
Что такое фитнес-функция
Категории
Масштаб: атомарные и комплексные функции
Периодичность: триггерные, непрерывные и
временные функции
Практический пример: триггерная или
непрерывная?
Результат: статические и динамические функции
Вызов: автоматический или ручной
Проактивность: преднамеренные и эмерджентные
функции
Охват: нужны ли фитнес-функции, специфичные
для конкретной предметной области
Кто пишет фитнес-функции
Фреймворк тестирования фитнес-функций
Результаты и реализация
Итоги
Глава 3. Инкрементные изменения архитектуры
Инкрементные изменения
Пайплайн развертывания
Практический пример: добавление фитнес-функций
в сервис выставления счетов PenultimateWidgets
Практический пример: проверка согласованности
API в автоматизированной сборке
Итоги
Глава 4. Автоматизация управления архитектурой
	
Фитнес-функции для управления архитектурой
Фитнес-функции на основе кода
Центростремительная и центробежная связанность
Абстрактность, нестабильность и расстояние от
главной последовательности
Направленность импорта
Цикломатическая сложность и управление в стиле
"пасти"
Готовые инструменты
Возможность использования библиотек с открытым
исходным кодом
А11у и другие поддерживаемые характеристики
архитектуры
ArchUnit
Зависимости пакетов
Проверка зависимостей классов
Проверки наследования
Проверки аннотаций
Проверка уровней
Линтеры для управления кодом
Практический пример: фитнес-функция
доступности
Практический пример: нагрузочное тестирование и
канареечные релизы
Практический пример: что переносить
Фитнес-функции, которые вы уже используете
Интеграционная архитектура
Управление взаимодействием в микросервисах
Практический пример: выбор способа реализации
фитнес-функции DevOps
Архитектура предприятия
Практический пример: изменение архитектуры при
развертывании 60 раз в день
Фитнес-функции соответствия
Фитнес-функции - это инструмент проверки, а не
принуждения
Документирование фитнес-функций
Итоги
ЧАСТЬ II. СТРУКТУРА
Глава 5. Топологии эволюционной архитектуры
Структура архитектуры, способной к эволюции
Коннасценция
Статическая коннасценция
Динамическая коннасценция
Свойства коннасценции
Коннасценции и ограниченный контекст
Кванты архитектуры и гранулярность
	
Независимое развертывание
Сильная функциональная связность
Сильная статическая связанность
Динамическая квантовая связанность
Взаимодействие
Согласованность
Координация
Контракты
Практический пример: микросервисы как
эволюционная архитектура
Паттерны повторного использования
Эффективное повторное использование =
абстракция +низкая волатильность
Sidecar и Service Mesh: ортогональная
операционная связанность
Data Mesh: ортогональная связанность данных
Определение сетки данных
Квант продукта данных
Итоги
Глава 6. Эволюционные данные
Проектирование эволюционных баз данных
Эволюционные схемы
Интеграция совместно используемых баз данных
Вариант 1. Отсутствие точек интеграции и
унаследованных данных
Вариант 2. Унаследованные данные, но без точек
интеграции
Вариант 3. Существующие данные и точки
интеграции
Нежелательная запутанность данных
Транзакции с двухфазным коммитом
Возраст и качество данных
Практический пример: эволюция маршрутизации в
PenultimateWidgets
От натива к фитнес-функции
Ссылочная целостность
Дублирование данных
Замена триггеров и хранимых процедур
Практический пример: эволюция реляционной
модели в нереляционную
Итоги
ЧАСТЬ III. ВЛИЯНИЕ
Глава 7. Создание эволюционных архитектур
Принципы эволюционной архитектуры
Последний ответственный момент
Эволюционная архитектура и эволюционная
разработка
Закон Постела
Архитектура должна быть тестируемой
Закон Конвея
Механика
Этап 1. Определите измерения, на которые
повлияет эволюция
Этап 2. Задайте фитнес-функцию(и) для каждого
измерения
Этап 3. Используйте пайплайны развертывания
для автоматизации фитнес-функций
Проекты Greenfield
Модернизация существующих архитектур
Подходящая связанность (coupling) и связность
(cohesion)
Следствия применения технологий COTS
Миграция архитектур
Этапы миграции
Эволюционное взаимодействие модулей
Как создавать эволюционные архитектуры
Удаляйте лишнюю изменчивость
Делайте решения обратимыми
Выбирайте эволюционность, а не предсказуемость
Создавайте защитный слой
Создавайте жертвенные архитектуры
Смягчайте влияние внешних изменений
Обновление библиотек и фреймворков
Выбирайте внутреннее версионирование
Практический пример: эволюция рейтингов
PenultimateWidgets
Архитектура на основе фитнес-функций
	
Итоги
Глава 8. Подводные камни и антипаттерны
эволюционной архитектуры
Техническая архитектура
Антипаттерн: ловушка последних 10 % и Low
Code/No Code
Практический пример: повторное использование в
PenultimateWidgets
Антипаттерн: Король-поставщик
Подводный камень: дырявые абстракции
Подводный камень: разработка ради строчки в
резюме
Инкрементные изменения
Антипаттерн: ненадлежащее управление
Практический пример: "необходимое и
достаточное" управление в PenultimateWidgets
Подводный камень: недостаточная скорость
выпуска релизов
Решение задач бизнеса
Подводный камень: персонализация продукта
Антипаттерн: система отчетов поверх системы
регистрации
Подводный камень: чрезмерно широкий горизонт
планирования
Итоги
Глава 9. Эволюционная архитектура на практике
Организационные факторы
Не боритесь с законом Конвея
Кроссфункциональность по умолчанию
Организуйте команды исходя из возможностей
бизнеса
Соотносите когнитивную нагрузку с
возможностями бизнеса
Думайте о продукте, а не о проекте
Не создавайте слишком большие команды
Связанность команды
Культура
Культура экспериментирования
Финансы и планирование бюджета
Значение для бизнеса
Разработка на основе гипотез и данных
Применение фитнес-функций в экспериментах
Практический пример: реализация протокола UDP
Практический пример: зависимости безопасности
Практический пример: фитнес-функция
параллелизма
Практический пример: фитнес-функция
соответствия
Построение фитнес-функций предприятия
Практический пример: уязвимость нулевого дня
Выделение ограниченных контекстов в
существующей интеграционной архитектуре
С чего начать?
Низко висящие фрукты
Сначала самое ценное
Тестирование
Инфраструктура
Практический пример: архитектура системы
предприятия в PenultimateWidgets
Что дальше?
Фитнес-функции на основе искусственного
интеллекта
Генеративное тестирование
Почему (или почему нет)
Зачем создавать эволюционную архитектуру
Предсказуемость или эволюционность
Масштаби руемость
Расширенные возможности для бизнеса
Время цикла как бизнес-метрика
Изолирование характеристик архитектуры на
уровне квантов
Адаптация или эволюционность
В каких случаях эволюционная архитектура не
нужна?
Большие комки грязи, неспособные к эволюции
Преобладание других характеристик архитектуры
Жертвенная архитектура
Скорое закрытие бизнеса
Итоги
Об авторах
Введение
Структура книги
Практические примеры и PenultimateWidgets
Условные обозначения
Использование исходного кода примеров
Благодарности
О научном редакторе русского издания
От издательства
ЧАСТЬ I. МЕХАНИКА
Глава 1. Архитектура эволюционных систем
Сложности создания эволюционных систем
Эволюционная архитектура
Управляемые изменения
Инкрементные изменения
Разные измерения архитектуры
Как осуществлять долгосрочное планирование,
если все постоянно меняется?
Как, построив архитектуру, предотвратить
постепенное ухудшение ее качества
Почему архитектура эволюционная
Итоги
Глава 2. Фитнес-функции
Что такое фитнес-функция
Категории
Масштаб: атомарные и комплексные функции
Периодичность: триггерные, непрерывные и
временные функции
Практический пример: триггерная или
непрерывная?
Результат: статические и динамические функции
Вызов: автоматический или ручной
Проактивность: преднамеренные и эмерджентные
функции
Охват: нужны ли фитнес-функции, специфичные
для конкретной предметной области
Кто пишет фитнес-функции
Фреймворк тестирования фитнес-функций
Результаты и реализация
Итоги
Глава 3. Инкрементные изменения архитектуры
Инкрементные изменения
Пайплайн развертывания
Практический пример: добавление фитнес-функций
в сервис выставления счетов PenultimateWidgets
Практический пример: проверка согласованности
API в автоматизированной сборке
Итоги
Глава 4. Автоматизация управления архитектурой
	
Фитнес-функции для управления архитектурой
Фитнес-функции на основе кода
Центростремительная и центробежная связанность
Абстрактность, нестабильность и расстояние от
главной последовательности
Направленность импорта
Цикломатическая сложность и управление в стиле
"пасти"
Готовые инструменты
Возможность использования библиотек с открытым
исходным кодом
А11у и другие поддерживаемые характеристики
архитектуры
ArchUnit
Зависимости пакетов
Проверка зависимостей классов
Проверки наследования
Проверки аннотаций
Проверка уровней
Линтеры для управления кодом
Практический пример: фитнес-функция
доступности
Практический пример: нагрузочное тестирование и
канареечные релизы
Практический пример: что переносить
Фитнес-функции, которые вы уже используете
Интеграционная архитектура
Управление взаимодействием в микросервисах
Практический пример: выбор способа реализации
фитнес-функции DevOps
Архитектура предприятия
Практический пример: изменение архитектуры при
развертывании 60 раз в день
Фитнес-функции соответствия
Фитнес-функции - это инструмент проверки, а не
принуждения
Документирование фитнес-функций
Итоги
ЧАСТЬ II. СТРУКТУРА
Глава 5. Топологии эволюционной архитектуры
Структура архитектуры, способной к эволюции
Коннасценция
Статическая коннасценция
Динамическая коннасценция
Свойства коннасценции
Коннасценции и ограниченный контекст
Кванты архитектуры и гранулярность
	
Независимое развертывание
Сильная функциональная связность
Сильная статическая связанность
Динамическая квантовая связанность
Взаимодействие
Согласованность
Координация
Контракты
Практический пример: микросервисы как
эволюционная архитектура
Паттерны повторного использования
Эффективное повторное использование =
абстракция +низкая волатильность
Sidecar и Service Mesh: ортогональная
операционная связанность
Data Mesh: ортогональная связанность данных
Определение сетки данных
Квант продукта данных
Итоги
Глава 6. Эволюционные данные
Проектирование эволюционных баз данных
Эволюционные схемы
Интеграция совместно используемых баз данных
Вариант 1. Отсутствие точек интеграции и
унаследованных данных
Вариант 2. Унаследованные данные, но без точек
интеграции
Вариант 3. Существующие данные и точки
интеграции
Нежелательная запутанность данных
Транзакции с двухфазным коммитом
Возраст и качество данных
Практический пример: эволюция маршрутизации в
PenultimateWidgets
От натива к фитнес-функции
Ссылочная целостность
Дублирование данных
Замена триггеров и хранимых процедур
Практический пример: эволюция реляционной
модели в нереляционную
Итоги
ЧАСТЬ III. ВЛИЯНИЕ
Глава 7. Создание эволюционных архитектур
Принципы эволюционной архитектуры
Последний ответственный момент
Эволюционная архитектура и эволюционная
разработка
Закон Постела
Архитектура должна быть тестируемой
Закон Конвея
Механика
Этап 1. Определите измерения, на которые
повлияет эволюция
Этап 2. Задайте фитнес-функцию(и) для каждого
измерения
Этап 3. Используйте пайплайны развертывания
для автоматизации фитнес-функций
Проекты Greenfield
Модернизация существующих архитектур
Подходящая связанность (coupling) и связность
(cohesion)
Следствия применения технологий COTS
Миграция архитектур
Этапы миграции
Эволюционное взаимодействие модулей
Как создавать эволюционные архитектуры
Удаляйте лишнюю изменчивость
Делайте решения обратимыми
Выбирайте эволюционность, а не предсказуемость
Создавайте защитный слой
Создавайте жертвенные архитектуры
Смягчайте влияние внешних изменений
Обновление библиотек и фреймворков
Выбирайте внутреннее версионирование
Практический пример: эволюция рейтингов
PenultimateWidgets
Архитектура на основе фитнес-функций
	
Итоги
Глава 8. Подводные камни и антипаттерны
эволюционной архитектуры
Техническая архитектура
Антипаттерн: ловушка последних 10 % и Low
Code/No Code
Практический пример: повторное использование в
PenultimateWidgets
Антипаттерн: Король-поставщик
Подводный камень: дырявые абстракции
Подводный камень: разработка ради строчки в
резюме
Инкрементные изменения
Антипаттерн: ненадлежащее управление
Практический пример: "необходимое и
достаточное" управление в PenultimateWidgets
Подводный камень: недостаточная скорость
выпуска релизов
Решение задач бизнеса
Подводный камень: персонализация продукта
Антипаттерн: система отчетов поверх системы
регистрации
Подводный камень: чрезмерно широкий горизонт
планирования
Итоги
Глава 9. Эволюционная архитектура на практике
Организационные факторы
Не боритесь с законом Конвея
Кроссфункциональность по умолчанию
Организуйте команды исходя из возможностей
бизнеса
Соотносите когнитивную нагрузку с
возможностями бизнеса
Думайте о продукте, а не о проекте
Не создавайте слишком большие команды
Связанность команды
Культура
Культура экспериментирования
Финансы и планирование бюджета
Значение для бизнеса
Разработка на основе гипотез и данных
Применение фитнес-функций в экспериментах
Практический пример: реализация протокола UDP
Практический пример: зависимости безопасности
Практический пример: фитнес-функция
параллелизма
Практический пример: фитнес-функция
соответствия
Построение фитнес-функций предприятия
Практический пример: уязвимость нулевого дня
Выделение ограниченных контекстов в
существующей интеграционной архитектуре
С чего начать?
Низко висящие фрукты
Сначала самое ценное
Тестирование
Инфраструктура
Практический пример: архитектура системы
предприятия в PenultimateWidgets
Что дальше?
Фитнес-функции на основе искусственного
интеллекта
Генеративное тестирование
Почему (или почему нет)
Зачем создавать эволюционную архитектуру
Предсказуемость или эволюционность
Масштаби руемость
Расширенные возможности для бизнеса
Время цикла как бизнес-метрика
Изолирование характеристик архитектуры на
уровне квантов
Адаптация или эволюционность
В каких случаях эволюционная архитектура не
нужна?
Большие комки грязи, неспособные к эволюции
Преобладание других характеристик архитектуры
Жертвенная архитектура
Скорое закрытие бизнеса
Итоги
Об авторах
Отзывы
Вопросы
Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!
Дарим бонусы за отзывы!
За какие отзывы можно получить бонусы?
- За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
- Публикуйте фото или видео к отзыву
- Пишите отзывы на товары с меткой "Бонусы за отзыв"
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Эволюционная архитектура. Автоматизированное управление программным обеспечением» (авторы: Форд Нил, Парсонс Ребекка, Куа Патрик), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!






