กลับไปหน้าบทความ

อ่าน 3 นาที

สร้างระบบอัตโนมัติ

การสร้างระบบซอฟต์แวร์แบบอัตโนมัติ คือการ สร้าง ระบบซอฟต์แวร์ในลักษณะที่ไม่ต้องดูแลอย่างใกล้ชิด กระบวนการสร้างจะถูกตั้งค่าให้ทำงานโดยมี การโต้ตอบ จากนักพัฒนาซอฟต์แวร์...

สร้างระบบอัตโนมัติ

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

การสร้างอัตโนมัติครอบคลุมทั้งการจัดลำดับการดำเนินการสร้างผ่าน เครื่องมือ อินเทอร์เฟซแบบไม่โต้ตอบและการเรียกใช้การสร้างบนเซิร์ฟเวอร์ที่ ใช้ร่วมกัน [ 1 ]

เครื่องมือ

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

เมื่อโครงการซอฟต์แวร์มีความซับซ้อนมากขึ้น ขั้นตอนการสร้างอาจเกี่ยวข้องกับภาษาการเขียนโปรแกรม หลาย ภาษาหรือหน่วยการคอมไพล์ ทำให้กระบวนการสร้างด้วยตนเองยุ่งยากมากขึ้นเรื่อยๆ การพึ่งพากันระหว่างส่วนประกอบของโค้ดทำให้จำเป็นต้องมีการจัดลำดับอย่างระมัดระวังและอาจต้องใช้เครื่องมือที่แตกต่างกันสำหรับแต่ละส่วน การจัดการการพึ่งพากันเหล่านี้ด้วยตนเองอาจนำไปสู่ความขัดแย้งของเวอร์ชัน ไบนารีที่ล้าสมัย และความยากลำบากในการติดตามการอัปเดต ทำให้โซลูชันเช่นสคริปต์เชลล์ยากเกินไปที่จะบำรุงรักษา[ 3 ]

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

การสร้างแบบเพิ่มทีละน้อย

การสร้างแบบเพิ่มทีละส่วนเป็นกระบวนการภายในระบบการสร้างที่เครื่องมือสร้างใช้คอมไพเลอร์แบบเพิ่มทีละส่วนเพื่อคอมไพล์เฉพาะส่วนของ โปรเจกต์ ซอฟต์แวร์ที่เปลี่ยนแปลงไปตั้งแต่การสร้างครั้งล่าสุด แทนที่จะสร้างทุกอย่างใหม่ตั้งแต่ต้น การเพิ่มประสิทธิภาพนี้ช่วยลดเวลาในการสร้างโดยใช้ประโยชน์จากการติดตามการพึ่งพาการแคชและการคอมไพล์แบบเลือก[ 7 ]

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

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

แม้ว่าการสร้างแบบเพิ่มทีละส่วนจะให้ ข้อได้เปรียบ ด้านประสิทธิภาพ อย่างมาก แต่ก็ยังก่อให้เกิดความท้าทาย เช่น การรับรองความถูกต้องของการติดตามการพึ่งพา และการหลีกเลี่ยงสิ่งประดิษฐ์การสร้างที่ล้าสมัยหรือไม่สอดคล้องกัน เพื่อแก้ไขปัญหาเหล่านี้ ระบบการสร้างบางระบบจึงมีกลไกสำหรับ "การสร้างที่สะอาด" ซึ่งจะสร้างโปรเจกต์ทั้งหมดขึ้นใหม่ตั้งแต่ต้นเพื่อรับประกันความถูกต้องเมื่อจำเป็น[ 10 ]เนื่องจากปัญหานี้ การสร้างแบบเพิ่มทีละส่วนจึงไม่ค่อยได้ใช้ใน ระบบ การรวมอย่างต่อเนื่องซึ่งความถูกต้องมีความสำคัญมากกว่าความเร็วในการคอมไพล์[ 11 ]

คุณสมบัติหลัก

ระบบการก่อสร้างส่วนใหญ่มีคุณสมบัติที่ช่วยให้การสร้างโครงการขนาดใหญ่เป็นเรื่องง่ายขึ้น:

  • การจัดการการพึ่งพา: การแก้ไขและติดตามการพึ่งพาระหว่างส่วนประกอบต่างๆ
  • การสร้างแบบเพิ่มทีละส่วน : สร้างใหม่เฉพาะส่วนที่มีการเปลี่ยนแปลงเท่านั้น
  • รองรับหลายแพลตฟอร์ม: สร้างแอปพลิเคชันสำหรับสภาพแวดล้อมต่างๆ (เช่นWindows , Linux , macOS )
  • การสร้าง แบบขนาน : เร่งความเร็วในการสร้างโดยการเรียกใช้งานหลายๆ งานพร้อมกัน
  • ความสามารถในการขยาย: รองรับปลั๊กอินหรือสคริปต์ที่กำหนดเอง

เครื่องมือตัวอย่าง

