VMC Archiโครงสร้างและกรอบงานพร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

สถาปัตยกรรม Model-View-Controller (MVC) เป็นรูปแบบสถาปัตยกรรมที่แบ่งแอปพลิเคชันออกเป็นสามส่วน ได้แก่ Model, View และ Controller โดยแยกตรรกะทางธุรกิจออกจากส่วนการนำเสนอ เพื่อสร้างแอปพลิเคชันบนเว็บและเดสก์ท็อปที่บำรุงรักษาและทดสอบได้ง่าย โดยใช้เฟรมเวิร์กต่างๆ เช่น Spring, Django และ Laravel

  • 🧱 ส่วนประกอบสามส่วน: MVC แบ่งแอปพลิเคชันออกเป็น Model (ข้อมูล), View (การแสดงผล) และ Controller (การโต้ตอบกับผู้ใช้)
  • 🗄️ รุ่น: ทำหน้าที่จัดเก็บข้อมูลและตรรกะทางธุรกิจ ตอบสนองต่อคำขอจากส่วน View และคำสั่งจากส่วน Controller
  • 🖼️ ดู: นำเสนอข้อมูลแก่ผู้ใช้ผ่านองค์ประกอบ UI เช่น ช่องข้อความ เมนูแบบดรอปดาวน์ แผนภูมิ และตาราง
  • 🎮 ควบคุม: ตีความข้อมูลที่ผู้ใช้ป้อน จากนั้นอัปเดตโมเดลและวิวตามนั้น
  • ⚙️ กรอบงานยอดนิยม: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel และ CodeIgniter ใช้รูปแบบ MVC (Multiple Computing Pattern)
  • 🇧🇷 ข้อดีและข้อเสีย: MVC ช่วยเพิ่มความสามารถในการทดสอบและการพัฒนาแบบคู่ขนาน แต่ก็เพิ่มข้อจำกัดบางประการด้วยtracชั้นข้อมูลและความซับซ้อนในการนำทาง

VMC Archiโครงสร้างและกรอบ

กรอบ MVC คืออะไร?

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

ประวัติความเป็นมาของเอ็มวีซี

  • สถาปัตยกรรม MVC ได้รับการหารือครั้งแรกในปี 1979 โดย Trygve Reenskaug
  • โมเดล MVC เปิดตัวครั้งแรกในปี 1987 ในภาษาโปรแกรม Smalltalk
  • MVC ได้รับการยอมรับว่าเป็นแนวคิดทั่วไปเป็นครั้งแรกในบทความปี 1988
  • ในปัจจุบัน รูปแบบ MVC ถูกนำมาใช้กันอย่างแพร่หลายในแอปพลิเคชันเว็บสมัยใหม่

คุณสมบัติของ MVC

  • ทดสอบได้ง่ายและไม่เสียดสี เฟรมเวิร์กที่ทดสอบได้สูง ขยายได้ และเสียบปลั๊กได้
  • การออกแบบสถาปัตยกรรมเว็บแอปพลิเคชันโดยใช้รูปแบบ MVC ช่วยให้คุณควบคุม HTML และส่วนอื่นๆ ได้อย่างเต็มที่ URLs
  • ใช้ประโยชน์จากคุณสมบัติที่มีอยู่ของ ASP.NET, JSP, Django ฯลฯ
  • การแยกตรรกะอย่างชัดเจน: โมเดล มุมมอง ตัวควบคุม การแยกงานแอปพลิเคชัน เช่น ตรรกะทางธุรกิจ ตรรกะ Ul และตรรกะอินพุต
  • URL การกำหนดเส้นทางที่เป็นมิตรต่อ SEO URLส. ทรงพลัง URL-แผนที่ping เพื่อให้เข้าใจง่ายและค้นหาได้สะดวก URLs
  • รองรับการพัฒนาการทดสอบขับเคลื่อน (TDD)

VMC Archiเทคเจอร์

เมื่อทราบถึงประโยชน์แล้ว ต่อไปนี้คือสถาปัตยกรรมโดยละเอียดของเฟรมเวิร์ก MVC:

VMC Archiเทคเจอร์
VMC Archiแผนภาพเทคเจอร์

องค์ประกอบ MVC ที่สำคัญสามประการคือ:

  • โมเดล: ประกอบด้วยข้อมูลทั้งหมดและตรรกะที่เกี่ยวข้อง
  • ดู: นำเสนอข้อมูลให้กับผู้ใช้หรือจัดการการโต้ตอบของผู้ใช้
  • ตัวควบคุม: อินเทอร์เฟซระหว่างส่วนประกอบ Model และ View

เรามาดูส่วนประกอบแต่ละอย่างโดยละเอียดกัน:

รายละเอียด

มุมมองคือส่วนหนึ่งของแอปพลิเคชันที่แสดงข้อมูล

มุมมองถูกสร้างขึ้นจากข้อมูลที่รวบรวมได้จากข้อมูลของแบบจำลอง มุมมองจะร้องขอข้อมูลจากแบบจำลองเพื่อให้สามารถนำเสนอผลลัพธ์แก่ผู้ใช้ได้

มุมมองยังแสดงข้อมูลจากแผนภูมิ ไดอะแกรม และตาราง ตัวอย่างเช่น มุมมองลูกค้าจะรวมส่วนประกอบ UI ทั้งหมด เช่น กล่องข้อความ เมนูแบบดรอปดาวน์ เป็นต้น

ตัวควบคุม

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

