Đồ án xây dựng website thương mại điện tử ứng dụng mô hình MVC tại Đại học Bách Khoa Hà Nội

Đồ án i xây dựng website thương mại điện tử MVC. Tìm hiểu quy trình, kiến trúc MVC và ứng dụng thực tế để xây dựng website bán hàng chuyên nghiệp.

Người đăng

Ẩn danh

Thể loại

Đồ án I

2022

41
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn xây dựng website TMĐT ứng dụng mô hình MVC

Việc xây dựng một website thương mại điện tử không chỉ là xu hướng mà còn là yêu cầu tất yếu trong bối cảnh kinh doanh hiện đại. Sự thay đổi trong thói quen mua sắm, đặc biệt sau đại dịch, đã thúc đẩy các doanh nghiệp chuyển đổi số mạnh mẽ. Một trong những nền tảng kỹ thuật vững chắc nhất cho việc này là kiến trúc MVC (Model-View-Controller). Mô hình này cung cấp một cấu trúc rõ ràng, giúp phân tách logic nghiệp vụ, dữ liệu và giao diện người dùng, từ đó tạo ra các ứng dụng dễ bảo trì, mở rộng và phát triển theo nhóm. Đồ án này tập trung vào việc áp dụng mô hình MVC để xây dựng một website bán hàng hoàn chỉnh, giải quyết các bài toán thực tiễn từ quản lý sản phẩm, giỏ hàng đến xử lý đơn hàng. Bằng cách kết hợp với các công nghệ hiện đại như Java Spring Boot, hệ thống không chỉ đảm bảo hiệu năng mà còn tối ưu hóa quy trình phát triển, giúp đưa sản phẩm ra thị trường nhanh chóng. Việc hiểu rõ cách xây dựng website thương mại điện tử ứng dụng mô hình mvc là kỹ năng cốt lõi, mở ra cơ hội phát triển các hệ thống lớn và phức tạp hơn trong tương lai.

1.1. Bối cảnh và sự cần thiết của website thương mại điện tử

Trong thập kỷ qua, công nghệ đã thay đổi sâu sắc lĩnh vực thương mại. Đặc biệt, sau đại dịch COVID-19, thói quen của người tiêu dùng đã chuyển dịch mạnh mẽ từ mua sắm trực tiếp sang trực tuyến. Khách hàng ngày càng ưa chuộng sự tiện lợi của việc lựa chọn, đặt hàng và nhận hàng tại nhà. Sự thay đổi này đặt ra yêu cầu cấp thiết cho các cửa hàng truyền thống phải xây dựng gian hàng online. Một website thương mại điện tử không chỉ giúp doanh nghiệp cắt giảm chi phí mặt bằng, bến bãi mà còn là kênh tiếp cận hiệu quả đến lượng lớn khách hàng tiềm năng, không bị giới hạn bởi vị trí địa lý. Việc số hóa hoạt động kinh doanh giúp tối ưu hóa quy trình quản lý đơn hàng, theo dõi doanh thu và chăm sóc khách hàng. Xây dựng một hệ thống bán hàng trực tuyến trở thành một chiến lược sống còn, giúp doanh nghiệp tăng doanh thu, mở rộng quy mô và nâng cao năng lực cạnh tranh trong thị trường số.

1.2. Tổng quan về kiến trúc MVC trong phát triển phần mềm

Kiến trúc MVC là một mẫu thiết kế phần mềm phổ biến, viết tắt của Model - View - Controller. Được đề xuất bởi Trygve Reenskaug vào cuối những năm 1970, MVC ra đời với mục tiêu cấu trúc hóa các dự án một cách rõ ràng, mạch lạc, thay vì tạo ra một mớ hỗn độn khó quản lý. Mặc dù ban đầu được thiết kế cho các ứng dụng desktop, MVC đã chứng tỏ sự hiệu quả vượt trội trong phát triển ứng dụng web, nơi có lượng người dùng lớn và dữ liệu trao đổi khổng lồ. Cấu trúc này phân tách ứng dụng thành ba thành phần chính có liên kết với nhau: Model (quản lý dữ liệu và logic nghiệp vụ), View (hiển thị giao diện người dùng), và Controller (xử lý yêu cầu từ người dùng). Sự phân tách này giúp các nhóm phát triển có thể làm việc song song, dễ dàng sửa đổi và bảo trì hệ thống. Nhiều framework hiện đại như ASP.NET Core, Django, và Java Spring đều sử dụng MVC làm nền tảng.