สามารถใช้เครื่องมือต่างๆ เช่นMake ผ่านไฟล์การกำหนดค่าแบบกำหนดเองหรือใช้ บรรทัดคำสั่งนอกจากนี้ยังสามารถใช้เครื่องมือแบบกำหนดเอง เช่นสคริปต์เชลล์ ได้ แม้ว่าจะยุ่งยากมากขึ้นเมื่อโค้ดเบสมีความซับซ้อนมากขึ้น [ 12 ]

เครื่องมือบางอย่าง เช่นสคริปต์เชลล์เป็นการเขียนโปรแกรมเชิงประกาศ ที่เน้นงานเป็นหลัก โดยจะเข้ารหัสลำดับของคำสั่งเพื่อดำเนินการ โดยปกติแล้วจะใช้ตรรกะเงื่อนไขน้อยที่สุด

เครื่องมือบางอย่าง เช่น Make มุ่งเน้นที่ผลิตภัณฑ์ โดยจะสร้างผลิตภัณฑ์หรือเป้าหมายตามการพึ่งพาที่กำหนดค่าไว้[ 13 ]

เซิร์ฟเวอร์

เซิร์ฟเวอร์สำหรับสร้างโปรแกรม (Build server) คือเซิร์ฟเวอร์ที่ตั้งค่าไว้เพื่อใช้ในการสร้างโปรแกรมแตกต่างจากคอมพิวเตอร์ส่วนบุคคลเซิร์ฟเวอร์ช่วยให้สภาพแวดล้อมในการสร้างโปรแกรมมีความสม่ำเสมอและพร้อมใช้งานมากกว่า

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

หากไม่มีเซิร์ฟเวอร์สำหรับสร้างโปรแกรม นักพัฒนาส่วนใหญ่จะใช้คอมพิวเตอร์ส่วนตัวในการสร้างโปรแกรม ซึ่งนำไปสู่ข้อเสียหลายประการ เช่น แต่ไม่จำกัดเพียง:

  • นักพัฒนาที่เชี่ยวชาญด้านการสร้างอาจไม่ว่าง (เช่น ลาพักร้อน)
  • ปัญหาเกี่ยวกับเครื่องคอมพิวเตอร์ของนักพัฒนาอาจทำให้ไม่สามารถสร้างโปรแกรมได้
  • ซอฟต์แวร์ที่ขัดแย้งกันในเครื่องของนักพัฒนาอาจขัดขวางการสร้างแอปพลิเคชันอย่างถูกต้อง

เซิร์ฟเวอร์การรวมอย่างต่อเนื่อง (Continuous Integration Server) คือเซิร์ฟเวอร์สร้าง (Build Server) ที่ตั้งค่าให้สร้างเวอร์ชันใหม่บ่อยครั้ง โดยมักจะสร้างทุกครั้งที่มีการคอมมิต โค้ด เซิร์ฟเวอร์สร้างนี้อาจถูกรวมเข้ากับเครื่องมือสำหรับการจัดการการเผยแพร่ แอปพลิเคชันอัตโนมัติ ( Application Release Automation : ARA) หรือการจัดการวงจรชีวิตแอปพลิเคชัน (Application Lifecycle Management : ALM) ด้วยเช่นกัน

ตัวเลือกทั่วไปในการเริ่มสร้างบิลด์ ได้แก่:

การบูรณาการอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่อง

การทำให้กระบวนการสร้างเป็นแบบอัตโนมัติถือเป็นขั้นตอนที่จำเป็นสำหรับการนำการบูรณาการอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่อง (CI/CD) มาใช้ ซึ่งทั้งหมดนี้ถือเป็นแนวปฏิบัติที่ดีที่สุดสำหรับการพัฒนาซอฟต์แวร์[ 14 ]

ข้อดี

ข้อดีของการสร้างอัตโนมัติ ได้แก่: [ 15 ]

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

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Build_automation&oldid=1358827837#Tools "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ สร้างระบบอัตโนมัติ

การสร้างระบบซอฟต์แวร์แบบอัตโนมัติ คือการ สร้าง ระบบซอฟต์แวร์ในลักษณะที่ไม่ต้องดูแลอย่างใกล้ชิด กระบวนการสร้างจะถูกตั้งค่าให้ทำงานโดยมี การโต้ตอบ จากนักพัฒนาซอฟต์แวร์...

เครื่องมือ

เครื่องมือสร้างอัตโนมัติช่วยให้สามารถจัดลำดับงานการสร้างซอฟต์แวร์ผ่านอินเทอร์เฟซที่ไม่ต้องโต้ตอบ ระบบการสร้าง หรือ เครื่องมือสร้างอัตโนมัติ [ 2 ] เป็น เครื่องมือการเขียนโปรแกรม หรือ ชุดเครื่องมือ ที่ทำให้ การคอม ไพล์ และ การเชื่อม โยง ซอร์สโค้ดเป็น โปรแกรม...

การสร้างแบบเพิ่มทีละน้อย

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

คุณสมบัติหลัก

ระบบการก่อสร้างส่วนใหญ่มีคุณสมบัติที่ช่วยให้การสร้างโครงการขนาดใหญ่เป็นเรื่องง่ายขึ้น: