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

รายงานปัญหา ดูซอร์สโค้ด รุ่น Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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

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

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

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

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

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

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

  • บิลด์ที่กระจายอยู่

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

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

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