II. Thách thức khi xây dựng website TMĐT với mô hình MVC

Xây dựng một website thương mại điện tử thành công đòi hỏi phải vượt qua nhiều thách thức kỹ thuật và nghiệp vụ. Việc áp dụng mô hình MVC mang lại nhiều lợi thế về cấu trúc, nhưng cũng đặt ra những bài toán cần giải quyết triệt để. Đầu tiên là việc phân tích và định hình chính xác các yêu cầu của hệ thống. Một hệ thống TMĐT cần phục vụ nhiều đối tượng người dùng khác nhau như khách tham quan, khách hàng đã đăng ký, và nhân viên quản trị, mỗi đối tượng lại có những luồng chức năng riêng biệt. Thách thức thứ hai nằm ở việc thiết kế một kiến trúc có khả năng mở rộng. Thị trường TMĐT thay đổi liên tục, do đó hệ thống phải đủ linh hoạt để thêm mới tính năng, tích hợp các dịch vụ bên thứ ba và chịu được tải trọng ngày càng tăng. Cuối cùng, việc đảm bảo tính nhất quán dữ liệu và bảo mật hệ thống là tối quan trọng, đặc biệt là các thông tin nhạy cảm của khách hàng như thông tin cá nhân và giao dịch thanh toán. Vượt qua những rào cản này là chìa khóa để xây dựng website thương mại điện tử ứng dụng mô hình mvc một cách bền vững và hiệu quả.

2.1. Phân tích các yêu cầu chức năng và phi chức năng cốt lõi

Giai đoạn phân tích hệ thống là nền tảng quyết định sự thành công của dự án. Đối với một website TMĐT, các yêu cầu chức năng phải được xác định rõ ràng. Về phía khách hàng, hệ thống cần có các chức năng cơ bản như đăng ký/đăng nhập, tìm kiếm sản phẩm, xem chi tiết, thêm vào giỏ hàng, và thực hiện thanh toán. Về phía nhân viên quản trị, các chức năng bao gồm quản lý tài khoản, quản lý danh mục và sản phẩm. Bên cạnh đó, các yêu cầu phi chức năng cũng đóng vai trò quan trọng không kém. Giao diện phải trực quan, dễ sử dụng ngay cả với người không rành công nghệ. Hiệu năng hệ thống phải ổn định, tốc độ xử lý nhanh để mang lại trải nghiệm tốt nhất cho người dùng. Đặc biệt, thông tin nhạy cảm của khách hàng cần được mã hóa và hệ thống phải đảm bảo an toàn tối đa khi vận hành thực tế.

2.2. Đảm bảo tính nhất quán và khả năng mở rộng của hệ thống

Một trong những nhược điểm của mô hình MVC là sự phân tán khi ứng dụng được chia thành nhiều thành phần. Điều này có thể gây khó khăn trong việc duy trì tính nhất quán, đặc biệt khi nhiều khung hiển thị hoạt động đồng thời. Người phát triển cần thiết lập các quy tắc giao tiếp chặt chẽ giữa Model, View, và Controller để đảm bảo dữ liệu luôn được đồng bộ và chính xác. Hơn nữa, khả năng mở rộng là yếu tố sống còn. Hệ thống phải được thiết kế theo dạng module, cho phép dễ dàng thêm hoặc sửa đổi chức năng mà không ảnh hưởng đến các phần còn lại. Ví dụ, việc thay đổi logic xử lý trong Model không được làm gián đoạn thành phần hiển thị trong View. Việc lựa chọn một framework mạnh mẽ như Java Spring Boot với cơ chế IoC (Inversion of Control) giúp giảm sự phụ thuộc trực tiếp giữa các module, từ đó tăng cường tính linh hoạt và khả năng mở rộng cho toàn bộ hệ thống.

III. Giải pháp cốt lõi Áp dụng kiến trúc MVC hiệu quả

Để giải quyết các thách thức trong việc xây dựng website thương mại điện tử, việc áp dụng đúng đắn kiến trúc MVC là giải pháp nền tảng. Mô hình này không chỉ là một lý thuyết mà là một phương pháp luận thực tiễn để tổ chức mã nguồn một cách khoa học. Bằng cách phân tách rõ ràng ba thành phần, MVC cho phép các nhà phát triển tập trung vào chuyên môn của mình: lập trình viên backend có thể làm việc với ModelController, trong khi lập trình viên frontend có thể tập trung vào View. Sự độc lập này giúp đẩy nhanh quá trình phát triển và giảm thiểu xung đột. Luồng dữ liệu trong MVC được điều hướng một cách có trật tự, bắt đầu từ yêu cầu của người dùng, đi qua Controller để xử lý, tương tác với Model để truy xuất hoặc cập nhật dữ liệu, và cuối cùng trả kết quả về View để hiển thị. Hiểu rõ và vận dụng thành thạo luồng xử lý này là chìa khóa để khai thác tối đa sức mạnh của mô hình MVC, tạo ra một hệ thống TMĐT vừa mạnh mẽ về chức năng, vừa dễ dàng để bảo trì và nâng cấp trong tương lai.

3.1. Phân tách vai trò của Model View và Controller trong TMĐT

Trong một website TMĐT, mỗi thành phần của kiến trúc MVC đảm nhận một vai trò riêng biệt. Model là trung tâm, đại diện cho cấu trúc dữ liệu và logic nghiệp vụ. Nó chứa các đối tượng như Product, Order, Customer và các quy tắc xử lý liên quan đến chúng, ví dụ như tính toán tổng tiền giỏ hàng hay kiểm tra tồn kho. View chịu trách nhiệm hiển thị thông tin cho người dùng. Nó là tập hợp các tệp HTML, CSS tạo nên giao diện của trang sản phẩm, giỏ hàng, trang thanh toán. View không chứa logic nghiệp vụ, nó chỉ nhận dữ liệu từ Controller và trình bày chúng. Cuối cùng, Controller đóng vai trò như một người điều phối. Nó tiếp nhận các yêu cầu từ người dùng (ví dụ: click vào nút "Thêm vào giỏ"), sau đó yêu cầu Model cập nhật dữ liệu tương ứng và chọn View phù hợp để trả về kết quả cho người dùng. Sự phân tách rạch ròi này là cốt lõi của mô hình MVC.

3.2. Sơ đồ luồng xử lý dữ liệu điển hình trong mô hình MVC

Quy trình hoạt động của mô hình MVC tuân theo một luồng xử lý dữ liệu rõ ràng. Mọi thứ bắt đầu khi người dùng thực hiện một hành động trên giao diện (View), tạo ra một yêu cầu (request). Yêu cầu này được gửi đến Controller. Controller phân tích yêu cầu, xác định hành động cần thực hiện và gọi phương thức tương ứng trong Model. Model tiến hành xử lý logic nghiệp vụ, có thể là truy vấn cơ sở dữ liệu, cập nhật dữ liệu, hoặc thực hiện các phép tính. Sau khi xử lý xong, Model trả kết quả về cho Controller. Controller nhận dữ liệu từ Model, sau đó lựa chọn một View thích hợp và truyền dữ liệu này sang cho View. Cuối cùng, View sử dụng dữ liệu nhận được để kết xuất (render) ra giao diện HTML hoàn chỉnh và gửi về trình duyệt của người dùng. Luồng đi một chiều và có trật tự này giúp việc gỡ lỗi và quản lý ứng dụng trở nên dễ dàng hơn rất nhiều.

IV. Cách chọn công nghệ Java Spring Boot cho website TMĐT

Việc lựa chọn công nghệ phù hợp là một yếu tố quyết định đến hiệu quả của dự án xây dựng website thương mại điện tử ứng dụng mô hình mvc. Trong đồ án này, Java Spring Boot được chọn làm framework chính nhờ những ưu điểm vượt trội của nó. Spring Boot là một phần mở rộng của Spring Framework, được thiết kế để đơn giản hóa tối đa quá trình cài đặt và cấu hình một ứng dụng Spring. Nó cung cấp một giải pháp "tự chạy" độc lập bằng cách nhúng sẵn các máy chủ như Tomcat, giúp lập trình viên có thể khởi chạy ứng dụng nhanh chóng mà không cần triển khai các tệp WAR phức tạp. Hơn nữa, Spring Boot thúc đẩy nguyên tắc "convention over configuration" (quy ước hơn cấu hình), tự động cấu hình nhiều thành phần, giúp giảm thiểu mã nguồn boilerplate. Kết hợp với kỹ thuật ORM (Object Relational Mapping) và các ngôn ngữ frontend cơ bản như HTML/CSS, bộ công nghệ này tạo thành một nền tảng vững chắc để xây dựng các chức năng từ cơ bản đến phức tạp cho một hệ thống TMĐT.