คอนโทรลเลอร์จะส่งคำสั่งไปยังโมเดลเพื่ออัปเดตสถานะของโมเดล (เช่น การบันทึกเอกสารเฉพาะ) นอกจากนี้ คอนโทรลเลอร์ยังส่งคำสั่งไปยังวิวที่เกี่ยวข้องเพื่อเปลี่ยนแปลงการแสดงผลของวิว (ตัวอย่างเช่น การเลื่อนเอกสารเฉพาะ)

รุ่น

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

มันตอบสนองต่อคำขอจากส่วนแสดงผล (views) และยังตอบสนองต่อคำสั่งจากส่วนควบคุม (controller) เพื่ออัปเดตตัวเอง นอกจากนี้ยังเป็นระดับต่ำสุดของรูปแบบที่รับผิดชอบในการดูแลรักษาข้อมูล

ตัวอย่าง MVC

มาดูตัวอย่าง Model View Controller จากชีวิตประจำวันกัน:

1 ตัวอย่าง

ตัวอย่าง MVC

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

ในตัวอย่างสถาปัตยกรรม MVC นี้

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

มาดูตัวอย่างโมเดล MVC อีกหนึ่งตัวอย่าง

2 ตัวอย่าง

ตัวอย่าง MVC

กลไกการขับเคลื่อนของรถยนต์เป็นอีกตัวอย่างหนึ่งของรุ่น MVC

  • รถทุกคันประกอบด้วยสามส่วนหลัก
  • การแสดงผล: ส่วนติดต่อผู้ใช้ : (คันเกียร์ แผงควบคุม พวงมาลัย เบรก ฯลฯ)
  • ตัวควบคุม- กลไก (เครื่องยนต์)
  • รุ่น-ห้องเก็บของ (ถังน้ำมันเบนซินหรือดีเซล)

รถวิ่งโดยใช้เครื่องยนต์ใช้เชื้อเพลิงจากการจัดเก็บ แต่จะวิ่งโดยใช้อุปกรณ์อินเทอร์เฟซผู้ใช้ดังกล่าวเท่านั้น

กรอบงานเว็บ MVC ยอดนิยม

นี่คือรายการเฟรมเวิร์ก MVC ยอดนิยมบางส่วน:

ข้อดีของ MVC: ประโยชน์หลัก

ประโยชน์หลักของการใช้สถาปัตยกรรม MVC มีดังนี้:

  • การบำรุงรักษาโค้ดง่าย ๆ ซึ่งง่ายต่อการขยายและขยาย
  • ส่วนประกอบโมเดล MVC สามารถทดสอบแยกจากผู้ใช้ได้
  • การสนับสนุนที่ง่ายขึ้นสำหรับลูกค้าประเภทใหม่
  • การพัฒนาส่วนประกอบต่างๆสามารถดำเนินการควบคู่กันได้
  • ช่วยให้คุณหลีกเลี่ยงความซับซ้อนโดยแบ่งแอปพลิเคชันออกเป็นสามหน่วย ได้แก่ โมเดล มุมมอง และตัวควบคุม
  • ใช้เฉพาะรูปแบบ Front Controller ซึ่งประมวลผลคำขอเว็บแอปพลิเคชันผ่านคอนโทรลเลอร์ตัวเดียว
  • เสนอการสนับสนุนที่ดีที่สุดสำหรับ การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
  • มันทำงานได้ดีกับเว็บแอปที่ได้รับการสนับสนุนจากทีมนักออกแบบและนักพัฒนาเว็บไซต์ขนาดใหญ่
  • ช่วยให้เกิดการแยกส่วนงานที่ชัดเจน (SoC)
  • เป็นมิตรกับการปรับแต่งเว็บไซต์ให้ติดอันดับบนเครื่องมือการค้นหา (SEO)
  • คลาสและออบเจ็กต์ทั้งหมดมีความเป็นอิสระจากกัน ดังนั้นคุณจึงสามารถทดสอบแยกกันได้
  • รูปแบบการออกแบบ MVC ช่วยให้การจัดกลุ่มเชิงตรรกะเป็นไปได้ping ของการกระทำที่เกี่ยวข้องบนตัวควบคุมพร้อมกัน

ข้อเสียของการใช้ MVC

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

3 ชั้น Archiเทคเจอร์กับ MVC Archiเทคเจอร์

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

คำถามที่พบบ่อย

MVC เป็นรูปแบบสถาปัตยกรรม ไม่ใช่รูปแบบการออกแบบธรรมดา มันจัดระเบียบแอปพลิเคชันทั้งหมดออกเป็นเลเยอร์ Model, View และ Controller โดยแยกส่วนข้อมูล การนำเสนอ และตรรกะการโต้ตอบกับผู้ใช้ ออกจากกัน

MVC ใช้ Controller ในการจัดการอินพุตและอัปเดต Model และ View ในขณะที่ MVVM ใช้ ViewModel ร่วมกับการผูกข้อมูล (Data Binding) MVVM ช่วยลดโค้ดซ้ำซ้อนและเป็นที่นิยมในเฟรมเวิร์ก UI สมัยใหม่

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

โดยทั่วไปแล้ว ฟีเจอร์ AI จะถูกเพิ่มเข้าไปในเลเยอร์ Model หรือ Service ของแอปพลิเคชัน MVC Controller จะส่งข้อมูลที่ผู้ใช้ป้อนเข้าไปไปยังโมเดล AI และ View จะแสดงผลการคาดการณ์ คำแนะนำ หรือเนื้อหาที่สร้างขึ้นให้กับผู้ใช้

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

สรุปโพสต์นี้ด้วย: