ข้อมูลเบื้องต้นเกี่ยวกับบิลด์

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 8.0 · 7.5 · 7.4 · 7.3 · 7.2

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

ส่วนนี้จะกล่าวถึงประวัติและข้อมูลเบื้องต้นเกี่ยวกับการสร้างและระบบการสร้าง รวมถึงการตัดสินใจด้านการออกแบบที่นำไปใช้ในการสร้าง Bazel หากคุ้นเคยกับระบบการบิลด์ที่อิงตามอาร์ติแฟกต์ เช่น Bazel, Buck และ Pants คุณก็ข้ามส่วนนี้ได้ แต่ส่วนนี้เป็นภาพรวมที่มีประโยชน์ในการทําความเข้าใจว่าเหตุใดระบบการบิลด์ที่อิงตามอาร์ติแฟกต์จึงเหมาะสําหรับการปรับขนาด

  • เหตุผลที่ต้องมีระบบบิลด์

    หากคุณไม่เคยใช้ระบบบิลด์มาก่อน ให้เริ่มที่นี่ หน้านี้จะอธิบายเหตุผลที่ควรใช้ระบบบิลด์ และเหตุผลที่คอมไพเลอร์และสคริปต์บิลด์ไม่ใช่ตัวเลือกที่ดีที่สุดเมื่อองค์กรเริ่มขยายขนาดเกินนักพัฒนาซอฟต์แวร์เพียงไม่กี่คน

  • ระบบบิลด์ตามงาน

    หน้านี้กล่าวถึงระบบการสร้างตามงาน (เช่น Make, Maven และ Gradle) และปัญหาบางอย่างที่ระบบเหล่านี้พบ

  • ระบบบิลด์ที่อิงตามอาร์ติแฟกต์

    หน้านี้กล่าวถึงระบบการสร้างที่อิงตามอาร์ติแฟกต์เพื่อตอบสนองต่อปัญหาของระบบการสร้างที่อิงตามงาน

  • บิลด์แบบกระจาย

    หน้านี้ครอบคลุมบิลด์ที่กระจายหรือบิลด์ที่ดำเนินการนอกเครื่อง ซึ่งต้องใช้โครงสร้างพื้นฐานที่มีประสิทธิภาพมากขึ้นเพื่อแชร์แหล่งข้อมูลและสร้างผลลัพธ์ (และนี่คือจุดเริ่มต้นของเวทมนตร์อันน่าอัศจรรย์)

  • การจัดการทรัพยากร Dependency

    หน้านี้กล่าวถึงความซับซ้อนบางอย่างของ Dependency ขนาดใหญ่และกลยุทธ์ในการรับมือกับความซับซ้อนเหล่านั้น