4.1. Sức mạnh của Java Spring Boot trong phát triển ứng dụng MVC

Lý do chính để lựa chọn Java Spring Boot là khả năng đơn giản hóa và tăng tốc quá trình phát triển. Spring Boot kế thừa sức mạnh của hệ sinh thái Spring, đặc biệt là cơ chế IoC (Inversion of Control)Dependency Injection (DI). Các cơ chế này giúp quản lý các thành phần (beans) của ứng dụng một cách linh hoạt, giảm sự phụ thuộc cứng giữa các lớp, từ đó làm cho mã nguồn dễ kiểm thử và bảo trì hơn. Đối với mô hình MVC, Spring Boot cung cấp các chú thích (annotation) mạnh mẽ như @Controller để định nghĩa các Controller, giúp việc điều hướng yêu cầu trở nên vô cùng dễ dàng. Khả năng tự động cấu hình và cung cấp các gói khởi tạo (starters) giúp tích hợp các thư viện như Spring Data JPA (cho ORM) hay Thymeleaf (cho View) một cách liền mạch, giúp lập trình viên tập trung hoàn toàn vào việc xây dựng logic nghiệp vụ.

4.2. Kỹ thuật ORM Object Relational Mapping và vai trò trong Model

ORM (Object Relational Mapping) là một kỹ thuật lập trình cho phép ánh xạ các bảng trong cơ sở dữ liệu quan hệ thành các đối tượng trong ngôn ngữ lập trình hướng đối tượng như Java. Trong bối cảnh mô hình MVC, ORM đóng vai trò cực kỳ quan trọng trong việc xây dựng thành phần Model. Thay vì phải viết các câu lệnh SQL phức tạp và xử lý kết quả trả về một cách thủ công, lập trình viên có thể tương tác trực tiếp với các đối tượng Java. Ví dụ, để lấy thông tin một sản phẩm, chỉ cần gọi một phương thức như productRepository.findById(id). Kỹ thuật này giúp loại bỏ phần lớn sự phức tạp trong việc truy cập dữ liệu, làm cho mã nguồn của tầng Model trở nên sạch sẽ, dễ đọc và ít bị lỗi hơn. Các framework ORM phổ biến như Hibernate (được tích hợp sẵn trong Spring Data JPA) tự động xử lý việc tạo kết nối, thực thi truy vấn và ánh xạ dữ liệu.

V. Quy trình thiết kế hệ thống website TMĐT chi tiết

Sau khi đã có nền tảng lý thuyết về mô hình MVC và lựa chọn công nghệ, bước tiếp theo là tiến hành thiết kế hệ thống chi tiết. Quá trình này bao gồm hai phần chính: thiết kế cơ sở dữ liệu và thiết kế giao diện người dùng. Đây là giai đoạn hiện thực hóa các yêu cầu đã phân tích, chuyển đổi chúng thành một cấu trúc cụ thể cho hệ thống. Thiết kế cơ sở dữ liệu là xương sống của ứng dụng, quyết định cách dữ liệu được lưu trữ, tổ chức và truy xuất. Một thiết kế tốt sẽ đảm bảo tính toàn vẹn dữ liệu và hiệu suất truy vấn cao. Song song đó, thiết kế giao diện là bộ mặt của website, yếu tố trực tiếp ảnh hưởng đến trải nghiệm người dùng. Một giao diện trực quan, dễ sử dụng sẽ giúp giữ chân khách hàng và thúc đẩy hành vi mua sắm. Việc thực hiện cẩn thận hai giai đoạn này là tiền đề vững chắc cho việc lập trình và hoàn thiện dự án xây dựng website thương mại điện tử.

5.1. Thiết kế cơ sở dữ liệu với sơ đồ thực thể liên kết ERD

