Непрерывная интеграция (Continuous Integration: Improving Software Quality and Reducing Risk)
Продолжая тему раритетных книг по инженерным процессам в разработке софта (начало тут), я решил вспомнить эту книгу Эндрю Гловера, Поля Дюваля и Стивена Матиаса. Если кратко, то хорошая книжка ... была для своего времени (2007 год). В текущий момент ее стоит читать только для того, чтобы узнать с чего все начиналось. Правда, если ее актуализировать, то книга опять станет неплохой. Если более подробно, то автор рассказывает о некоторых практиках, которые стали базовыми в настоящее время:
- что такое CI и в чем оно помогает пр разработке ПО, а именно в снижении рисков:
- проблема с развертыванием ("На моей машине это работает")
- позднее выявление дефектов, а следовательно более дорогое их исправление
- плохой контроль состояния проекта (не ясно что уже готово, а что нет)
- низкое качество продукта (наличие большого количества багов)
- что требуется для реализации CI
- хранение исходников в системе контроля версий
- хранение конфигураций в системе контроля версий (использование SCM)
- хранение изменений для бд в системе контроля версий (механизм миграций данных)
- возможность сборки этого всего вместе(smile)
Еще авторы рассматривает создание полнофункциональной CI, правда в реалиях пятнадцатилетней давности. Эта часть абсолютно устарела, но ... даже в ней есть интересные моменты:
- обсуждение вопросов тестирования:
- unit
- functional
- integration
- system
- вопросы инспекции кода
- использование статических анализаторов
- поддержка code style
- поддержка метрик кода на заданном уровне, например, цикломатическая сложность
- организация continuous delivery
- организация обратной связи о работе CI
В общем, в текущий момент книжку стоит читать разве что только для того, чтобы почувствовать ностальгию по тем временам, когда разработка велась на коленке:)
#Devops #ContinuousDelivery #Software #SoftwareDevelopment #ContinuousIntegration