Model View Control (MVC)
เริ่มกันที่แนวคิดของ MVC ก่อนนะครับ
ในยุคนี้คงไม่มีทางที่เราจะหนีคำนี้ได้พ้นเพราะในการพัฒนาระบบในปัจจุบัน
ขนาดของโครงการจะใหญ่ขึ้นเรื่อยๆ เนื่องจากความต้องการมีสูงขึ้นเรื่อยๆ
ดังนั้นการจะพัฒนา software ด้วยตัวคนเดียวเป็นเรื่องยาก
จึงมีการประยุกต์ใช้งาน Enterpirse Architecture Pattern อย่าง MVC
กันมากขึ้นในทุกๆ platform ด้วยเหตุนี้การจะใช้งาน MVC Framework
ตัวใดก็แล้วแต่ไม่ว่าจะเป็น PHP , .NET หรือ Java
ล้วนแล้วแต่ต้องอาศัยแนวความคิดที่ถูกต้องจึงจะเป็นประโยชน์อย่างแท้จริงไม่
เช่นนั้นนอกจากจะไม่มีประโยชน์ใดๆ ในการใช้ Framework แล้ว
ยังเป็นดภาระในการแก้ไขซึ่งจะทำให้แก้ไขได้ยากกว่าปกติ
ดังนั้นจึงเริ่มจากการแนะนำแนวคิดในการแบ่งแยกส่วนของ code ออกเป็น 3
ส่วนด้วยกันคือ
MVC Archtecture Pattern
Model (M) เป็นส่วนของ Business Logic และ ส่วนของ
Entity ซึ่งส่วนนี้จะแตกต่างจากแนวคิดแบบ 3-tier ซึ่งจะแยกส่วนล่างสุดเป็น
Data Access Layer (DAL) ซึ่งจะทำหน้าที่ติดต่อกับ Database เท่านั้น แต่
Model จะไม่ได้เป็นเพียงแครการติดต่อกับ Database เท่านั้น
แต่ยังรวมเรื่องของ Business Logic ต่างด้วย เช่น การคำนวน VAT 7%
หรือการคำนวนค่าต่างให้อยู่ในชั้นนี้ และถ้าจะให้ดีชั้นนี้ควรจะทำการสร้าง
Service Layer ขึ้นมา ตรงนี้จะลงรายละเอียดในบทความถัดไป
View (V)
เป็นส่วนของการแสดงผลอันนี้ตรงตัวไม่ต้องคิดมาก เป็นส่วนของ HTML ,CSS และ
JavaScript ในการทำ Web Application แต่ถ้าเป็น Windows Application
ก็จะเป็นพวก forms ต่างๆ ในการใช้งาน PHP Framework บางตัวจะพ่วงเอา
Template Engine มาให้ใช้งานด้วย เช่น Symfony จะมี Twig เป็น Template
Engine ซึ่งข้อดีของการใช้งาน Template Engine
ก็คือจะทำการแยกส่วนของการแสดงผลกับ logic ได้ชัดเจนมากขึ้นคนที่ทำ HTML
CSS และ JavaScript ไม่จำเป็นต้องเขียน PHP ได้
Controller (C)
ส่วนนี้เป็นส่วนสมองของระบบจะทำหน้าที่คอยควบคุมว่าจะดึงข้อมูลจากไหน
(Model ตัวไหน) แล้วก็ไปแสดงผลยังไง (View ตัวไหน)
ส่วนนี้จะเป็นส่วนที่่ผิดกันเป็นประจำสำหรับผู้ที่เริ่มใช้งาน MVC
Framework เพราะเป็นส่วนที่เราไม่เคยแยกส่วนนี้มาก่อน ส่วนของ Controller
จะเป็น work flow หรือขั้นตอนการทำงานต่างๆ (มีเฉพาะ flow
ของการทำงานเท่านั้น) จะไม่มี logic ใดๆในนี้ไม่มีการเขียน HTML
ไม่มีการคำนวนค่าต่างๆ หน่าที่ของ Controller มีเพียงแค่รับค่ามาทำการ
Validate แล้วส่งเข้าไปที่ Model เท่านั้น
ประโยชน์ของการใช้ MVC ก็คือการเพิ่ม maintainability
หรือทำให้ระบบแก้ไขได้ง่ายขึ้นเพราะมันแยกส่วนออกจากกันอย่างชัดเจน
อีกข้อนึงที่สำคัญไม่แพ้กันก็คือเราจะสามารถแยกคนทำงานตามสิ่งที่เค้าถนัด
เช่น คนทำ View ไม่ต้องรู้ว่า database มีโครงสร้างยังไง คนที่ทำผั่ง model
ก็ไม่ต้องมากังวลเรื่องของการแสดงผล แต่ขอให้ตกลงเรื่องของ data
ที่ส่งหากันให้ดีก็พอ
สุดท้ายอาจไม่จำเป็นจะต้อง strict อยู่ในรูปแบบนี้ 100%
เพราะนี่เป็นเพียงทฤษฏี แต่ยังไงก็ตามถ้าจะเขียนผิดไปจากนี้ (anti pattern)
ก็สามารถทำได้แต่ต้องแน่ใจว่าการทำแบบนั้นมีเหตุผลมากพอที่จะทำ
และไม่กระทบกับการแก้ไขในอนาคต
ที่มา : www.irobust.co.th
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
Set MongoDB in the windows path environment
Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...
-
ปกติแล้วเมื่อเราประกาศตัวแปร Type ที่เป็นตัวเลขมา เราก็มักจะมีการเปลี่ยนแปลงค่าของตัวแปรนั้นอยู่บ้าง โดยการคำนวณร่วมกับค่าเดิมที่ตัว...
-
เรียนรู้การใช้ภาษา Lua บทความนี้กล่าวถึง ภาษา Lua ซึ่งเป็นภาษาคอมพิวเตอร์ และเรียนรู้การเขียนโค้ดในภาษานี้ โดยอาศัยโค้ดตัวอย่าง ผู้อ่าน...
ไม่มีความคิดเห็น:
แสดงความคิดเห็น