Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания
Фарли Дэвид
Код товара: 4945527
(0 оценок)Оценить
ОтзывНаписать отзыв
ВопросЗадать вопрос
1 / 2
PDF
Фиксированная скидка
Акция до 31.12.2026
-35%
2 625
4 037
Доставим в
г. МоскваКурьером
бесплатно от 10 000 ₽
В пункт выдачи
от 200 ₽
бесплатно от 10 000 ₽
Точная стоимость доставки рассчитывается при оформлении заказа
Издательство:
Описание
Характеристики
Дэвид Фарли, легендарный разработчик и создатель continuous delivery, рассказывает о фундаментальных принципах разработки современного ПО. Пора познакомиться с наиболее эффективными и грамотными методами управления рабочими процессами, которые позволят повысить качество ваших приложений, вашей жизни и жизни ваших коллег.
Ключевые концепции, лежащие в основе эффективной разработки ПО, - это непрерывное обучение и управление сложностью. Дэвид Фарли анализирует их и формулирует принципы, следование которым приведет к улучшению дизайна ПО и качества кода, а также методы и подходы, доказавшие свою эффективность и приводящие к успеху.
Речь идет не об абстракциях, вы освоите реальные приемы, которыми пользуются опытные разработчики ПО. Эти техники эмпирические и итеративные, они основаны на обратной связи и сосредоточены на выполнении кода, то есть соответствуют всем требованиям современной разработки.
Ключевые концепции, лежащие в основе эффективной разработки ПО, - это непрерывное обучение и управление сложностью. Дэвид Фарли анализирует их и формулирует принципы, следование которым приведет к улучшению дизайна ПО и качества кода, а также методы и подходы, доказавшие свою эффективность и приводящие к успеху.
Речь идет не об абстракциях, вы освоите реальные приемы, которыми пользуются опытные разработчики ПО. Эти техники эмпирические и итеративные, они основаны на обратной связи и сосредоточены на выполнении кода, то есть соответствуют всем требованиям современной разработки.
код в Майшоп
4945527
возрастная категория
16+
количество томов
1
количество страниц
288 стр.
размеры
231x163x15 мм
ISBN
978-5-4461-2335-3
тип бумаги
офсетная (60-220 г/м2)
цвет
Жёлтый
вес
450 г
язык
Русский
переплёт
Мягкая обложка
Содержание
О книге "Современная программная инженерия"
Вступительное слово
Введение
Определение программной инженерии
Структура книги
Благодарности
Об авторе
От издательства
I
ЧТО ТАКОЕ ПРОГРАММНАЯ ИНЖЕНЕРИЯ
ГЛАВА 1. ВВЕДЕНИЕ
Инженерия - практическое применение
теоретической науки
Что такое программная инженерия?
Переосмысление понятия программной инженерии
Зарождение программной инженерии
Меняя парадигму
Итоги
ГЛАВА 2. ЧТО ТАКОЕ ИНЖЕНЕРИЯ?
Производство не наша проблема
Инженерия проектная, а не производственная
Рабочее определение инженерии
Инженерия - это не код
Почему инженерия важна?
Ограничения ремесленного производства
Точность и масштабируемость
Управление сложностью
Повторяемость и точность измерений
Инженерия, креативность и ремесло
Почему то, чем мы занимаемся, - это не
программная инженерия
Компромиссы
Иллюзия прогресса
От ремесла к инженерному делу
Ремесла недостаточно
Пришло ли время мыслить иначе?
Итоги
ГЛАВА 3. ОСНОВЫ ИНЖЕНЕРНОГО ПОДХОДА
Разработка - это индустрия изменений?
Важность измерений
Использование метрик стабильности и пропускной
способности
Основы программной инженерии
Экспертное познание
Экспертное управление сложностью
Итоги
II
ОПТИМИЗАЦИЯ ДЛЯ ОБУЧЕНИЯ
ГЛАВА 4. ИТЕРАТИВНЫЙ ПОДХОД
Практические преимущества итеративного
подхода
Итерация как стратегия защитного
проектирования
Сила планирования
Практическая ценность итеративного подхода
Итоги
ГЛАВА 5. ОБРАТНАЯ СВЯЗЬ
Практический пример важности обратной связи
Обратная связь в кодировании
Обратная связь в интеграции
Обратная связь в дизайне
Обратная связь в архитектуре
Быстрая обратная связь предпочтительнее
Обратная связь в дизайне продукта
Обратная связь в организации и культуре
Итоги
ГЛАВА 6. ИНКРЕМЕНТАЛИЗМ
Важность модульности
Инкрементализм в организации
Инструменты инкрементализма
Ограничение влияния изменений
Инкрементальный дизайн
Итоги
ГЛАВА 7. ЭМПИРИЗМ
Основано на реальности
Отделяйте эмпиризм от эксперимента
"Я знаю ошибку!"
Избегайте самообмана
Изобретайте реальность, соответствующую
аргументам
Опирайтесь на реальность
Итоги
ГЛАВА 8. БЫТЬ ЭКСПЕРИМЕНТАТОРОМ
Что значит быть экспериментатором?
Обратная связь
Гипотеза
Измерения
Управление переменными
Автоматизированное тестирование как
эксперимент
Помещая результаты тестирования в контекст
Объем эксперимента
Итоги
III
ОПТИМИЗАЦИЯ ДЛЯ УПРАВЛЕНИЯ СЛОЖНОСТЬЮ
ГЛАВА 9. МОДУЛЬНОСТЬ
Признаки модульности
Недооценка важности хорошего дизайна
Важность тестируемости
Тестируемость повышает модульность
Службы и модульность
Развертываемость и модульность
Модульность в разных масштабах
Модульность в системах, создаваемых человеком
Итоги
ГЛАВА 10. СВЯЗНОСТЬ
Модульность и связность: основы дизайна
Базовое снижение связности
Контекст имеет значение
Высокопроизводительное программное
обеспечение
Отсылка к связанности
Обеспечение высокой связности с помощью TDD
Как добиться связности
Цена плохой связности
Связность в человеческих системах
Итоги
ГЛАВА 11. РАЗДЕЛЕНИЕ ОТВЕТСТВЕННОСТИ
Внедрение зависимости
Разделение необходимой и случайной сложности
Важность DDD
Тестируемость
Порты и адаптеры
Когда использовать порты и адаптеры
Что такое API?
Использование TDD для разделения
ответственности
Итоги
ГЛАВА 12. СОКРЫТИЕ ИНФОРМАЦИИ И АБСТРАКЦИЯ
Абстракция или сокрытие информации
Почему образуются большие комки грязи?
Организационные и культурные проблемы
Технические вопросы и вопросы проектирования
Страх чрезмерного усложнения
Повышение абстракции с помощью тестирования
Сила абстракции
Дырявые абстракции
Выбор подходящих абстракций
Абстракции из предметной области
Абстрактная случайная сложность
Изолируйте код от сторонних систем
Всегда скрывайте информацию, если это возможно
Итоги
ГЛАВА 13. УПРАВЛЕНИЕ СВЯЗАННОСТЬЮ
Стоимость связанности
Масштабирование
Микросервисы
Снижение связанности может означать больше
кода
Слабая связанность - не единственная важная
деталь
Выбор в пользу слабой связанности
В чем отличие от разделения ответственности?
DRY - это слишком просто
Асинхронность как инструмент слабой связанности
Проектирование слабой связанности
Слабая связанность в организациях
Итоги
IV
Инструменты программной инженерии
Глава 14. ИНСТРУМЕНТЫ ИНЖЕНЕРНОЙ
ДИСЦИПЛИНЫ
Что такое программная разработка
Тестируемость как инструмент
Точки измерения
Сложности с обеспечением тестируемости
Как улучшить тестируемость
Развертываемость
Скорость
Управление переменными
Непрерывная доставка
Общие инструменты для поддержки разработки
Итоги
Глава 15. СОВРЕМЕННЫЙ ИНЖЕНЕР-РАЗРАБОТЧИК
Инженерия как человеко-ориентированный процесс
Организации - лидеры в цифровой сфере
Результаты и механизмы
Устойчивость и широкая применимость
Основы инженерной дисциплины
Итоги
Вступительное слово
Введение
Определение программной инженерии
Структура книги
Благодарности
Об авторе
От издательства
I
ЧТО ТАКОЕ ПРОГРАММНАЯ ИНЖЕНЕРИЯ
ГЛАВА 1. ВВЕДЕНИЕ
Инженерия - практическое применение
теоретической науки
Что такое программная инженерия?
Переосмысление понятия программной инженерии
Зарождение программной инженерии
Меняя парадигму
Итоги
ГЛАВА 2. ЧТО ТАКОЕ ИНЖЕНЕРИЯ?
Производство не наша проблема
Инженерия проектная, а не производственная
Рабочее определение инженерии
Инженерия - это не код
Почему инженерия важна?
Ограничения ремесленного производства
Точность и масштабируемость
Управление сложностью
Повторяемость и точность измерений
Инженерия, креативность и ремесло
Почему то, чем мы занимаемся, - это не
программная инженерия
Компромиссы
Иллюзия прогресса
От ремесла к инженерному делу
Ремесла недостаточно
Пришло ли время мыслить иначе?
Итоги
ГЛАВА 3. ОСНОВЫ ИНЖЕНЕРНОГО ПОДХОДА
Разработка - это индустрия изменений?
Важность измерений
Использование метрик стабильности и пропускной
способности
Основы программной инженерии
Экспертное познание
Экспертное управление сложностью
Итоги
II
ОПТИМИЗАЦИЯ ДЛЯ ОБУЧЕНИЯ
ГЛАВА 4. ИТЕРАТИВНЫЙ ПОДХОД
Практические преимущества итеративного
подхода
Итерация как стратегия защитного
проектирования
Сила планирования
Практическая ценность итеративного подхода
Итоги
ГЛАВА 5. ОБРАТНАЯ СВЯЗЬ
Практический пример важности обратной связи
Обратная связь в кодировании
Обратная связь в интеграции
Обратная связь в дизайне
Обратная связь в архитектуре
Быстрая обратная связь предпочтительнее
Обратная связь в дизайне продукта
Обратная связь в организации и культуре
Итоги
ГЛАВА 6. ИНКРЕМЕНТАЛИЗМ
Важность модульности
Инкрементализм в организации
Инструменты инкрементализма
Ограничение влияния изменений
Инкрементальный дизайн
Итоги
ГЛАВА 7. ЭМПИРИЗМ
Основано на реальности
Отделяйте эмпиризм от эксперимента
"Я знаю ошибку!"
Избегайте самообмана
Изобретайте реальность, соответствующую
аргументам
Опирайтесь на реальность
Итоги
ГЛАВА 8. БЫТЬ ЭКСПЕРИМЕНТАТОРОМ
Что значит быть экспериментатором?
Обратная связь
Гипотеза
Измерения
Управление переменными
Автоматизированное тестирование как
эксперимент
Помещая результаты тестирования в контекст
Объем эксперимента
Итоги
III
ОПТИМИЗАЦИЯ ДЛЯ УПРАВЛЕНИЯ СЛОЖНОСТЬЮ
ГЛАВА 9. МОДУЛЬНОСТЬ
Признаки модульности
Недооценка важности хорошего дизайна
Важность тестируемости
Тестируемость повышает модульность
Службы и модульность
Развертываемость и модульность
Модульность в разных масштабах
Модульность в системах, создаваемых человеком
Итоги
ГЛАВА 10. СВЯЗНОСТЬ
Модульность и связность: основы дизайна
Базовое снижение связности
Контекст имеет значение
Высокопроизводительное программное
обеспечение
Отсылка к связанности
Обеспечение высокой связности с помощью TDD
Как добиться связности
Цена плохой связности
Связность в человеческих системах
Итоги
ГЛАВА 11. РАЗДЕЛЕНИЕ ОТВЕТСТВЕННОСТИ
Внедрение зависимости
Разделение необходимой и случайной сложности
Важность DDD
Тестируемость
Порты и адаптеры
Когда использовать порты и адаптеры
Что такое API?
Использование TDD для разделения
ответственности
Итоги
ГЛАВА 12. СОКРЫТИЕ ИНФОРМАЦИИ И АБСТРАКЦИЯ
Абстракция или сокрытие информации
Почему образуются большие комки грязи?
Организационные и культурные проблемы
Технические вопросы и вопросы проектирования
Страх чрезмерного усложнения
Повышение абстракции с помощью тестирования
Сила абстракции
Дырявые абстракции
Выбор подходящих абстракций
Абстракции из предметной области
Абстрактная случайная сложность
Изолируйте код от сторонних систем
Всегда скрывайте информацию, если это возможно
Итоги
ГЛАВА 13. УПРАВЛЕНИЕ СВЯЗАННОСТЬЮ
Стоимость связанности
Масштабирование
Микросервисы
Снижение связанности может означать больше
кода
Слабая связанность - не единственная важная
деталь
Выбор в пользу слабой связанности
В чем отличие от разделения ответственности?
DRY - это слишком просто
Асинхронность как инструмент слабой связанности
Проектирование слабой связанности
Слабая связанность в организациях
Итоги
IV
Инструменты программной инженерии
Глава 14. ИНСТРУМЕНТЫ ИНЖЕНЕРНОЙ
ДИСЦИПЛИНЫ
Что такое программная разработка
Тестируемость как инструмент
Точки измерения
Сложности с обеспечением тестируемости
Как улучшить тестируемость
Развертываемость
Скорость
Управление переменными
Непрерывная доставка
Общие инструменты для поддержки разработки
Итоги
Глава 15. СОВРЕМЕННЫЙ ИНЖЕНЕР-РАЗРАБОТЧИК
Инженерия как человеко-ориентированный процесс
Организации - лидеры в цифровой сфере
Результаты и механизмы
Устойчивость и широкая применимость
Основы инженерной дисциплины
Итоги
Отзывы
Вопросы
Поделитесь своим мнением об этом товаре с другими покупателями — будьте первыми!
Дарим бонусы за отзывы!
За какие отзывы можно получить бонусы?
- За уникальные, информативные отзывы, прошедшие модерацию
Как получить больше бонусов за отзыв?
- Публикуйте фото или видео к отзыву
- Пишите отзывы на товары с меткой "Бонусы за отзыв"
Задайте вопрос, чтобы узнать больше о товаре
Если вы обнаружили ошибку в описании товара «Современная программная инженерия. ПО в эпоху эджайла и непрерывного развертывания» (авторы: Фарли Дэвид), то выделите её мышкой и нажмите Ctrl+Enter. Спасибо, что помогаете нам стать лучше!






