การเปิดตัวระบบบิลด์ Bazel 1.0

แนะนำ การเปิดตัวเครื่องมือประกอบแบบเปิด บาเซล 1.0พัฒนาโดยวิศวกรจาก Google และใช้ประกอบโครงการภายในของบริษัทส่วนใหญ่ รีลีส 1.0 ถือเป็นการเปลี่ยนผ่านไปสู่เวอร์ชันรีลีสเชิงความหมาย และยังมีความโดดเด่นในด้านการแนะนำการเปลี่ยนแปลงจำนวนมากที่ทำลายความเข้ากันได้แบบย้อนหลัง รหัสโครงการ จัดจำหน่ายโดย ได้รับอนุญาตภายใต้ Apache 2.0

Bazel สร้างโปรเจ็กต์โดยการรันคอมไพเลอร์และการทดสอบที่จำเป็น ระบบการสร้างได้รับการออกแบบตั้งแต่ต้นจนจบเพื่อสร้างโปรเจ็กต์ของ Google อย่างเหมาะสมที่สุด รวมถึงโปรเจ็กต์และโปรเจ็กต์ขนาดใหญ่มากที่มีโค้ดในภาษาการเขียนโปรแกรมหลายภาษา ต้องมีการทดสอบที่ครอบคลุม และสร้างขึ้นสำหรับหลายแพลตฟอร์ม รองรับการสร้างและทดสอบโค้ดใน Java, C++, Objective-C, Python, Rust, Go และภาษาอื่นๆ อีกมากมาย รวมถึงการสร้างแอปพลิเคชันมือถือสำหรับ Android และ iOS รองรับการใช้ไฟล์แอสเซมบลีเดี่ยวสำหรับแพลตฟอร์มและสถาปัตยกรรมที่แตกต่างกัน ตัวอย่างเช่น ไฟล์แอสเซมบลีหนึ่งไฟล์ที่ไม่มีการเปลี่ยนแปลงสามารถใช้ได้กับทั้งระบบเซิร์ฟเวอร์และอุปกรณ์มือถือ

คุณสมบัติที่โดดเด่นของ Bazel ได้แก่ ความเร็วสูง ความน่าเชื่อถือ และความสามารถในการทำซ้ำของกระบวนการประกอบ เพื่อให้บรรลุถึงความเร็วในการสร้างที่สูง Bazel จึงใช้เทคนิคการแคชและการขนานสำหรับกระบวนการสร้าง ไฟล์ BUILD จะต้องกำหนดการขึ้นต่อกันทั้งหมดโดยสมบูรณ์ โดยขึ้นอยู่กับการตัดสินใจในการสร้างส่วนประกอบใหม่หลังจากทำการเปลี่ยนแปลง (เฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้นที่ถูกสร้างขึ้นใหม่) และทำให้กระบวนการประกอบเป็นแบบขนาน การใช้เครื่องมือยังช่วยให้มั่นใจได้ว่าการประกอบซ้ำได้ เช่น ผลลัพธ์ของการสร้างโปรเจ็กต์บนเครื่องของนักพัฒนาจะเหมือนกับการสร้างบนระบบของบุคคลที่สามโดยสมบูรณ์ เช่น เซิร์ฟเวอร์การรวมอย่างต่อเนื่อง

ต่างจาก Make และ Ninja ตรงที่ Bazel ใช้วิธีการระดับสูงกว่าในการสร้างกฎการประกอบ ซึ่งแทนที่จะกำหนดการเชื่อมโยงคำสั่งกับไฟล์ที่ถูกสร้างขึ้น กลับใช้บล็อกสำเร็จรูปที่เป็นนามธรรมมากขึ้น เช่น "การสร้างไฟล์ปฏิบัติการใน C++”, “การสร้างไลบรารีด้วย C++” หรือ “การรันการทดสอบสำหรับ C++” รวมถึงการระบุเป้าหมายและสร้างแพลตฟอร์ม ในไฟล์ข้อความ BUILD ส่วนประกอบของโปรเจ็กต์ถูกอธิบายว่าเป็นกลุ่มของไลบรารี ไฟล์ปฏิบัติการ และการทดสอบ โดยไม่มีรายละเอียดในระดับของแต่ละไฟล์และคำสั่งการเรียกคอมไพเลอร์ มีการนำฟังก์ชันเพิ่มเติมไปใช้ผ่านกลไกในการเชื่อมต่อส่วนขยาย

ที่มา: opennet.ru

เพิ่มความคิดเห็น