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