Thiết kế cơ sở dữ liệu bắt đầu bằng việc xây dựng một sơ đồ thực thể liên kết (ERD). Sơ đồ này mô tả các thực thể chính trong hệ thống và mối quan hệ giữa chúng. Trong một website TMĐT, các thực thể quan trọng bao gồm Account (Tài khoản), Customer (Khách hàng), Product (Sản phẩm), Category (Danh mục), Order (Đơn hàng), và OrderDetail (Chi tiết đơn hàng). Ví dụ, một Customer có thể có nhiều Order, và một Order có thể bao gồm nhiều Product thông qua bảng OrderDetail. Từ sơ đồ ERD, các bảng dữ liệu cụ thể sẽ được thiết kế với các cột thuộc tính, kiểu dữ liệu và các ràng buộc toàn vẹn. Một thiết kế CSDL chuẩn hóa sẽ giúp tránh dư thừa dữ liệu và đảm bảo tính nhất quán khi hệ thống vận hành. Đây là nền tảng vững chắc cho thành phần Model trong kiến trúc MVC.

5.2. Thiết kế giao diện người dùng cho các trang chức năng chính

Thiết kế giao diện người dùng (UI) là quá trình xây dựng bố cục và các yếu tố tương tác cho website. Quá trình này tập trung vào việc tạo ra một trải nghiệm liền mạch và thân thiện. Các trang chức năng chính cần được thiết kế cẩn thận, bao gồm: Trang chủ khách hàng (hiển thị sản phẩm nổi bật, banner quảng cáo), Trang cửa hàng (liệt kê sản phẩm với bộ lọc và tìm kiếm), Trang giỏ hàng (cho phép xem và chỉnh sửa sản phẩm đã chọn), và Trang thanh toán (thu thập thông tin giao hàng và phương thức thanh toán). Ngoài ra, các trang quản trị dành cho nhân viên cũng cần được thiết kế rõ ràng để thực hiện các tác vụ như quản lý tài khoản, danh mục và sản phẩm. Việc sử dụng HTML và CSS để xây dựng các giao diện này tạo nên thành phần View trong mô hình MVC, đảm bảo việc hiển thị thông tin một cách trực quan và hiệu quả.

VI. Kết luận Hướng phát triển cho đồ án website TMĐT

Đồ án xây dựng website thương mại điện tử ứng dụng mô hình mvc đã đạt được những mục tiêu cơ bản đề ra. Hệ thống đã hiện thực hóa được các chức năng cốt lõi của một trang bán hàng trực tuyến, từ việc hiển thị sản phẩm cho đến quy trình thanh toán. Quan trọng hơn, quá trình thực hiện đồ án đã giúp củng cố kiến thức nền tảng về kiến trúc MVC và kỹ năng sử dụng các công nghệ hiện đại như Java Spring Boot. Tuy nhiên, bên cạnh những kết quả đạt được, dự án vẫn còn những hạn chế nhất định về mặt hiệu năng và khả năng tái sử dụng giao diện. Đây là những điểm quan trọng cần được cải thiện. Việc nhìn nhận khách quan những hạn chế này sẽ mở ra các hướng phát triển tiềm năng trong tương lai, giúp nâng cấp hệ thống trở nên mạnh mẽ, linh hoạt và chuyên nghiệp hơn, đáp ứng tốt hơn các yêu cầu ngày càng cao của thị trường thương mại điện tử.

6.1. Đánh giá kết quả đạt được và các hạn chế còn tồn tại

Kết quả lớn nhất của đồ án là việc xây dựng thành công một website bán hàng trực tuyến với đầy đủ các chức năng cơ bản, dựa trên nền tảng mô hình MVCJava Spring Boot. Người thực hiện đã nắm vững cấu trúc của một ứng dụng web, cách thức tổ chức và điều hướng dữ liệu. Tuy nhiên, một số hạn chế vẫn còn tồn tại. Thứ nhất, hệ thống chưa được tối ưu hoàn hảo về mặt hiệu năng, còn có thể chậm ở một số tác vụ. Thứ hai, việc sử dụng thuần túy HTML và CSS cho phần View khiến giao diện còn khá thô sơ và thiếu khả năng tái sử dụng, gây lãng phí tài nguyên mỗi khi tải trang. Cuối cùng, kiến trúc của Spring Boot khá phức tạp và có thể hơi thừa thãi đối với một dự án quy mô nhỏ, gây lãng phí tài nguyên hệ thống.

6.2. Các hướng đi tiềm năng để nâng cấp và mở rộng hệ thống

