Neden Bazel?

Sorun bildirin Kaynağı göster

Bazel, sektör lideri ekosistemde birden fazla dil, depo ve platformu destekleyen entegre testlere sahip hızlı, doğru ve genişletilebilir bir geliştirme aracıdır.

Bazel hızlı

Bazel, her derleme komutunun tam olarak hangi giriş dosyalarına ihtiyacı olduğunu bilir. Böylece, yalnızca derlemeler arasında giriş dosyaları grubu değiştiğinde yeniden çalıştırarak gereksiz işler yapmaktan kaçınır. Derleme komutlarını aynı bilgisayarda veya uzaktan derleme düğümlerinde mümkün olduğunca çok paralel olarak çalıştırır. Derleme yapısı izin veriyorsa aynı anda binlerce derleme veya test komutu çalıştırabilir.

Bu, bellekte, disk üzerinde ve varsa uzaktan derleme çiftliğinde birden fazla önbelleğe alma katmanı tarafından desteklenir. Google'da düzenli olarak %99'un kuzeyinde önbellek isabet oranlarına ulaşıyoruz.

Bazel doğru

Bazel, ikili programlarınızın yalnızca kendi kaynak kodunuzdan derlenmesini sağlar. Bazel işlemleri bağımsız korumalı alanlarda çalışır ve Bazel derlemenin her giriş dosyasını izler, yalnızca gerektiğinde derleme komutlarını her zaman yeniden çalıştırır. Bu, aynı kaynak kodunun her zaman aynı ikili programı çalıştırmasını sağlayacak şekilde ikili programlarınızı güncel tutar.

Sonsuz make clean çağrısına ve aslında hiç oluşturulmayan kaynak kodda çözülen hayali hataları kovalamaya "iyi baytlık" söyleyin.

Bazel genişletilebilir

Çok çeşitli projelerdeki özel ihtiyaçlarınıza göre Bazel'ı ö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'un bir alt kümesi olan şirket içi programlama dilimiz olan Starlark'ta yazılır. Starlark, kural yazmayı çoğu geliştirici için erişilebilir hale getirirken ekosistem genelinde kullanılabilecek kurallar oluşturuyor.

Entegre test

Bazel'ın entegre test çalıştırıcısı, yalnızca yeniden çalıştırılması gereken testleri bilir ve bu testleri paralel çalıştırmak için uzaktan yürütmeyi (varsa) kullanır. Hızlıca binlerce test yapmak için uzaktan yürütmeyi kullanarak gevşeklikleri erkenden tespit edin.

Bazel, test sonuçlarının merkezi bir konuma yüklenmesi için tesisler sunar. Böylece, CI üzerinde veya bireysel geliştiriciler tarafından test sonuçlarının verimli bir şekilde iletilebilir.

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ırlandırılmadan aynı Bazel çağrısında birden fazla ikili program (ör. arka uç, web kullanıcı arayüzü ve mobil uygulama) oluşturabilirsiniz.

Çoklu depo desteği

Bazel birden fazla konumdan kaynak kodu toplayabilir: Bağımlılıklarınızı sağlamanız gerekmez (ancak bunu yapabilirsiniz). Bunun yerine, Bazel'ı kaynak kodunuzun veya önceden oluşturulmuş yapıların (ör. git deposu veya Maven Merkezi) konumuna yönlendirebilirsiniz ve gerisini halleder.

Çoklu platform desteği

Bazel aynı anda Linux, macOS, Windows ve Android gibi birçok platform için proje oluşturabilir. Ayrıca bir platform için kod oluştururken diğerinde çalıştırırken güçlü derlemeler arası özellikler sunar.

Geniş ekosistem

Sektör liderleri Bazel'i kullanıyor ve Bazel'i kullanan ve katkıda bulunan geliştiricilerden oluşan büyük bir topluluk oluşturuyor. Bazel'ın kullanabileceği danışmanlık ve SaaS teklifleri gibi araçlar, hizmetler ve belgeler bulun. Açık kaynak yazılım depolarımızda programlama dili desteği gibi uzantıları keşfedin.