อ่าน 2 นาที
โครงสร้างรองรับ (การเขียนโปรแกรม)
ในบริบทของวิทยาการคอมพิวเตอร์ คำว่า "Scaffolding"หมายถึงเทคนิคอย่างใดอย่างหนึ่งจากสองเทคนิคดังต่อไปนี้:
โครงสร้างรองรับ (การเขียนโปรแกรม)
ในบริบทของวิทยาการคอมพิวเตอร์ คำว่า "Scaffolding"หมายถึงเทคนิคอย่างใดอย่างหนึ่งจากสองเทคนิคดังต่อไปนี้:
- การสร้างโค้ด
- เป็นเทคนิคที่เกี่ยวข้องกับการเข้าถึงฐานข้อมูลในเฟรมเวิร์กแบบModel-View-Controller บางประเภท
- การสร้างโครงการ
- เป็นเทคนิคที่ได้รับการสนับสนุนจากเครื่องมือเขียนโปรแกรมต่างๆ
การสร้างโค้ด
การสร้างโครงสร้างพื้นฐาน (Scaffolding)ในการพัฒนาซอฟต์แวร์ หมายถึงเทคนิคการสร้างโค้ดอัตโนมัติที่สร้างโครงสร้างพื้นฐานของแอปพลิเคชันซอฟต์แวร์ได้อย่างรวดเร็ว โดยทั่วไปจะใช้ในสถาปัตยกรรมแบบ Model-View-Controller (MVC) และรูปแบบสถาปัตยกรรมที่คล้ายคลึงกัน การสร้างโครงสร้างพื้นฐานช่วยให้นักพัฒนาสามารถสร้างโค้ดสำหรับฟังก์ชันทั่วไปของแอปพลิเคชันและการโต้ตอบข้อมูลได้อย่างรวดเร็ว โดยเฉพาะอย่างยิ่งการดำเนินการ CRUD
Scaffolding พัฒนามาจากเครื่องมือพัฒนาซอฟต์แวร์รุ่นก่อนๆ เช่น CASE Generator ของ Oracle และ เครื่องมือ 4GL อื่นๆ ที่ออกแบบมาเพื่อลดความซับซ้อนในการสร้างแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูลที่มีประสิทธิภาพ
แอปพลิเคชันและเฟรมเวิร์ก
แนวคิดนี้ได้รับความนิยมอย่างแพร่หลายผ่านเฟรมเวิร์กต่างๆ เช่นRuby on Railsซึ่งขึ้นชื่อเรื่องการสร้างโครงสร้าง MVC และการดำเนินการ CRUD อย่างมีประสิทธิภาพ ปัจจุบัน Scaffolding ได้รับการสนับสนุนจากเฟรมเวิร์กการพัฒนาที่หลากหลายในภาษาโปรแกรมต่างๆ รวมถึง:
- รูบี้ออนเรลส์
- การใช้โครงสร้างแบบนั่งร้านที่ได้รับความนิยมสำหรับโครงสร้าง MVC
- จังโก้
- มีอินเทอร์เฟซผู้ดูแลระบบในตัวและโครงสร้างพื้นฐานแบบอิงตามโมเดล
- เฟรมเวิร์ก Express (JavaScript)
- โครงสร้างพื้นฐานสำหรับการพัฒนา REST API อย่างรวดเร็ว
- เฟรมเวิร์กสำหรับเล่นเกม (Java/Scala)
- ช่วยให้การตั้งค่าโปรเจ็กต์และการสร้างโครงสร้างพื้นฐาน MVC ทำได้อย่างรวดเร็ว
- ลาราเวล (PHP)
- ใช้ Artisan CLI ในการสร้างคอมโพเนนต์ MVC
- ซิมโฟนี (PHP)
- นำเสนอทางเลือกโครงสร้างนั่งร้านที่ยืดหยุ่นผ่านชุดอุปกรณ์สำหรับนักประดิษฐ์
- เค้กพีเอชพี (พีเอชพี)
- นำเสนอความสามารถในการสร้างโครงสร้างพื้นฐานอย่างครอบคลุมสำหรับ MVC
- ASP.NET MVC (.NET)
- มีเครื่องมือสร้างโครงร่างในตัวสำหรับตัวควบคุมและมุมมองต่างๆ
- สปริงรู (ชวา)
- การพัฒนาอย่างรวดเร็วผ่านโครงสร้างค้ำยันที่ครอบคลุม
- เกรลส์ (กรูวี่)
- โครงสร้างแบบไดนามิกและการสร้างต้นแบบอย่างรวดเร็ว
- แองกูลาร์ (JavaScript)
- ใช้ Angular CLI ในการสร้างโครงสร้างพื้นฐานของส่วนประกอบและบริการต่างๆ
- React.js (JavaScript)
- รองรับการสร้างโครงสร้างพื้นฐานผ่านเครื่องมือต่างๆ เช่น Create React App
การสร้างโครงสร้างพื้นฐานระหว่างการทำงานจริงเทียบกับการสร้างโครงสร้างพื้นฐานระหว่างการออกแบบ
การสร้าง Scaffolding สามารถเกิดขึ้นได้ในสองขั้นตอนที่แตกต่างกันของการพัฒนาซอฟต์แวร์:
- โครงสร้างรองรับในขั้นตอนการออกแบบ
- กระบวนการนี้เกิดขึ้นในระหว่างขั้นตอนการพัฒนา โดยจะสร้างไฟล์และโครงสร้างโค้ดที่นักพัฒนาสามารถปรับแต่งและบำรุงรักษาได้ แม้ว่าจะสามารถปรับแต่งได้อย่างมาก แต่การสร้างโครงสร้างพื้นฐานอย่างละเอียดในขั้นตอนการออกแบบอาจทำให้เกิดความซับซ้อนเนื่องจากมีไฟล์จำนวนมากที่นักพัฒนาต้องจัดการและบำรุงรักษาด้วยตนเอง
- โครงสร้างการทำงานแบบเรียลไทม์
- วิธีการนี้จะสร้างและจัดการการทำงานต่างๆ แบบไดนามิกในระหว่างการทำงาน ซึ่งช่วยลดการสร้างไฟล์ด้วยตนเอง การสร้างโครงสร้างพื้นฐานในระหว่างการทำงานช่วยให้การจัดการง่ายขึ้น แต่มีตัวเลือกการปรับแต่งน้อยกว่า และอาจส่งผลกระทบต่อประสิทธิภาพของแอปพลิเคชัน
ข้อดีและข้อจำกัด
นั่งร้านมีทั้งข้อดีและข้อเสียหลายประการ:
ประโยชน์
- ช่วยเร่งวงจรการพัฒนาให้เร็วขึ้น
- กำหนดมาตรฐานการเขียนโค้ดและส่งเสริมความสม่ำเสมอ
- ช่วยเพิ่มประสิทธิภาพในการสร้างต้นแบบอย่างรวดเร็วและการพัฒนาแบบวนซ้ำ
ข้อจำกัด
- โค้ดที่สร้างขึ้นอาจต้องได้รับการปรับแต่งเพิ่มเติมอย่างมาก
- อาจเพิ่มความซับซ้อนโดยไม่จำเป็นสำหรับแอปพลิเคชันขนาดเล็กหรือเรียบง่ายกว่า
- อาจลดความเข้าใจของนักพัฒนาเกี่ยวกับโครงสร้างโค้ดพื้นฐานได้
การสร้างโครงการ
โครงการ พัฒนาซอฟต์แวร์ที่ซับซ้อนมักมีข้อกำหนดและโครงสร้างโครงการที่คล้ายคลึงกัน ตัวอย่างเช่น มักจะมีโฟลเดอร์แยกต่างหากสำหรับซอร์สโค้ดไบนารีและการทดสอบโค้ดรวมถึงไฟล์ที่มีข้อตกลงใบอนุญาตบันทึกการเผยแพร่และข้อมูลติดต่อ เพื่อให้การสร้างโครงการตามข้อกำหนดเหล่านั้นง่ายขึ้น เครื่องมือ "scaffolding" สามารถสร้างโครงสร้างเหล่านี้โดยอัตโนมัติในตอนเริ่มต้นของแต่ละโครงการ เครื่องมือดังกล่าวได้แก่Yeoman , Cargoและ Ritchie CLI สำหรับโครงการ . NETdotnetนั้น สามารถใช้เครื่องมือบรรทัดคำสั่งที่มาพร้อมกับ .NET SDK เพื่อสร้างโครงสร้างโครงการใหม่ได้
ดูเพิ่มเติม
- Spring Roo – เครื่องมือซอฟต์แวร์โอเพนซอร์ส
- Play Framework – เฟรมเวิร์กเว็บโอเพนซอร์สที่เขียนด้วยภาษา Scala
- Apache Tapestry – เฟรมเวิร์กแอปพลิเคชันเว็บแบบโอเพนซอร์ส
- Symfony – เฟรมเวิร์กสำหรับการพัฒนาเว็บแอปพลิเคชันด้วยภาษา PHP สำหรับแอปพลิเคชันแบบ MVC
- Laravel – เฟรมเวิร์กโอเพนซอร์สสำหรับการพัฒนาเว็บแอปพลิเคชันด้วยภาษา PHP
- Phalcon PHP – เฟรมเวิร์กเว็บโอเพ่นซอร์ส PHP
- Catalyst – เฟรมเวิร์กแอปพลิเคชันเว็บแบบโอเพนซอร์ส
- Mojolicious – เฟรมเวิร์กสำหรับแอปพลิเคชันบนอินเทอร์เน็ต
- ASP.NET Dynamic Data – เฟรมเวิร์กสำหรับการเขียนโปรแกรมเว็บ
- Ruby on Rails – เฟรมเวิร์กโอเพนซอร์สสำหรับพัฒนาเว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์
- Yii – เฟรมเวิร์กสำหรับการพัฒนาเว็บแอปพลิเคชัน
- CodeIgniter – เฟรมเวิร์กซอฟต์แวร์สำหรับการพัฒนาเว็บแบบโอเพนซอร์สและใช้งานได้ฟรี
- CakePHP – เฟรมเวิร์กเว็บโอเพนซอร์สที่เขียนด้วยภาษา PHP
- MonoRail – เฟรมเวิร์กแอปพลิเคชันเว็บแบบโอเพนซอร์ส
- FuelPHP – เฟรมเวิร์กแอปพลิเคชันเว็บแบบโอเพนซอร์ส
- Django (เฟรมเวิร์กสำหรับเว็บ) – เฟรมเวิร์กสำหรับเว็บที่เขียนด้วยภาษา Python
- แพลตฟอร์ม OutSystems (PaaS) – บริษัทซอฟต์แวร์
- โยแมน
ลิงก์ภายนอก
- เริ่มต้นใช้งาน Scaffolding อย่างรวดเร็ว , เอกสารอ้างอิงวิธีการใช้ Scaffolding ( ลิงก์ถูกยกเลิกและ เก็บถาวร เมื่อวันที่ 7 เมษายน 2548 ที่archive.today ) (จาก rubyonrails.org)
- Rails Scaffolder's Toolbox - ส่วนต่อประสานผู้ใช้แบบกราฟิก (GUI) สำหรับเครื่องมือสร้างโครงสร้างข้อมูลของ Rails (แอปพลิเคชันสำหรับ Mac เท่านั้น ดาวน์โหลดได้จาก Mac App Store)