Để khắc phục các hạn chế hiện tại, có một số hướng phát triển tiềm năng cho hệ thống. Hướng đi thứ nhất là chuyển đổi kiến trúc sang RESTful API. Cách tiếp cận này sẽ khai thác tối đa thế mạnh của Spring Boot trong việc xây dựng các microservices. Backend sẽ chỉ cung cấp các API để xử lý dữ liệu và logic. Hướng đi thứ hai, song song với việc xây dựng API, là áp dụng một framework JavaScript hiện đại như ReactJS hoặc VueJS cho phần frontend. Việc này sẽ tạo ra một Single Page Application (SPA) với giao diện người dùng linh hoạt, có khả năng tái sử dụng cao và mang lại trải nghiệm mượt mà hơn cho người dùng. Bằng cách tách biệt hoàn toàn backend và frontend, hệ thống sẽ trở nên dễ bảo trì, mở rộng và phát triển độc lập, phù hợp với xu hướng phát triển phần mềm hiện đại.

15/09/2025

Trích đoạn nội dung tài liệu

Chương 1 Tổng quan đề tài 1.1 Giới thiệu đề tài TuanAnh ECommerce Shop là một cửa hàng thời trang được đưa vào hoạt động vào đầu năm 2022, sau khi dịch COVID19 bùng phát, tuy đại dịch đã cơ bản được kiểm soát, nhưng thói quen mua hàng của đại đa số khách hàng ở trong khu vực cửa hàng đã bị thay đổi lớn. Trước đại dịch, khách hàng ưu tiên đến xem đồ, thử đồ mua và thanh toán tại cửa hàng, tuy nhiên sau hai năm đại dịch, khách hàng đã quen với việc mua hàng trực tuyến, chọn lựa mẫu mã, đặt hàng và chờ giao hàng đến tận nhà. Với sự thay đổi thói quen lớn của khách hàng như vậy cửa hàng quyết định mở thêm một gian hàng online, vừa cắt giảm chi phí thuê mặt bằng cho cửa hàng, vừa có thể tiếp cận đến phần lớn bộ phận khách hàng có thói quen sử dụng các dịch vụ mua hàng trực tuyến. Ngoài ra chủ cửa hàng cũng mong muốn sử dụng chính phần mềm này cho phép nhân viên bán hàng tại gian hàng của cửa hàng tạo đơn hàng và xử lý đơn hàng tại những cửa hàng truyền thống, cũng như quản lý lương của nhân sự trong cửa hàng và lập báo cáo về các thông tin như doanh thu, hàng hoá, kho.

Mặc dù hoạt động thương mại trực tuyến có nhiều sự khác biệt với hoạt động thương mại trực tiếp, tuy nhiên những phần chính của hoạt động thương mại vẫn không thay đổi, đó là hoạt động mua hàng và thanh toán. Việc xây dựng hệ thống bán hàng trực tuyến không chß giúp tăng doanh thu cho cửa hàng, còn làm cho cửa hàng tiếp cận được với nhiều khách hàng mới, không chß trong khu vực bị giới hạn bởi địa lý, mà còn có thể tiếp cận được các khách hàng ở xa không giới hạn khoảng cách giúp mở rộng quy mô bán hàng.2 Mục đích nghiên cứu Học tập các kỹ năng lập trình ứng dụng web theo mô hình MVC, đồng thời nắm rõ được các nghiệp vụ bán hàng qua ứng dụng website.3 Mục tiêu đề tài Hướng đến một mô hình ứng dụng website đơn giản, dễ sử dụng chú trọng vào các kiến trúc và tiện ích cơ bản mà website mang lại cho người sử dụng. Trang 3 Chương 2 Cơ sở lý thuyết 2.1 Kiến trúc Website MVC 2.1 Tổng quan MVC là viết tắt ba chữ cái đầu của "Model - View - Control ler" ctạm dịch là "Đối tượng - Giao diện - Điều khiển", mô tả một mẫu kiến trúc hệ thống rất phổ biến và có lịch sử phát triển lâu đời trong lĩnh vực phần mềm. Trygve Reenskaug (1930 - 92 tuổi), một nhà khoa học máy tính, giáo sư danh dự của Đại học Oslo là người tạo ra và đề xuất kiến trúc MVC trong khi làm việc tại Trung tâm nghiên cứu Palo Alto trong một dự án tên là Smalltalk - 79 vào cuối thập niên 70 của thế kÿ trước.

