Dasar-Dasar Build

Laporkan masalah Lihat sumber

Sistem build adalah salah satu bagian terpenting dari organisasi engineering karena setiap developer berinteraksi dengannya yang berpotensi puluhan atau ratusan kali per hari. Sistem build berfitur lengkap diperlukan untuk memungkinkan produktivitas developer seiring bertambahnya skala organisasi. Untuk masing-masing developer, mudah untuk mengompilasi kode Anda sehingga sistem build mungkin tampak berlebihan. Namun dalam skala yang lebih besar, memiliki sistem build 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. Sistem build juga meningkatkan kecepatan jika telah disiapkan untuk membantu engineer berbagi resource dan hasil.

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

  • Mengapa Sistem Build?

    Jika Anda belum pernah menggunakan sistem build, mulailah di sini. Halaman ini membahas mengapa Anda harus menggunakan sistem build, dan mengapa compiler serta skrip build bukan pilihan terbaik setelah organisasi Anda mulai menskalakan melebihi 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 dijalankan di luar mesin lokal Anda. Hal ini memerlukan infrastruktur yang lebih andal untuk berbagi resource dan mem-build hasil (dan di sinilah tempat terjadinya wizard yang sebenarnya!)

  • Pengelolaan Dependensi

    Halaman ini membahas beberapa detail dependensi dalam skala besar dan strategi untuk melawan detail tersebut.