อ่าน 2 นาที
ผู้บรรยายมาก่อน (แนวทางด้านซอฟต์แวร์)
Presenter First คือแนวทางการพัฒนาซอฟต์แวร์ที่ผสมผสานแนวคิดของ รูปแบบการออกแบบ Model-View-Presenter (MVP), การพัฒนาแบบทดสอบนำ (Test-Driven Development) และ การพัฒนาแบบเน้นฟีเจอร์...
ผู้บรรยายมาก่อน (แนวทางด้านซอฟต์แวร์)
Presenter Firstคือแนวทางการพัฒนาซอฟต์แวร์ที่ผสมผสานแนวคิดของ รูปแบบการออกแบบ Model-View-Presenter (MVP), การพัฒนาแบบทดสอบนำ (Test-Driven Development)และการพัฒนาแบบเน้นฟีเจอร์ (Feature-Driven Development )
เข้าใกล้
ขั้นแรก ผู้เสนอจะมุ่งเน้นไปที่การแปลงข้อกำหนดแต่ละข้อของลูกค้าให้เป็นฟีเจอร์ที่ใช้งานได้จริงและผ่านการทดสอบมาอย่างดี โดยให้รวดเร็วและสอดคล้องกับภาษาเรื่องราว (ข้อกำหนด) ของลูกค้ามากที่สุดเท่าที่จะเป็นไปได้ ภาษาของเรื่องราวหรือข้อกำหนดจะถูกนำมาใช้เป็นแนวทางโดยตรงในการพัฒนาฟีเจอร์ แม้กระทั่งการตั้งชื่อโมดูลและการเรียกใช้ฟังก์ชัน ผลที่ตามมาคือ การพัฒนาฟีเจอร์มักจะตรงกับความต้องการของลูกค้าโดยมีฟังก์ชันที่ไม่จำเป็นน้อยที่สุด ภาษาของซอร์สโค้ดก็สอดคล้องกับเรื่องราวของลูกค้าอย่างใกล้ชิดเช่นกัน
รูปแบบการออกแบบ Presenter first มักถูกนำไปใช้ใน แอปพลิ เคชันส่วนติดต่อผู้ใช้แบบกราฟิก (GUI ) และยังใช้ได้ดีในการพัฒนาส่วนติดต่อผู้ใช้แบบบรรทัดคำสั่ง (CLI) นอกจากนี้ รูปแบบดังกล่าวที่ปรับเปลี่ยนเล็กน้อยยังถูกนำไปใช้อย่างมีประสิทธิภาพในซอฟต์แวร์ฝังตัว (Embedded software ) โดยรูปแบบการออกแบบแบบบูรณาการนี้เรียกว่า Model-Conductor-Hardware และรูปแบบนี้เรียกว่าConductor first
เมื่อใช้ในแอปพลิเคชัน GUI แนวทางนี้ช่วยให้ สามารถพัฒนาตรรกะการนำเสนอและตรรกะทางธุรกิจ ของแอปพลิเคชันได้ในลักษณะทดสอบก่อน โดยแยกส่วนออกจากวิดเจ็ตบนหน้าจอ ดังนั้น การเขียนโปรแกรมแอปพลิเคชันส่วนใหญ่จึงสามารถทดสอบได้ผ่าน การทดสอบหน่วยในชุดทดสอบอัตโนมัติ ด้วยวิธีนี้ การพึ่งพาเครื่องมือทดสอบ GUIเพื่อทำการทดสอบระบบ อย่างครอบคลุมจึง สามารถลดลงเหลือเพียงการตรวจสอบการทำงานพื้นฐานของ GUI หรืออาจกำจัดออกไปได้ทั้งหมด
การดำเนินการ
รูปแบบการออกแบบ MVP (Minimum Viable Product) แยกส่วนประกอบบนหน้าจอ ตรรกะการนำเสนอ และตรรกะทางธุรกิจออกจากกัน โดยเริ่มจากส่วนประกอบ Presenter ก่อนในกระบวนการพัฒนา การพัฒนาแบบทดสอบนำ (Test-driven development) ทำได้โดยการจำลอง (mocking)ส่วน View และ Model แล้วเขียน Unit Test สำหรับ Presenter จากนั้นจึงเขียนและแก้ไขโค้ดสำหรับการผลิตของ Presenter จนกว่า Unit Test จะผ่าน วงจรนี้จะทำซ้ำสำหรับ Model การทดสอบ Unit Test ของ View มักทำได้ยากหรือไม่สามารถทำได้จริง ดังนั้นโค้ดของ View จึงถูกทำให้ "บาง" และปราศจากตรรกะมากที่สุดเท่าที่จะเป็นไปได้ (เช่นViewเป็นเพียงตัวห่อหุ้มการเรียกใช้ไลบรารีวิดเจ็ต และตรรกะการนำเสนอจะอยู่ในส่วน Presenter) วิธีการ Presenter first ที่นำมาใช้กับรูปแบบ MVP ช่วยให้สามารถทดสอบตรรกะส่วนใหญ่ของแอปพลิเคชันได้โดยอัตโนมัติ เหลือเพียงการทดสอบการตรวจสอบบนหน้าจออย่างง่ายของ View และวิดเจ็ตเท่านั้น
กรณีทดสอบสำหรับส่วนนำเสนอ (presenter) นั้นถูกกำหนดจากข้อกำหนดหรือเรื่องราวของลูกค้า โดยทั่วไปแล้ว ลูกค้าจะอธิบายคุณสมบัติในรูปของคำสั่ง 'เมื่อ' – ตัวอย่างเช่น "เมื่อฉันคลิกปุ่ม 'บันทึก' ไฟล์ควรถูกบันทึกและคำเตือนไฟล์ที่ยังไม่ได้บันทึกควรหายไป" การทดสอบหน่วยและการเขียนโค้ดส่วนนำเสนอจะทำงานตามลำดับของคำสั่ง 'เมื่อ' ส่วนนำเสนอคาดหวังว่าเหตุการณ์ที่เกี่ยวข้องกับมุมมอง (view events) จะเกิดขึ้น (เช่น การคลิกปุ่มบันทึก) และในทางกลับกัน มันจะเรียกใช้ฟังก์ชันในมุมมอง (เช่น ซ่อนข้อความเตือน) และในโมเดล (เช่น เริ่มการดำเนินการบันทึกไฟล์) เพื่อตอบสนอง
ฟีเจอร์มากมายของแอปพลิเคชันอาจทำให้การใช้แกน MVP เดียวแบบครบวงจรเป็นเรื่องยาก Presenter จึงแนะนำให้แบ่งแอปพลิเคชันออกเป็นแกน MVP หลายแกน ในแอปพลิเคชัน GUI แต่ละหน้าจอกล่องโต้ตอบและวิดเจ็ตที่ซับซ้อนจะถูกแทนด้วยแกน MVP (โดยการออกแบบฟังก์ชันการทำงานจะขึ้นอยู่กับความต้องการของลูกค้า) การสื่อสารระหว่างแกนต่างๆ ที่รวมกันจะทำได้ผ่านการเชื่อมต่อแบบโปรแกรมระหว่างโมเดล
ลิงก์ภายนอก
- เอกสารและตัวอย่างชุดแรกแหล่งข้อมูลที่รวบรวมโดยกลุ่มผู้ริเริ่มโครงการ Presenter First
- ตอนที่ 1 ตอนที่ 2และตอนที่ 3 – บทถอดเสียงจากวิดีโอพอดแคสต์ซีรีส์กับรอน เจคอบส์ จาก ARCast.TV
- “กรณีศึกษาหลายกรณีเกี่ยวกับ Presenter First: TDD สำหรับทั้งแอปพลิเคชัน GUI แบบสแตนด์อะโลนและการพัฒนาปลั๊กอิน Eclipse”
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ผู้บรรยายมาก่อน (แนวทางด้านซอฟต์แวร์)
Presenter First คือแนวทางการพัฒนาซอฟต์แวร์ที่ผสมผสานแนวคิดของ รูปแบบการออกแบบ Model-View-Presenter (MVP), การพัฒนาแบบทดสอบนำ (Test-Driven Development) และ การพัฒนาแบบเน้นฟีเจอร์...
เข้าใกล้
ขั้นแรก ผู้เสนอจะมุ่งเน้นไปที่การแปลงข้อกำหนดแต่ละข้อของลูกค้าให้เป็นฟีเจอร์ที่ใช้งานได้จริงและผ่านการทดสอบมาอย่างดี โดยให้รวดเร็วและสอดคล้องกับ ภาษาเรื่องราว (ข้อกำหนด) ของลูกค้ามากที่สุดเท่าที่จะเป็นไปได้...
การดำเนินการ
รูปแบบการออกแบบ MVP (Minimum Viable Product) แยกส่วนประกอบบนหน้าจอ ตรรกะการนำเสนอ และตรรกะทางธุรกิจออกจากกัน โดยเริ่มจากส่วนประกอบ Presenter ก่อนในกระบวนการพัฒนา การพัฒนาแบบทดสอบนำ (Test-driven development) ทำได้โดย การจำลอง (mocking) ส่วน View และ Model...
ลิงก์ภายนอก
เอกสารและตัวอย่างชุดแรกแหล่งข้อมูลที่รวบรวมโดยกลุ่มผู้ริเริ่มโครงการ Presenter First ตอนที่ 1 ตอนที่ 2และตอนที่ 3 – บทถอดเสียงจากวิดีโอพอดแคสต์ซีรีส์กับรอน เจคอบส์ จาก ARCast.