Sistem build adalah salah satu bagian terpenting dari organisasi engineering karena setiap developer berinteraksi dengannya berpotensi puluhan atau ratusan kali per hari. Sistem build yang memiliki fitur lengkap diperlukan untuk mengoptimalkan produktivitas developer saat organisasi melakukan penskalaan. Untuk pengembang individu, mudah untuk mengompilasi kode Anda sehingga sistem build akan tampak berlebihan. Namun, pada skala yang lebih besar, memiliki sistem build akan membantu mengelola dependensi bersama, seperti mengandalkan bagian lain dari code base, atau resource eksternal, seperti library. Sistem build membantu memastikan bahwa Anda memiliki semua yang diperlukan untuk mem-build kode sebelum mulai mem-build. Membuat sistem juga meningkatkan kecepatan saat mereka diatur untuk membantu para insinyur berbagi resource dan hasil.
Bagian ini membahas beberapa sejarah dan dasar-dasar membangun dan membangun sistem, termasuk keputusan desain yang digunakan dalam pembuatan Bazel. Jika Anda familier dengan sistem build berbasis artefak, seperti Bazel, Buck, dan Pants, Anda dapat melewatkan bagian ini, tetapi ini adalah ikhtisar yang bermanfaat untuk memahami alasannya sistem build berbasis artefak sangat baik dalam memungkinkan skala.
Mengapa perlu menggunakan Sistem Build?
Jika Anda belum pernah menggunakan sistem build sebelumnya, mulailah dari sini. Halaman ini membahas alasan Anda harus menggunakan sistem build, dan mengapa compiler dan skrip build tidak pilihan terbaik setelah organisasi Anda mulai berkembang pesat developer.
-
Halaman ini membahas sistem build berbasis tugas (seperti Make, Maven, dan Gradle) serta beberapa tantangannya.
-
Halaman ini membahas sistem build berbasis artefak sebagai respons terhadap masalah poin-poin sistem build berbasis tugas.
-
Halaman ini membahas build terdistribusi, atau build yang dieksekusi di luar komputer lokal Anda. Hal ini membutuhkan infrastruktur yang lebih kuat untuk berbagi sumber daya dan hasil build (dan di situlah keahlian sebenarnya terjadi!)
-
Halaman ini membahas beberapa detail dependensi pada skala besar dan strategi untuk mengatasi komplikasi tersebut.