Яка різниця між побудовою та складанням?


Відповіді:


34

Компіляція є частиною процесу збирання.

Процес збирання може включати тестування, упаковку та інші дії, крім компіляції.


19

"Будівництво" - досить загальний термін, і воно може посилатися на все, що потрібно, щоб перейти від редагованих вихідних матеріалів (вихідний код, сценарії, файли даних із сировиною тощо) до програмного продукту, який можна відвантажувати. Побудова може (і зазвичай це стосується) декількох етапів, таких як попередня обробка, збирання, з'єднання, перетворення файлів даних, запуск автоматизованих тестів, упаковка тощо.

"Компілювання" є більш конкретним і майже незмінно відноситься до процесу, який бере вихідний код як свій вхід і виводить щось запущене, як правило, машинний код для фізичної або віртуальної машини або вихідний код іншою мовою.


9

Ці терміни часто використовуються як взаємозамінні, але я б диференціював їх наступним чином:

  • Побудова робиться під час підготовки програми до випуску, яка включає складання, упаковку, тестування тощо.
  • Компіляція проводиться в будь-який час, коли компілятор бере участь у перекладі коду мови програмування в машинний код.

Таким чином, складання - це дійсно підмножина побудови.


1
"Побудова робиться під час підготовки програми до випуску" - не кажіть, що безперервна інтеграція натовпу;) Або будь-який інший завзятий користувач автоматичних збірок, з цього питання.

1
@delnan: Погоджено. Постійна інтеграція створює багато "складових" протягом життя програми. Однак будь-яка або всі ці версії можуть бути використані для підготовки до публічного релізу. Це залежить від ваших процесів складання, тестування та затвердження.
Бернард

3
Ну, на думку неперервного натовпу доставки, кожна з цих версій повинна бути готова до випуску. Але практика говорить інакше, і, як правило, "складання" може служити будь-якій цілі, якій допомагає підготовка програмного забезпечення до його запуску та тестування. Наприклад, створюється налагодження. Або перевірити, чи не змінилися ваші зміни 16 мільйонів тестів.

2
@delnan - А як з побудовою, яка не справляється з тестами? За стандартами безперервної доставки, це збірка, але не готова до виходу :)
Oded

2

Компіляція проводиться компілятором, збірка може бути складнішим процесом.

Напр. в C ++ для складання проекту вам потрібен препроцесор (попередня обробка вихідних файлів); компілятор (компіляція вихідних файлів); Linker (об'єднання всього у виконуваний файл - компільований код, піктограми, рядки та інші ресурси разом)

Тому зазвичай компіляція - це переклад коду, написаного однією мовою на іншу (наприклад, машинний код).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.