ระบบบิลด์เป็นหนึ่งในส่วนสําคัญที่สุดขององค์กรวิศวกรเนื่องจากนักพัฒนาซอฟต์แวร์แต่ละคนอาจโต้ตอบกับระบบนี้หลายสิบหรือหลายร้อยครั้งต่อวัน ระบบบิลด์ที่มีคุณสมบัติครบถ้วนเป็นสิ่งจําเป็นต่อการเพิ่มประสิทธิภาพของนักพัฒนาซอฟต์แวร์เมื่อองค์กรขยายขนาด สําหรับนักพัฒนาซอฟต์แวร์แต่ละคน การคอมไพล์โค้ดนั้นทําได้ง่ายๆ ระบบบิลด์จึงอาจดูไม่จำเป็น แต่สำหรับโปรเจ็กต์ขนาดใหญ่ขึ้น การมีระบบบิลด์จะช่วยในการจัดการข้อกําหนดร่วมกัน เช่น การพึ่งพาฐานโค้ดส่วนอื่นหรือทรัพยากรภายนอก เช่น ห้องสมุด ระบบบิลด์ช่วยให้มั่นใจว่าคุณมีทุกอย่างที่จำเป็นในการสร้างโค้ดก่อนที่จะเริ่มสร้าง ระบบบิลด์ยังช่วยเพิ่มความเร็วเมื่อตั้งค่าให้วิศวกรแชร์ทรัพยากรและผลลัพธ์ได้อีกด้วย
ส่วนนี้จะกล่าวถึงประวัติและข้อมูลเบื้องต้นเกี่ยวกับการสร้างและระบบการสร้าง รวมถึงการตัดสินใจด้านการออกแบบที่นำไปใช้ในการสร้าง Bazel หากคุณคุ้นเคยกับระบบการบิลด์ที่อิงตามอาร์ติแฟกต์ เช่น Bazel, Buck และ Pants คุณก็ข้ามส่วนนี้ได้ แต่ส่วนนี้เป็นภาพรวมที่มีประโยชน์ในการทําความเข้าใจว่าเหตุใดระบบการบิลด์ที่อิงตามอาร์ติแฟกต์จึงเหมาะสําหรับการปรับขนาด
-
หากคุณไม่เคยใช้ระบบบิลด์มาก่อน ให้เริ่มต้นที่นี่ หน้านี้จะอธิบายเหตุผลที่คุณต้องการใช้ระบบบิลด์ และเหตุผลที่คอมไพเลอร์และสคริปต์บิลด์ไม่ใช่ตัวเลือกที่ดีที่สุดเมื่อองค์กรเริ่มขยายขนาดเกินนักพัฒนาซอฟต์แวร์เพียงไม่กี่คน
-
หน้านี้กล่าวถึงระบบบิลด์ตามงาน (เช่น Make, Maven และ Gradle) และปัญหาบางอย่างที่ระบบเหล่านี้พบ
-
หน้านี้กล่าวถึงระบบการสร้างที่อิงตามอาร์ติแฟกต์เพื่อตอบสนองต่อปัญหาของระบบการสร้างที่อิงตามงาน
-
หน้านี้ครอบคลุมบิลด์ที่กระจายหรือบิลด์ที่ดำเนินการนอกเครื่อง ซึ่งต้องใช้โครงสร้างพื้นฐานที่มีประสิทธิภาพมากขึ้นเพื่อแชร์แหล่งข้อมูลและสร้างผลลัพธ์ (และนี่คือจุดเริ่มต้นของเวทมนตร์อันน่าอัศจรรย์)
-
หน้านี้กล่าวถึงความซับซ้อนบางอย่างของ Dependency ขนาดใหญ่และกลยุทธ์ในการรับมือกับความซับซ้อนเหล่านั้น