Dasar-Dasar Build

Laporkan masalah Lihat sumber

Sistem build adalah salah satu bagian terpenting dari organisasi engineering karena setiap developer berinteraksi dengannya kemungkinan puluhan atau ratusan kali per hari. Sistem build berfitur lengkap diperlukan untuk mengaktifkan produktivitas developer seiring dengan skala organisasi. Bagi developer individu, mudah untuk mengompilasi kode Anda, sehingga sistem build mungkin 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 membangun kode sebelum kode mulai dibangun. Sistem build juga meningkatkan kecepatan saat disiapkan untuk membantu engineer berbagi resource dan hasil.

Bagian ini membahas beberapa sejarah dan dasar-dasar pembangunan serta build sistem, termasuk keputusan desain yang digunakan dalam pembuatan Bazel. Jika terbiasa dengan sistem build berbasis artefak, seperti Bazel, Buck, dan Pants, Anda dapat melewati bagian ini, tetapi ini merupakan ringkasan yang bermanfaat untuk memahami mengapa sistem build berbasis artefak sangat baik dalam mengaktifkan 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, serta alasan compiler dan skrip build bukan pilihan terbaik setelah organisasi Anda mulai meningkatkan skala di luar beberapa developer.

  • Sistem Build Berbasis Tugas

    Halaman ini membahas sistem build berbasis tugas (seperti Make, Maven, dan Gradle) dan beberapa tantangannya.

  • Sistem Build Berbasis Artefak

    Halaman ini membahas sistem build berbasis artefak sebagai respons terhadap titik masalah sistem build berbasis tugas.

  • Build Terdistribusi

    Halaman ini membahas build terdistribusi, atau build yang dieksekusi di luar mesin lokal Anda. Hal ini memerlukan infrastruktur yang lebih andal untuk berbagi resource dan membangun hasil (dan di sinilah keahlian sebenarnya terjadi.)

  • Pengelolaan Dependensi

    Halaman ini membahas beberapa detail dependensi pada skala besar dan strategi untuk menangkal detail tersebut.