Khi tạo ra kiến trúc này, Trygve Reenskaug và các cộng sự muốn có một thiết kế có thể cấu trúc bất kỳ dự án nào một cách rõ ràng và mạch lạc thay vì một mớ hỗn độn dữ liệu có kích thước lớn. Thiết kế đầu tiên của ông có 4 thành phần chính: Model - View - Thing - Editor, nhưng sau khi thảo luận với các lập trình viên khác, ông và các cộng sự trong dự án Smalltalk quyết định sử dụng thiết kế với 3 thành phần: Model - View - Controller như ta thường thấy ngày nay. Mẫu kiến trúc này được áp dụng rất rộng rãi trong việc xây dựng các ứng dụng cho Website (Website Application), Mobile (Mobile Application) và các ứng dụng chạy trên các hệ điều hành khác như Window hay MacOS. Trên thực tế thì nguyên mẫu kiến trúc MVC được xây dựng và phát triển cho các ứng dụng với giao diện tương tự như ứng dụng Desktop chứ không phải được phát triển dành cho các ứng dụng Website, tuy nhiên việc phân chia rõ ràng các thành phần (components) cũng như rạch ròi trong việc điều hướng dữ liệu khiến cho việc ứng dụng thiết kế này trong các ứng dụng Website là Trang 4 phổ biến hơn cả.

Đặc thù của ứng dụng Website là có nhiều người dùng, lượng dữ liệu trao đổi là khổng lồ nên lợi thế về sự rõ ràng trong vận hành và dễ dàng trong quản lý của kiến trúc này với các ứng dụng Website là không phải bàn cãi. Hiện nay có rất nhiều Web framework sử dụng mẫu thiết kế này để thực thi các cấu hình, có thể kể đến C# với ASP.NET Core, Python với Django, Ruby với Rails hay như trong báo cáo này là Java với Spring/Spring Boot. MVC được xây dựng rất thành công và phổ biến, sau này những kiến trúc hữu ích khác cũng ra đời trên nền tảng thiết kế MVC như Hierachical Model - View - Controller (HMVC), Model - View - Adapter (MVA), Model - View - Viewmodel (MVVM). Ứng dụng Website đầu tiên với mô hình MVC được phát triển và giới thiệu bởi NeXT’s WebObject vào năm 1996 dưới ngôn ngữ lập trình Objective-C, vì được vay mượn rất nhiều cấu phần từ dự án SmallTalk nên kiến trúc MVC được thể hiện vô cùng rạch ròi và rõ nét trong ứng dụng tiên phong này.2 Các thành phần trong kiến trúc MVC Model: Có thể coi đây là thành phần trung tâm trong kiến trúc.

Model mô hình hóa các đối tượng trong hệ thống, đại diện cho cấu trúc dữ liệu của ứng dụng và hoàn toàn tách biệt với giao diện người dùng. Model là thành phần dùng để trực tiếp quản lý dữ liệu, logic cũng như các luật trong việc vận hành ứng dụng hay truy vấn dữ liệu. View: Tất cả các sự hiển thị thông tin đến người dùng (thường được gọi là giao diện người sử dụng - User Interface, UI) như các hình ảnh, bảng biểu, đồ thị, biểu đồ. Nói chung, thành phần này là nơi mà người sử dụng có thể trực tiếp thao tác với hệ thống, đưa ra yêu cầu với hệ thống và nhận được kết quả.

Cấu phần này xử lý logic hiển thị và vẽ lên các giao diện người dùng. Controller: Ví Model như phòng làm việc và View là tiếp tân của một công ty thì Controller đóng vai một người quản lý. Người quản lý này tiếp nhận các yêu cầu (request) từ cả hai phía của hệ thống, xử lý yêu cầu và phân phối đến đúng địa chß, sau đó tiếp nhận, xử lý và trả về kết quả nhận được. Công việc này đôi khi được cho là không cần thiết vì các yêu cầu có thể được xử lý dưới dạng request response như trong kiến trúc client server.

