Найти в Дзене

Непрерывная интеграция - методы разработки для ускорения программного обеспечения. Мои наблюдения

Непрерывная интеграция - это краткое изложение различных инструментов и методов разработки для ускорения разработки программного обеспечения и групп совместной работы. Это часть методологий экстремального программирования. Он служит, помимо прочего, для ускорения поиска недостатков и ошибок в проектах программного обеспечения на этапе разработки. Серверы интеграции используются для объединения этих методов и инструментов. Слово интеграция в этой статье означает системную интеграцию . В основе каждого программного проекта лежит публикация так называемых сборок. Сборка - это скомпилированная версия разрабатываемого программного обеспечения. Каждая сборка должна иметь собственный идентификатор версии

Официальное определение непрерывной интеграции исходит от Мартина Фаулера , который определяет ее как метод разработки программного обеспечения, при котором каждый разработчик непрерывно (регулярно) интегрирует свою часть работы - предпочтительно ежедневно. Каждая интеграция проверяется автоматическими тестами для максимально быстрого обнаружения ошибок.

Метод непрерывной интеграции появился в 1960-х годах в IBM , где сложные процессы сборки выполнялись даже шесть раз в день. Еще одним большим достижением стало написание статьи Мартина Фаулера . Впоследствии эта методология стала широко использоваться и внедряться в компаниях, занимающихся разработкой программного обеспечения . Больше всего для компаний, предлагающих готовые продуктовые решения

Причины использования непрерывной интеграции

Основные причины использования текущей интеграции и развертывания сервера интеграции или среды включают:

Высокая частота ошибок в исходных кодах.

Поиск ошибок требует времени и ресурсов

Создание новых сборок - сложный процесс

Создание сборки - ежедневное дело

Беспорядок в управлении версиями отдельных сборок

Недостаточный технический надзор за программными проектами

Беспорядок в репозитории исходного кода ( CVS , SVN , Git )