Apa perbedaan antara membangun dan menyusun?

Jawaban:

34

Kompilasi adalah bagian dari proses build.

Proses pembuatan dapat mencakup pengujian, pengemasan, dan aktivitas lain selain dari kompilasi.

Oded
sumber
19

"Bangunan" adalah istilah yang cukup umum, dan dapat merujuk pada apa pun yang diperlukan untuk beralih dari bahan sumber yang dapat diedit (kode sumber, skrip, file data mentah, dll.) Ke produk perangkat lunak yang dapat dikirim. Bangunan dapat (dan biasanya memang) melibatkan beberapa langkah, seperti pra-pemrosesan, kompilasi, menautkan, mengonversi file data, menjalankan tes otomatis, pengemasan, dll.

"Kompilasi" lebih spesifik, dan hampir selalu mengacu pada suatu proses yang mengambil kode sumber sebagai inputnya, dan mengeluarkan sesuatu yang bisa dijalankan, biasanya kode mesin untuk mesin fisik atau virtual, atau kode sumber dalam bahasa yang berbeda.

tammmer
sumber
9

Istilah-istilah ini sering digunakan secara bergantian, tetapi saya akan membedakannya dengan cara berikut:

  • Bangunan dilakukan ketika menyiapkan aplikasi untuk rilis, yang meliputi kompilasi, pengemasan, pengujian, dll.
  • Kompilasi dilakukan kapan saja kompiler terlibat dalam menerjemahkan kode bahasa pemrograman ke kode mesin.

Jadi, kompilasi sebenarnya adalah bagian dari bangunan.

Bernard
sumber
1
"Bangunan dilakukan ketika menyiapkan aplikasi untuk rilis" - jangan katakan bahwa kerumunan integrasi terus-menerus;) Atau pengguna yang rajin membangun otomatis, dalam hal ini.
1
@delnan: Setuju. Integrasi berkelanjutan menciptakan banyak "build" selama masa aplikasi. Namun, salah satu atau semua bangunan ini dapat digunakan sebagai persiapan untuk rilis publik. Itu tergantung pada proses pembuatan, pengujian, dan persetujuan Anda.
Bernard
3
Menurut kerumunan pengiriman yang terus-menerus, masing-masing build ini harus siap untuk dirilis. Tetapi praktik mengatakan sebaliknya, dan umumnya "membangun" dapat melayani tujuan apa pun yang dibantu dengan menyiapkan perangkat lunak untuk menjalankan dan mengujinya. Debug build, misalnya. Atau memeriksa bahwa perubahan Anda tidak merusak 16 juta tes.
2
@delnan - Bagaimana dengan build yang gagal tesnya? Dengan standar pengiriman terus-menerus berkokok, itu adalah membangun tetapi tidak siap untuk rilis :)
Oded
2

Kompilasi dilakukan oleh kompiler, proses build bisa lebih kompleks.

Misalnya. di C ++ untuk membuat proyek yang Anda butuhkan preprocessor (preprocessing file sumber); kompiler (kompilasi file sumber); linker (menggabungkan semuanya menjadi executable - mengkompilasi kode, ikon, string, sumber daya lainnya bersama-sama)

Jadi kompilasi umumnya adalah menerjemahkan kode yang ditulis dalam satu bahasa ke bahasa lain (mis. Kode mesin).

Slawek
sumber