Автоматизация сборки
Часть серии о |
Разработка программного обеспечения |
---|
Автоматизация сборки — это практика создания программных систем относительно автоматическим способом. Сборка настроена для работы с минимальным взаимодействием с разработчиком программного обеспечения разработчика или без него и без использования персонального компьютера . Автоматизация сборки включает в себя настройку системы сборки, а также самой результирующей системы.
Автоматизация сборки включает в себя как упорядочивание операций сборки через неинтерактивный интерфейс ( инструменты интерфейса командной строки) , так и запуск сборок на общем компьютере — сервере . [1]
Инструменты
[ редактировать ]Инструменты автоматизации сборки позволяют упорядочивать задачи по созданию программного обеспечения через неинтерактивный интерфейс. Существующие инструменты, такие как Make, можно использовать через собственный файл конфигурации или параметры командной строки. Также можно использовать специальные инструменты, такие как сценарии оболочки.
Некоторые инструменты, такие как сценарии оболочки , представляют собой ориентированное на задачи декларативное программирование . Они кодируют последовательности команд для выполнения, обычно с минимальной условной логикой.
Некоторые инструменты, такие как Make, ориентированы на продукт. Они создают продукт, он же цель, на основе настроенных зависимостей. [2]
Серверы
[ редактировать ]Сервер сборки — это установка сервера для запуска сборок. В отличие от персонального компьютера, сервер обеспечивает более согласованную и доступную среду сборки.
Традиционно сервер сборки представлял собой локальный компьютер, выделенный в качестве общего ресурса, а не используемый в качестве персонального компьютера. Сегодня существует множество веб-сайтов для создания облачных вычислений и программного обеспечения как услуги (SaaS).
Без сервера сборки сборка обычно зависит от использования разработчиками своих персональных компьютеров, что имеет множество недостатков, включая, помимо прочего: Разработчики, умеющие собирать, могут находиться в отпуске. На машине разработчика может возникнуть проблема, препятствующая сборке. На компьютере разработчика может быть установлено другое программное обеспечение, которое конфликтует с правильной сборкой.
Сервер непрерывной интеграции — это сервер сборки, который настроен на относительно частую сборку — часто при каждой фиксации кода. Сервер сборки также может быть встроен в инструмент ARA или ALM .
Типичные варианты запуска сборки включают в себя:
- По требованию: по запросу пользователя
- По расписанию: например, ночная сборка.
- On-commit: создание контроля версий на основе каждого коммита. системы
Непрерывная интеграция и непрерывная доставка
[ редактировать ]Автоматизация процесса сборки является необходимым шагом для реализации непрерывной интеграции и непрерывной доставки (CI/CD), которые считаются передовой практикой разработки программного обеспечения. [3] [ как? ]
Преимущества
[ редактировать ]Плюсы автоматизации сборки включают в себя: [4]
- Может сэкономить время и деньги в долгосрочной перспективе
- Обеспечивает непрерывную интеграцию, доставку и тестирование.
- Более последовательный процесс сборки
- Может оптимизировать процесс сборки; сокращение времени и избыточных задач
- Снижает зависимость от ключевого персонала и его персональных компьютеров.
- Может автоматизировать сбор истории сборки
См. также
[ редактировать ]- Автоматизация выпуска приложений — процесс упаковки и развертывания.
- Автоматизация непрерывной настройки — методология настройки и развертывания программного обеспечения.
- Непрерывная интеграция . Практика разработки программного обеспечения, заключающаяся в частой сборке и тестировании.
- Непрерывная поставка – подход к разработке программного обеспечения с короткими циклами
- Непрерывное тестирование – процесс выполнения автоматических тестов как часть конвейера доставки программного обеспечения для получения немедленной информации о бизнес-рисках, связанных с кандидатом на выпуск.
- DevOps — набор практик разработки программного обеспечения.
- Список программного обеспечения для автоматизации сборки
- Разработка семейства продуктов - синоним «инженерии предметной области».
- Разработка релиза
- Управление конфигурацией программного обеспечения – отслеживание и контроль изменений программного обеспечения.
- Модульное тестирование – проверка поведения изолированного исходного кода.
Ссылки
[ редактировать ]- ^ Серуцци, Пол Э. (2003). История современных компьютеров . Массачусетский технологический институт Пресс. ISBN 978-0262532037 .
- ^ Кларк, Майк (2004). Прагматическая автоматизация проектов: как создавать, развертывать и отслеживать приложения Java . Прагматичные программисты. ISBN 978-0974514031 .
- ^ Башан, Шмуэль; Белладжио, Дэвид Э. (2011). Управление рабочими элементами с помощью IBM Rational ClearQuest и Jazz: Руководство по настройке . IBM Пресс. ISBN 978-0137001798 .
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 23 ноября 2008 г. Проверено 19 сентября 2008 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка )