Neden Bazel?

Sorun bildir Kaynağı görüntüle Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Bazel, sektörde lider bir ekosistemde birden fazla dili, depoyu ve platformu destekleyen entegre test özelliğine sahip hızlı, doğru ve genişletilebilir bir derleme aracıdır.

Bazel hızlıdır

Bazel, her derleme komutunun hangi giriş dosyalarına ihtiyacı olduğunu tam olarak bilir. Bu sayede, yalnızca giriş dosyaları kümesi her derleme arasında değiştiğinde yeniden çalıştırarak gereksiz işleri önler. Aynı bilgisayarda veya uzak derleme düğümlerinde mümkün olduğunca çok sayıda paralel derleme komutu çalıştırır. Derleme yapısı izin veriyorsa aynı anda binlerce derleme veya test komutu çalıştırılabilir.

Bu özellik, bellek içi, disk üzerinde ve varsa uzak derleme çiftliğinde birden fazla önbelleğe alma katmanı tarafından desteklenir. Google olarak, düzenli olarak %99'un üzerinde önbellek isabet oranı elde ediyoruz.

Bazel doğru

Bazel, ikili programlarınızın yalnızca kendi kaynak kodunuzdan oluşturulmasını sağlar. Bazel işlemleri ayrı ayrı sanal ortamlarda çalışır ve Bazel, derlemenin her giriş dosyasını izler. Derleme komutlarını yalnızca gerektiğinde ve her zaman yeniden çalıştırır. Bu sayede ikili dosyalarınız güncel tutulur ve aynı kaynak kodu her zaman aynı ikili dosyayı oluşturur.

Sonsuz make clean çağırma işlemlerine ve aslında hiç oluşturulmayan kaynak kodunda çözülmüş olan hayalet hataların peşinden koşmaya veda edin.

Bazel genişletilebilir

Çok çeşitli projelerde Bazel'i kendi özel ihtiyaçlarınıza göre özelleştirmek için kendi kurallarınızı ve makrolarınızı yazarak Bazel'in tüm gücünden yararlanın.

Bazel kuralları, Python'ın bir alt kümesi olan şirket içi programlama dilimiz Starlark ile yazılır. Starlark, kural yazmayı çoğu geliştirici için erişilebilir hale getirirken ekosistem genelinde kullanılabilecek kurallar da oluşturur.

Entegre test

Bazel'in entegre test çalıştırıcısı, yalnızca yeniden çalıştırılması gereken testleri bilir ve çalıştırır. Bu testleri paralel olarak çalıştırmak için (varsa) uzaktan yürütme kullanılır. Bir testi binlerce kez hızlıca çalıştırmak için uzaktan yürütmeyi kullanarak kararsızlıkları erken tespit edin.

Bazel, test sonuçlarını merkezi bir konuma yüklemek için olanaklar sunar. Böylece, test sonuçlarının CI'da veya bağımsız geliştiriciler tarafından verimli bir şekilde iletilmesini kolaylaştırır.

Birden fazla dil desteği

Bazel; C++, Java, Kotlin, Python, Go ve Rust gibi birçok yaygın programlama dilini destekler. Tek bir dilin deyimsel derleme aracıyla sınırlanmadan aynı Bazel çağrısında birden fazla ikili dosya (ör. arka uç, web kullanıcı arayüzü ve mobil uygulama) oluşturabilirsiniz.

Birden fazla depo desteği

Bazel, kaynak kodunu birden fazla konumdan toplayabilir: Bağımlılıklarınızı satmanıza gerek yoktur (ancak satabilirsiniz!). Bunun yerine Bazel'i kaynak kodunuzun veya önceden oluşturulmuş yapay nesnelerinizin (ör. bir Git deposu veya Maven Central) konumuna yönlendirebilirsiniz. Geri kalan işlemler Bazel tarafından yapılır.

Çoklu platform desteği

Bazel, Linux, macOS, Windows ve Android dahil olmak üzere birden fazla platform için aynı anda proje oluşturabilir. Ayrıca, derlemeyi başka bir platformda çalıştırırken bir platform için kod oluşturmak üzere güçlü çapraz derleme özellikleri de sunar.

Geniş ekosistem

Sektör liderleri, Bazel'i çok seviyor ve Bazel'i kullanan ve Bazel'e katkıda bulunan geliştiricilerden oluşan büyük bir topluluk oluşturuyor. Bazel'in kullanabileceği danışmanlık ve SaaS teklifleri dahil olmak üzere araçlar, hizmetler ve dokümanlar bulabilirsiniz. Açık kaynaklı yazılım depolarımızda programlama dilleri desteği gibi uzantıları keşfedin.