Trong kiến trúc phân tầng, tại sao việc đặt logic nghiệp vụ (Business Logic) trực tiếp vào trong Middleware lại được coi là một Anti-pattern và làm thế nào để phân tách chúng một cách hợp lý?
Việc đặt Business Logic vào Middleware là một Anti-pattern vì Middleware được thiết kế để xử lý các tác vụ xuyên suốt (Cross-cutting concerns) như Logging, Authentication, hoặc Caching. Nếu đưa logic nghiệp vụ vào đây, hệ thống sẽ gặp các vấn đề sau: 1. Khó kiểm thử (Unit Testing) do Middleware phụ thuộc vào Request/Response context. 2. Vi phạm nguyên tắc Single Responsibility Principle (SRP). 3. Khó tái sử dụng logic ở các tầng khác. Cách phân tách hợp lý: Middleware chỉ nên đóng vai trò là 'người gác cổng' hoặc 'bộ lọc'. Logic nghiệp vụ phải được đóng gói vào các Service Layer hoặc Domain Layer. Middleware chỉ nên gọi các Service này thông qua Dependency Injection và không được chứa các quy tắc nghiệp vụ phức tạp.
Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi layering & middleware liên quan cùng chủ đề
- Làm thế nào để thiết kế và triển khai một thành phần hệ thống giải quyết vấn đề Request pipeline routing trong chủ đề Layering & Middleware? Entry
- Trong kiến trúc ứng dụng web, việc quản lý CORS qua Middleware hoạt động như thế nào và tại sao việc cấu hình sai CORS ở tầng này lại tạo ra rủi ro bảo mật nghiêm trọng cho hệ thống? Junior
- Thứ tự thực thi của các Middleware trong một ứng dụng web quan trọng như thế nào? Hãy giải thích cơ chế hoạt động của mô hình Onion hoặc mô hình chuỗi trách nhiệm trong kiến trúc này. Junior
- Làm thế nào để xử lý ngoại lệ toàn cục (Global Exception Handling) thông qua Middleware mà không làm sập ứng dụng? Junior
- Trong kiến trúc phân tầng (Layering Architecture), việc gọi trực tiếp Database từ tầng Controller thay vì thông qua tầng Service gây ra những hệ lụy gì? Junior


