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

รายงานปัญหา ดูแหล่งที่มา Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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

  • เหตุใดจึงต้องมีระบบบิลด์

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

  • ระบบการสร้างตามงาน

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

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

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

  • การสร้างแบบกระจาย

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

  • การจัดการการขึ้นต่อกัน

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