Selama 4 tahun terakhir, saya telah memprogram dengan Eclipse (untuk Java), dan Visual Studio Express (untuk C #). IDE yang disebutkan sepertinya selalu menyediakan setiap fasilitas yang mungkin diminta oleh programmer (terkait dengan pemrograman, tentu saja).
Akhir-akhir ini saya telah mendengar tentang sesuatu yang disebut "alat membangun". Saya mendengar mereka digunakan hampir di semua jenis perkembangan dunia nyata. Apa sebenarnya mereka? Masalah apa yang mereka dirancang untuk dipecahkan? Kenapa saya tidak pernah membutuhkannya dalam empat tahun terakhir? Apakah mereka semacam garis perintah yang dilucuti IDE?
Bangun alat umumnya untuk mengubah kode sumber menjadi binari - itu mengatur kode sumber, mengatur bendera kompilasi, mengelola dependensi ... beberapa dari mereka juga mengintegrasikan dengan menjalankan unit test, melakukan analisis statis, membuat dokumentasi.
Eclipse atau Visual Studio juga membangun sistem (tetapi lebih dari sebuah IDE), dan untuk studio visual itu adalah msbuild yang mendasari untuk mengurai file proyek studio visual di bawah tenda.
Asal usul semua sistem build sepertinya seperti 'make' yang terkenal.
Ada sistem bangun untuk berbagai bahasa:
Biasanya, membangun sistem baik menggunakan bahasa khusus domain hak milik (make, cmake), atau xml (semut, maven, msbuild) untuk menentukan membangun. Tren saat ini adalah menggunakan bahasa skrip nyata untuk menulis skrip build, seperti lua untuk premake, dan asyik untuk gradle, keuntungan menggunakan skrip adalah ia jauh lebih fleksibel, dan juga memungkinkan Anda untuk datang dengan seperangkat standar API (seperti build DSL).
sumber
Proses Bangun adalah Proses mengkompilasi kode sumber Anda untuk kesalahan menggunakan beberapa alat membangun dan membuat membangun (yang merupakan versi proyek yang dapat dieksekusi). Kami (terutama pengembang) melakukan beberapa modifikasi dalam kode sumber dan memeriksa kode tersebut agar proses pembuatan terjadi. Setelah proses build itu memberikan dua hasil: 1. Baik membangun PASSES dan Anda mendapatkan versi proyek Anda yang dapat dieksekusi (Build sudah siap). 2. Gagal dan Anda mendapatkan kesalahan tertentu dan build tidak dibuat.
Ada berbagai jenis proses pembuatan seperti: 1. Build Nightly 2. Build gated 3. Build integrasi berkelanjutan dll.
Alat Bangun membantu dan mengotomatiskan proses pembuatan bentukan.
* Jadi dalam Short Build adalah Versi Perangkat Lunak dalam format pra-rilis yang digunakan oleh tim Pengembang atau Pengembangan untuk mendapatkan kepercayaan diri terhadap hasil akhir dari Produk mereka dengan terus memantau Produk mereka dan menyelesaikan masalah apa pun lebih awal selama proses pengembangan. *
sumber
Ini adalah berbagai jenis proses yang digunakan untuk menyelesaikan pembangunan.
1. Membangun Integrasi Berkelanjutan:Dalam hal ini sebagian besar pengembang melakukan check-in kode mereka dan tepat setelah check-in mereka membangun inisiat untuk membuat perubahan baru-baru ini, jadi kita harus tahu apakah perubahan yang dilakukan oleh pengembang telah bekerja atau tidak tepat setelah check-in dilakukan. Ini lebih disukai untuk proyek yang lebih kecil atau komponen proyek. Dalam kasus di mana banyak tim dikaitkan dengan proyek atau ada no besar. pengembang yang mengerjakan proyek yang sama skenario ini menjadi sulit untuk ditangani seolah-olah ada 'n' tidak. check-in dan build gagal pada titik-titik tertentu menjadi sangat sulit untuk dilacak apakah semua kerusakan telah terjadi karena satu masalah atau dengan beberapa masalah sehingga jika masalah yang lebih lama tidak ditangani dengan benar maka menjadi sangat sulit untuk melacak nanti cacat yang terjadi setelah perubahan itu.
2. Gated check-in builds: Dalam jenis check in build dimulai tepat setelah check in dilakukan menjaga perubahan dalam set rak. Dalam hal ini jika build berhasil daripada check-in shelve-set dilakukan, jika tidak maka tidak akan dilakukan ke Team Foundation Server. Ini memberikan gambaran yang sedikit lebih baik dari pembangunan integrasi berkelanjutan karena hanya check-in yang sukses yang diizinkan untuk berkomitmen.
3. Bangun malam: Ini juga disebut sebagai Bangun terjadwal. Dalam hal ini kami menjadwalkan build untuk berjalan pada waktu tertentu untuk membangun perubahan. Semua perubahan yang sebelumnya tidak dikomit dari build terakhir dibangun selama proses build ini. Ini dilakukan ketika kita ingin check-in berkali-kali tetapi tidak ingin build setiap kali kita memeriksa kode kita sehingga kita dapat memiliki waktu atau periode yang tetap di mana kita dapat memulai pembangunan untuk membangun kode check-in.
Rincian lebih lanjut tentang bangunan ini dapat ditemukan di lokasi di bawah ini.
Gated-check in Builds
Membangun Integrasi Berkelanjutan
Nightly Builds
sumber
Anda telah menggunakannya - IDE adalah alat bantu pembuatan. Untuk baris perintah Anda dapat menggunakan hal-hal seperti
make
.Orang-orang menggunakan alat-alat baris perintah untuk hal-hal seperti membangun malam - jadi di pagi hari dengan mabuk, programmer telah menyadari bahwa kode yang dia mainkan dengan perpustakaan terbaru tidak berfungsi!
sumber
"... sangat sulit untuk melacak apa yang perlu dibangun" - Alat Bangun tidak membantu dengan itu semua. Anda perlu tahu apa yang ingin Anda bangun. (Dikutip dari jawaban Ritesh Gun)
"Saya dengar mereka digunakan hampir di semua jenis pengembangan dunia nyata" - Untuk beberapa alasan, pengembang perangkat lunak suka bekerja di perusahaan besar. Mereka tampaknya memiliki arahan kerja yang lebih tidak jelas untuk setiap individu yang bekerja di sana.
"Kenapa saya tidak pernah membutuhkannya dalam empat tahun terakhir". Mungkin karena Anda adalah programmer yang terampil.
Semu, meta. Saya pikir alat membangun tidak memberikan manfaat nyata sama sekali. Itu hanya ada di sana untuk menambah rasa aman yang timbul dari praktik perusahaan yang buruk, kurangnya arah - kepemimpinan arsitektur perangkat lunak yang buruk mengarah pada pengetahuan aktual yang buruk tentang proyek. Anda tidak harus menggunakan alat bangun (untuk pengujian) dalam proyek Anda. Untuk melakukan pengujian acak dengan kurangnya pengetahuan tentang proyek perangkat lunak tidak memberikan bantuan sama sekali.
Anda seharusnya tidak pernah menambahkan sesuatu ke proyek tanpa mengetahui tujuannya, dan bagaimana itu akan bekerja dengan komponen lainnya. Komponen dapat berfungsi secara terpisah, tetapi tidak bekerja bersama. (Ini adalah tanggung jawab arsitek perangkat lunak yang saya asumsikan).
Bagaimana jika 4-5 komponen ditambahkan ke proyek. Anda menambahkan komponen ke-6. Bersama dengan komponen tambahan pertama, itu mungkin mengacaukan segalanya. Tidak ada otomatis yang akan membantu mendeteksi itu.
Tidak ada jalan pintas selain berpikir berpikir.
Lalu ada unduhan otomatis dari repositori. Mengapa Anda ingin melakukan itu? Anda perlu tahu apa yang Anda unduh, apa yang Anda tambahkan ke proyek. Bagaimana Anda mendeteksi perubahan dalam versi repositori? Kamu harus tahu. Anda tidak dapat "otomatis" apa pun.
Bagaimana jika kita menguji sepeda dan kereta bayi ditutup matanya dengan tongkat dan dipukul secara acak dengannya. Itu tampaknya menjadi gagasan pengujian alat bangun.
Maaf, tidak ada pintasan https://en.wikipedia.org/wiki/Scientific_method dan https://en.wikipedia.org/wiki/Analysis
sumber