Matrix · Vertical Slice Architecture
Cắt ngang theo tầng, cắt dọc theo tính năng
Cắt ngang theo tầng và cắt dọc theo tính năng
Ma trận bốn tầng kỹ thuật nhân bốn tính năng Lead: cắt ngang gom mỗi tầng vào một thư mục nên LeadService.cs chứa logic của mọi tính năng, còn cắt dọc gom cả bốn phần của CreateLead vào một file Features/Leads/CreateLead.cs.
Features/Leads/CreateLead.cs
CreateLead
GetLeadById
SearchLeads
ConvertLead
Định tuyến
Controllers/
Endpoint
Endpoint
Endpoint
Endpoint
Hợp đồng
DTOs/
Request · Response
Request · Response
Request · Response
Request · Response
Logic nghiệp vụ
Services/
Handler · Validator
Handler · Validator
Handler · Validator
Handler · Validator
Truy cập dữ liệu
Repositories/
Truy vấn DbContext
Truy vấn DbContext
Truy vấn DbContext
Truy vấn DbContext
CHÚ GIẢI
Cắt dọc: một tính năng nằm trọn trong một file, sửa hay xoá đều ở một chỗ
Cắt ngang: Services/LeadService.cs chứa logic của mọi tính năng, hai người làm hai tính năng vẫn đụng chung một file
© tiennhm