นักพัฒนาซอฟต์แวร์ทุกรายสามารถสร้าง ทดสอบ และทำแพ็กเกจได้อย่างมีประสิทธิภาพ โปรเจ็กต์ใดก็ได้ทุกขนาดหรือทุกระดับความซับซ้อน พร้อมเครื่องมือที่ใช้งานง่ายและ ขยาย
วิศวกรสามารถเข้าใจพื้นฐานของบิลด์ นักพัฒนาซอฟต์แวร์ มุ่งเน้นที่กระบวนการสร้างสรรค์ การเขียนโค้ดเพราะว่า ของขั้นตอนการสร้างและการทดสอบได้รับการแก้ไขแล้ว เมื่อปรับแต่งระบบบิลด์เป็น รองรับภาษาใหม่ๆ หรือความต้องการเฉพาะขององค์กร ผู้ใช้มุ่งเน้นที่ ในการขยายการใช้งานที่แตกต่างกันไปตามกรณีการใช้งานโดยไม่ต้อง คิดค้นระบบท่อประปาพื้นฐานใหม่
วิศวกรสามารถสนับสนุนโปรเจ็กต์ใดๆ ได้อย่างง่ายดาย นักพัฒนาซอฟต์แวร์ที่ต้องการ เริ่มต้นทำงานในโปรเจ็กต์ใหม่ได้ เพียงแค่โคลนโปรเจ็กต์และเรียกใช้ งานสร้าง ไม่จำเป็นต้องกำหนดค่าในเครื่อง เพราะใช้งานได้ทันที ด้วย การดำเนินการระยะไกลข้ามแพลตฟอร์ม ใช้ได้กับเครื่องใดก็ได้จากทุกที่ ทดสอบการเปลี่ยนแปลงของตนเองกับทุกแพลตฟอร์มที่โปรเจ็กต์กำหนดเป้าหมายอย่างเต็มรูปแบบ วิศวกรสามารถกำหนดค่าบิลด์สำหรับโปรเจ็กต์ใหม่ หรือค่อยๆ เพิ่ม ย้ายข้อมูลบิลด์ที่มีอยู่
โปรเจ็กต์ปรับขนาดได้สำหรับฐานของโค้ดทุกขนาดและทุกทีมทุกขนาด เร็ว การทดสอบที่เพิ่มขึ้นช่วยให้ทีมตรวจสอบการเปลี่ยนแปลงทั้งหมดได้อย่างเต็มที่ มีสัญญาผูกมัด สิ่งนี้จะยังคงเป็นจริงแม้ในขณะที่ที่เก็บเติบโตขึ้น โปรเจ็กต์ก็จะครอบคลุม และเปิดตัวในหลายภาษา โครงสร้างพื้นฐานไม่ได้บังคับ เพื่อแลกเปลี่ยนกับการทดสอบการครอบคลุมของความเร็วของบิลด์
เราเชื่อว่า Bazel มีศักยภาพที่จะทำตามวิสัยทัศน์นี้ได้สำเร็จ
Bazel สร้างขึ้นใหม่หมดเพื่อช่วยให้งานสร้างที่ทำซ้ำได้ ( ชุดอินพุตที่กำหนดจะให้เอาต์พุตเดียวกันเสมอ) และแบบพกพา (บิลด์ สามารถเรียกใช้บนเครื่องใดก็ได้โดยไม่ส่งผลกระทบต่อเอาต์พุต)
ลักษณะเหล่านี้รองรับส่วนเพิ่มที่ปลอดภัย (มีการเปลี่ยนแปลงเฉพาะการสร้างใหม่เท่านั้น) ไม่ก่อให้เกิดความเสี่ยงที่จะเกิดความเสียหาย) และความสามารถในการเผยแพร่ (สร้าง การทำงานต่างๆ จะแยกต่างหากและตัดออกจากการทำงานได้) ลดงานที่ต้องทำ บิลด์ที่ถูกต้องและการติดตั้งพร้อมกันซึ่งใช้งานได้กับแกนประมวลผลหลายรายการและรีโมต Bazel สามารถสร้างงาน ได้อย่างรวดเร็ว
เลเยอร์นามธรรมของ Bazel — วิธีการสำหรับภาษา แพลตฟอร์ม และ Toolchains ที่ติดตั้งใช้งานในภาษาส่วนขยายที่เรียบง่าย ทำให้สามารถ นำไปใช้กับบริบทต่างๆ ได้อย่างง่ายดาย
ความสามารถหลักของ Bazel
- Bazel รองรับบิลด์และการทดสอบหลายภาษาและหลายแพลตฟอร์ม คุณสามารถ เรียกใช้คำสั่งเดียวเพื่อสร้างและทดสอบโครงสร้างซอร์สทั้งหมด ไม่ว่า ซึ่งเป็นชุดของภาษาและแพลตฟอร์มที่คุณกำหนดเป้าหมาย
- บิลด์ของ Bazel นั้นรวดเร็วและถูกต้อง ทุกบิลด์และการทดสอบ ในบัญชีของนักพัฒนาซอฟต์แวร์ และ CI
- Bazel มีภาษาเดียวกันที่ขยายได้ เพื่อกำหนดงานสร้างสำหรับ ภาษาหรือแพลตฟอร์ม
- Bazel ช่วยให้บิลด์ของคุณปรับขนาดได้โดยเชื่อมต่อกับการดำเนินการจากระยะไกล บริการแคช
- Bazel ใช้งานได้ในแพลตฟอร์มการพัฒนาหลักทั้งหมด (Linux, MacOS และ Windows)
- เราทราบว่าการปรับใช้ Bazel นั้นต้องอาศัยความพยายาม แต่การทยอยนำไปใช้จะเป็น เท่าที่จะเป็นไปได้ อินเทอร์เฟซ Bazel ที่มีเครื่องมือมาตรฐานสำหรับ ภาษา/แพลตฟอร์ม
ชุมชนที่ให้บริการด้านภาษา
วิศวกรรมซอฟต์แวร์มีการพัฒนาในบริบทของชุมชนภาษา ซึ่งโดยปกติแล้ว การจัดระเบียบกลุ่มคนที่ใช้เครื่องมือและแนวทางปฏิบัติทั่วไปด้วยตนเอง
ในการใช้กับสมาชิกของชุมชนภาษา กฎ Bazel คุณภาพสูงจะต้อง ที่มีอยู่ซึ่งผสานรวมกับขั้นตอนการทำงานและแบบแผนของชุมชนนั้น
Bazel มุ่งมั่นที่จะขยายผลและเปิดกว้าง รวมทั้งสนับสนุนกฎเกณฑ์ที่ดีสำหรับ ภาษาใดก็ได้
ข้อกำหนดของชุดกฎที่ดี
- กฎจะต้องสนับสนุนการสร้างและการทดสอบที่มีประสิทธิภาพสำหรับ รวมถึงการครอบคลุมของโค้ด
- กฎจะต้องเชื่อมต่อกับ "เครื่องมือจัดการแพ็กเกจ" ที่ใช้กันอย่างแพร่หลายสำหรับ (เช่น Maven สำหรับ Java) และรองรับเส้นทางการย้ายข้อมูลที่เพิ่มขึ้น จากระบบบิลด์อื่นๆ ที่ใช้กันอย่างแพร่หลาย
- กฎจะต้องขยายการทำงานได้และทำงานร่วมกันได้ โดยทำตาม "แซนด์วิชบาเซล" หลักการต่างๆ
- โดยกฎจะต้องพร้อมใช้งานจากระยะไกล ในทางปฏิบัติหมายความว่า กำหนดค่าได้โดยใช้กลไก toolchains
- กฎ (และ Bazel) จะต้องเชื่อมต่อกับ IDE ที่ใช้กันอย่างแพร่หลายสำหรับ ภาษาหนึ่งๆ ถ้ามี
- กฎต้องมีเอกสารที่ละเอียดครบถ้วนและใช้งานได้ พร้อมช่วงแนะนำ ข้อมูลสำหรับผู้ใช้ใหม่ เอกสารที่ครอบคลุมสำหรับผู้ใช้ที่มีความเชี่ยวชาญ
สินค้าแต่ละอย่างเหล่านี้ล้วนเป็นสิ่งจำเป็นและจะร่วมกันส่งมอบใน สำหรับระบบนิเวศเฉพาะนั้นๆ
ปริมาณที่เหลือ มีขนาดค่อนข้างใหญ่พอสมควร เมื่อทำงานครบถ้วนสมบูรณ์แล้ว Bazel มอบคุณค่าให้แก่สมาชิกในชุมชนภาษานั้นๆ