К основному содержимому
#Devops

Непрерывная интеграция (Continuous Integration: Improving Software Quality and Reducing Risk)

#Devops #ContinuousDelivery #Software #SoftwareDevelopment #ContinuousIntegration

Продолжая тему раритетных книг по инженерным процессам в разработке софта (начало тут), я решил вспомнить эту книгу Эндрю Гловера, Поля Дюваля и Стивена Матиаса. Если кратко, то хорошая книжка ... была для своего времени (2007 год). В текущий момент ее стоит читать только для того, чтобы узнать с чего все начиналось. Правда, если ее актуализировать, то книга опять станет неплохой. Если более подробно, то автор рассказывает о некоторых практиках, которые стали базовыми в настоящее время:

  1. что такое CI и в чем оно помогает пр разработке ПО, а именно в снижении рисков:
  • проблема с развертыванием ("На моей машине это работает")
  • позднее выявление дефектов, а следовательно более дорогое их исправление
  • плохой контроль состояния проекта (не ясно что уже готово, а что нет)
  • низкое качество продукта (наличие большого количества багов)
  1. что требуется для реализации CI
  • хранение исходников в системе контроля версий
  • хранение конфигураций в системе контроля версий (использование SCM)
  • хранение изменений для бд в системе контроля версий (механизм миграций данных)
  • возможность сборки этого всего вместе(smile)

Еще авторы рассматривает создание полнофункциональной CI, правда в реалиях пятнадцатилетней давности. Эта часть абсолютно устарела, но ... даже в ней есть интересные моменты:

  1. обсуждение вопросов тестирования:
  • unit
  • functional
  • integration
  • system
  1. вопросы инспекции кода
  • использование статических анализаторов
  • поддержка code style
  • поддержка метрик кода на заданном уровне, например, цикломатическая сложность
  1. организация continuous delivery
  2. организация обратной связи о работе CI

В общем, в текущий момент книжку стоит читать разве что только для того, чтобы почувствовать ностальгию по тем временам, когда разработка велась на коленке:)

#Devops #ContinuousDelivery #Software #SoftwareDevelopment #ContinuousIntegration