Her geliştirici, günde onlarca veya yüzlerce kez etkileşimde bulunduğu için derleme sistemi, mühendislik kuruluşunun en önemli parçalarından biridir. Kuruluş büyüdükçe geliştiricilerin verimliliğini artırmak için tam özellikli bir derleme sistemi gerekir. Bireysel geliştiriciler için yalnızca kodunuzu derlemek yeterlidir. Bu nedenle, derleme sistemi gereksiz görünebilir. Ancak daha büyük ölçekte, derleme sistemine sahip olmak, kod tabanının başka bir bölümüne veya kitaplık gibi harici bir kaynağa güvenmek gibi paylaşılan bağımlılıkları yönetmeye yardımcı olur. Derleme sistemleri, derleme başlamadan önce kodunuzu derlemek için ihtiyacınız olan her şeye sahip olduğunuzdan emin olmanıza yardımcı olur. Build systems also increase velocity when they're set up to help engineers share resources and results.
Bu bölümde, Bazel'in oluşturulmasıyla ilgili tasarım kararları da dahil olmak üzere derleme ve derleme sistemlerinin geçmişi ve temelleri ele alınmaktadır. Bazel, Buck ve Pants gibi yapıt tabanlı derleme sistemlerine aşinaysanız bu bölümü atlayabilirsiniz. Ancak yapıt tabanlı derleme sistemlerinin ölçeklendirmeyi neden mükemmel şekilde sağladığını anlamak için bu bölümü okumanız faydalı olacaktır.
-
Daha önce bir derleme sistemi kullanmadıysanız buradan başlayın. Bu sayfada, neden bir derleme sistemi kullanmanız gerektiği ve kuruluşunuz birkaç geliştiricinin ötesine geçmeye başladığında derleyicilerin ve derleme komut dosyalarının neden en iyi seçenek olmadığı açıklanmaktadır.
Göreve Dayalı Derleme Sistemleri
Bu sayfada, göreve dayalı derleme sistemleri (ör. Make, Maven ve Gradle) ve bunların bazı zorlukları ele alınmaktadır.
-
Bu sayfada, göreve dayalı derleme sistemlerinin zorluklarına yanıt olarak artefakta dayalı derleme sistemleri ele alınmaktadır.
-
Bu sayfada, dağıtılmış derlemeler veya yerel makinenizin dışında yürütülen derlemeler ele alınmaktadır. Bu, kaynakları paylaşmak ve sonuçlar oluşturmak için daha sağlam bir altyapı gerektirir (ve gerçek sihir burada gerçekleşir!).
Bağımlılık Yönetimi (Dependency Management)
Bu sayfada, büyük ölçekli bağımlılıklarla ilgili bazı sorunlar ve bu sorunları gidermeye yönelik stratejiler ele alınmaktadır.