Thursday, January 12, 2017

MVC แนวคิดการเขียนโปรแกรม ที่หลายคนอาจจะไม่รู้จัก

หลายคนอาจจะเคยได้ยินและรู้จักกับแนวคิดการเขียนโปรแกรมแบบ MVC ซึ่งเป็นที่นิยมและใช้กันอย่างหลากหลาย แต่บางคนอาจจะยังไม่ค่อยเข้าใจวิธีการทำงานซักเท่าไหร่ วันนี้กระผมก็จะมาระบายความรู้ที่ได้มาจากการไปฝึกงานสหกิจมา หลายหน่วยงานตอนนี้ก็กำลังใช้แนวคิดการเขียนโปรแกรมแบบนี้ในการพัฒนาระบบต่างๆ ก็เป็นการดีที่เราจะไปทักทายกับแนวคิดนี้ซักหน่อย ⊙0⊙

       MVC คือ สถาปัตยกรรมซอฟต์แวร์ชนิดหนึ่ง ซึ่งปัจจุบันมี Frameworks สำหรับสร้าง Web Apps จำนวนมาก แต่เกือบทั้งหมดมีโครงสร้างแบบ MVC ซึ่งแต่ละ Web Apps จะถูกแบ่งออกเป็นสามส่วน คือ 

1. Model คือ ส่วนที่ใช้ในการติดต่อกับฐานข้อมูล ซึ่งทำหน้าที่ในการดึงข้อมูลขึ้นมาจาก
ฐานข้อมูลขึ้นมา และทำการจัดการข้อมูลต่างๆไว้ในรูปแบบที่เหมาะสม

2. View คือส่วนที่จะนำข้อมูลจาก Model ไปใช้แสดงผลให้ผู้ใช้เห็นผลลัพธ์ออกมา
ใน User Interface 

3. Controller คือส่วนที่จะคอยรับ Input จาก Client เข้ามาแล้วนำคำสั่งไประมวลผล 
เพื่อสั่งงาน View และ Model ให้ประมวลผลออกมาเป็นอย่างไร


ขั้นตอนการทำงานของ MVC
  

1. เริ่มจาก Client ส่ง Request ไปที่ Web App ซึ่งจะถูกส่งต่อให้ Controller  
ทำการตรวจสอบข้อมูลที่มาให้ (Request Method, Request Parameters) 
2. แล้ว Controller จะเรียก Method ให้ทำงานเพื่อจัดการ Request นั้น 
3. Model จะทำการคำนวณและอาจติดต่อกับ Database เพื่อจัดการกับ Request  
นั้น แล้วส่งผลลัพธ์กลับไปที่ Controller 
4. เมื่อ Controller ได้ผลลัพธ์จาก Model แล้วก็ใช้ผลลัพธ์นั้นส่งต่อให้ View ทำงาน 
5. View จะสร้าง Page สำหรับแสดงผลลัพธ์นั้น แล้วส่ง page กลับไปที่ Controller  
6. Controller ส่ง Page นั้น (เป็น Response) กลับไปยัง Client

          นี้ก็เป็นหลักการทำงานของแนวคิดนี้นะครับ เป็นอย่างไรบ้างครับ ดูใช้งานง่ายขึ้นใช้ไหม ในด้านประสบการณ์ที่ไปฝึกงานสหกิจมาผมคิดว่า ตอนนี้หลายบริษัทได้ใช้แนวคิดนี้ในการพัฒนาระบบทั้งนั้น และใช้มานานเเล้วด้วย ⊙△⊙ (แต่กระผมก็ไม่เคยลองทำจริงจัง) เป็นเหตุให้ตอนฝึกงานต้องไปนั่งเรียนรู้ใหม่ แต่ไม่เป็นไร ถือว่าเป็นประสบการณ์ครับ ต้องเรียนรู้ในเวลาที่เร่งรีบมันช่างมันส์สสสสสส T^T   ถือว่าบทความนี้ เป็นการมาระบายว่า ควรเตรียมตัวให้พร้อมก่อนจะลงสนามนะครับแหม่มมม (¯▽¯;) 

Source : http://sundryanything.blogspot.com/2014/03/mvc.html

No comments:

Post a Comment