В разработке программного обеспечения сборка — это процесс преобразования файлов исходного кода в автономные программные артефакты , которые можно запустить на компьютере, или результат такого преобразования. [1]
Создание программного обеспечения — это сквозной процесс, включающий множество различных функций. Некоторые из этих функций описаны ниже.
Функция контроля версий выполняет такие действия, как создание и обновление рабочего пространства, базовое планирование и отчетность. Она создает среду для запуска процесса сборки и собирает метаданные о входах и выходах процесса сборки для обеспечения повторяемости и надежности.
Такие инструменты, как Git , AccuRev или StarTeam, помогают решать эти задачи, предлагая инструменты для отметки определенных моментов в истории как важных и многое другое.
Эта функция, также известная как статический анализ программ/статический анализ кода, отвечает за проверку того, что разработчики придерживаются семи осей качества кода: комментарии, модульные тесты, дублирование, сложность, правила кодирования, потенциальные ошибки, а также архитектура и дизайн. [2]
Обеспечение проекта высококачественным кодом приводит к уменьшению количества ошибок и влияет на нефункциональные требования, такие как удобство обслуживания, расширяемость и читаемость, которые напрямую влияют на рентабельность инвестиций для бизнеса. [3]
Это лишь небольшая функция управления процессом сборки. Функция компиляции превращает исходные файлы в непосредственно исполняемые или промежуточные объекты. Не каждому проекту потребуется эта функция.
В то время как для простых программ процесс состоит из компиляции одного файла , для сложного программного обеспечения исходный код может состоять из множества файлов и может быть объединен различными способами для создания множества различных версий.
В вычислительной технике компоновщик или редактор связей — это программа компьютерной системы , которая берет один или несколько объектных файлов (сгенерированных компилятором или ассемблером ) и объединяет их в один исполняемый файл, библиотечный файл или другой «объектный» файл.
Более простая версия, которая записывает свои выходные данные непосредственно в память , называется загрузчиком , хотя загрузка обычно считается отдельным процессом. [4] [5]Процесс сборки компьютерной программы обычно управляется инструментом сборки , программой, которая координирует и контролирует другие программы. Примерами таких программ являются make , Gradle , Ant , Maven , Rake , SCons и Phing. Утилита сборки обычно должна компилировать различные файлы в правильном порядке. Если исходный код в определенном файле не изменился, то его, возможно, не нужно перекомпилировать ( «может не», а не «не нужно», потому что он сам может зависеть от других измененных файлов). Сложные утилиты сборки и компоновщики пытаются воздержаться от перекомпиляции кода, который в этом не нуждается, чтобы сократить время, необходимое для завершения сборки. Более сложный процесс может включать другие программы, создающие код или данные как часть процесса сборки и программного обеспечения.