Tuy nhiên đấy là với một hệ thống đơn giản, nếu hệ thống có sự phức tạp nằm ở mức tương đối thì việc có một bộ phận hoạt động như người quản lý, chia bài sẽ là hoàn toàn cần thiết cho các tác vụ quản trị cũng như bảo mật hệ thống.3 Cách MVC hoạt động Luồng xử lý dữ liệu với kiến trúc MVC: 1. Đầu tiên ta có một yêu cầu từ người sử dụng hệ thống, yêu cầu này có thể được gửi đến Controller qua bất cứ cách nào. Có thể là một request url từ người dùng, một form từ chính View hoặc một sự kiện được Controller nhận biết và nắm bắt. Tiếp theo sau khi nhận được yêu cầu Controller sẽ xử lý yêu cầu đó dựa trên việc nhận dạng và sàng lọc.

Controller sẽ giao tiếp với Model bằng một phương thức riêng, phương thức này được định sẵn và chß có Controller biết. Controller sẽ đưa request của người dùng về dạng thông điệp này và gửi cho Model xử lý. Sau khi nhận được thông điệp của Controller thì model tiến hành xử lý, có thể là tìm kiếm thông tin dữ liệu, thêm dữ liệu, cập nhật dữ liệu. sau khi xử lý thì model tiến hành hồi đáp với controller.

Thông điệp được hồi đáp mang thông tin dữ liệu hoặc chß đơn giản là một thông báo lỗi. Sau khi nhận được thông điệp hồi đáp của Model, Controller cũng sẽ tiến hành trả lời request của người dùng bằng cách gửi dữ liệu hiển thị tới View. Lúc này thì View tiến hành hiển thị những thông tin response cho người dùng hệ thống. Hình dưới đây là mô hình của quá trình trên.1: Quá trình xử lý của kiến trúc MVC 2.4 Ưu điểm của mô hình MVC Mô hình MVC phù hợp với những dự án có đội ngũ phát triển làm việc độc lập với nhau, với các thành tách biệt và hoạt động riêng lẻ, giao tiếp với nhau qua các thông điệp với chuẩn nhất định, đội ngũ phát triển có thể hoạt động linh hoạt và hiệu quả.

Nói chung mô hình MVC hiệu quả nhờ những ưu điểm nổi bật sau: • Quá trình phát triển được hỗ trợ khiến công việc được hoàn thành nhanh và hiệu quả: Với việc từng thành phần hoạt động độc lập, các nhóm lập trình viên có thể chia nhỏ công việc, hoàn thành từng phần nhỏ của hệ thống với chất lượng chuyên môn cao, làm việc song song và hiệu quả. MVC giúp các đội ngũ phát triển tiết kiệm được rất nhiều thời gian. • Hỗ trợ các kỹ thuật bất đồng bộ, xử lý nhiều khung hiển thị cho một đối tượng: Với việc hoạt động trên nhiều ngôn ngữ lập trình khác nhau, hỗ trợ nhiều nền tảng và nhiều kiểu dữ liệu, MVC giúp ta có thể tạo nhiều khung hiển thị cho một đối tượng trong hệ thống, cũng như việc ta có thể dùng MVC để hiển thị nhiều loại dữ liệu. • Dễ dàng thay đổi, chßnh sửa: Với việc các thành phần hoạt động tách biệt Trang 7 với nhau, ta có thể dễ dàng sửa đổi một thành phần ví dụ việc thay đổi View thì sẽ không ảnh hưởng gì đến Model hay việc thay đổi logic xử lý cũng không ảnh hưởng gì đến thành phần hiển thị.

• Giữ nguyên hình thái của dữ liệu: Mô hình MVC chß thực hiện truyền chứ không định dạng lại những dữ liệu trong hệ thống (nếu lập trình viên không chủ đích) nên việc tái sử dụng hay khai thác dữ liệu ban đầu sẽ trở nên dễ dàng và hiệu quả.5 Nhược điểm của mô hình MVC Mặc dù được coi như một bước tiến lớn của việc xây dựng hệ thống, tuy nhiên MVC không phải toàn năng. Bất cứ thiết kế nào cũng tồn tại hạn chế, với MVC thì các hạn chế đó là: • Còn nhiều khó khăn trong quá trình điều hướng dữ liệu và mã nguồn: Ưu điểm, cũng chính là nhược điểm của mô hình này, việc có các cấu phần tách biệt yêu cầu người phát triển hệ thống thích ứng và hoạt động trên hệ thống nhiều lớp và tách biệt với nhau, việc này sẽ dẫn đến một số khó khăn như khó định hướng dữ liệu và cài đặt mã nguồn cho người mới làm quen.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