Business layer có quan trọng không?

Em xin chào các bác,

Em muốn hỏi là trong mô hình MVC thì business layer có quan trọng không khi đã có service layer. Đặc biệt là em đang làm web nhỏ chỉ có CRUD chứ không có nghiệp vụ logic gì phức tạp như web phân tích chứng khoán, xử lý ảnh, training model AI, …

Theo em tìm hiểu thì ở cấp độ logic chuẩn thì app MVC được chia thành 4 layer (không tính phần UI)
Controller layer <=> Services layer <=> Business layer <=> DAO.

Nhưng em có thể bỏ Business layer được không? (bỏ thì vẫn chạy nhưng đây là đồ án môn học ạ, cần phải chuẩn lý thuyết)
Controller <=> service layer <=> DAO

services layer sẽ implement các chức năng từ một interface có sẵn, nó sẽ xử lý bussines logic luôn, VD: class service dành cho account thì có hàm checkValidate(username, password), resetPass(username), ....

Em cảm ơn.

1 Like

Em muốn hỏi là trong mô hình MVC thì business layer có quan trọng không khi đã có service layer.

Có chứ cậu? Nếu không, business logic của cậu để ở đâu? :smile:

Theo em tìm hiểu thì ở cấp độ logic chuẩn thì app MVC được chia thành 4 layer (không tính phần UI)
Controller layer <=> Services layer <=> Business layer <=> DAO.

MVC thuần chỉ có 3 layer Model - View - Control thôi cậu.
Mô hình cậu đưa ra là 4 tiers architechture.

Nhưng em có thể bỏ Business layer được không? (bỏ thì vẫn chạy nhưng đây là đồ án môn học ạ, cần phải chuẩn lý thuyết)

Tất nhiên là cậu có thể bỏ rồi. Nếu app của cậu chỉ thuần CRUD, và không có business logic, cậu chỉ cần 3 tier thôi.
Kiến trúc là thứ đưa ra để tổ chức lại các thành phần bên trong, nên cậu không nhất thiết phải máy móc lý thuyết để áp dụng, và hi vọng việc đó khiến cho hệ thống của cậu dễ maintain. Nếu cậu giới thiệu một layer vô dụng vào kiến trúc, ngoài việc nó chẳng giúp gì, cậu cũng tự dưng tốn thêm công để code & test.

services layer sẽ implement các chức năng từ một interface có sẵn, nó sẽ xử lý bussines logic luôn, VD: class service dành cho account thì có hàm checkValidate(username, password), resetPass(username), ....

Nếu logic của cậu không phức tạp để tách Business Layer, cậu có thể gộp Service và Business layer lại (bởi vì YAGNI). Đó là quyết định hợp lý.
Khi ứng dụng lớn lên, cậu hoàn toàn có thể re-architect lại chút, để giới thiệu thêm layer mới.

See also:

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?