Dasar-Dasar Build

Sistem build adalah salah satu bagian terpenting dari organisasi teknik karena setiap developer berinteraksi dengannya puluhan atau ratusan kali per hari. Sistem build yang memiliki fitur lengkap diperlukan untuk meningkatkan produktivitas developer saat organisasi melakukan penskalaan. Untuk developer perorangan, kompilasi kode Anda sangat mudah dan sistem build mungkin tampak berlebihan. Namun, dalam skala yang lebih besar, sistem build membantu mengelola dependensi bersama, seperti mengandalkan bagian lain dari codebase, atau resource eksternal, seperti library. Sistem build membantu memastikan Anda memiliki semua yang diperlukan untuk mem-build kode sebelum mulai mem-build. Sistem build juga meningkatkan kecepatan saat disiapkan untuk membantu engineer berbagi resource dan hasil.

Bagian ini membahas beberapa histori dan dasar-dasar sistem build dan build, termasuk keputusan desain yang digunakan untuk membuat Bazel. Jika Anda memahami sistem build berbasis artefak, seperti Bazel, Buck, dan Pants, Anda dapat melewati bagian ini, tetapi ringkasan ini berguna untuk memahami alasan sistem build berbasis artefak sangat baik dalam memungkinkan skala.

  • Mengapa Sistem Build?

    Jika Anda belum pernah menggunakan sistem build, mulailah di sini. Halaman ini membahas alasan Anda harus menggunakan sistem build, dan alasan compiler serta skrip build bukan pilihan terbaik setelah organisasi Anda mulai melakukan penskalaan di luar beberapa developer.

  • Sistem Build Berbasis Tugas

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

  • Sistem Build Berbasis Artefak

    Halaman ini membahas sistem build berbasis artefak sebagai respons terhadap 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 hasil build (dan di sinilah keajaiban sesungguhnya terjadi).

  • Pengelolaan Dependensi

    Halaman ini membahas beberapa komplikasi dependensi dalam skala besar dan strategi untuk mengatasi komplikasi tersebut.