# Clean Architecture (.NET) > Kiến trúc phân lớp, CQRS, MediatR, repository pattern, tách biệt mối quan tâm, khả năng kiểm thử - 20 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: .NET](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van.md) ## 1. Nguyên tắc của Clean Architecture là gì? **Câu trả lời** Clean Architecture tổ chức mã thành các lớp đồng tâm, trong đó các phụ thuộc chỉ hướng vào trong (về phía Domain). Lớp Domain (thực thể, quy tắc nghiệp vụ) không có phụ thuộc hạ tầng. Các lớp bên ngoài (UI, Database, API) phụ thuộc vào các abstraction của Domain thông qua Dependency Inversion. Điều này đảm bảo khả năng kiểm thử, sự độc lập với framework và khả năng bảo trì của mã. ## 2. Các lớp chính của Clean Architecture là gì? **Câu trả lời** Clean Architecture có 4 lớp chính: Domain (thực thể, quy tắc nghiệp vụ, interface của repository), Application (use case, DTO, logic ứng dụng), Infrastructure (triển khai repository, DbContext, dịch vụ bên ngoài) và Presentation (API controller, UI). Domain nằm ở trung tâm và không phụ thuộc vào gì cả. Application phụ thuộc vào Domain. Infrastructure và Presentation phụ thuộc vào Application và Domain. ## 3. Mẫu CQRS là gì? **Câu trả lời** CQRS (Command Query Responsibility Segregation) tách biệt các thao tác đọc (Queries) và ghi (Commands). Commands thay đổi trạng thái và trả về void hoặc một kết quả đơn giản. Queries trả về dữ liệu mà không thay đổi trạng thái. Sự tách biệt này cho phép tối ưu hóa độc lập các thao tác đọc (Dapper, view SQL) và ghi (EF Core, aggregate DDD), và mở rộng quy mô mỗi phía theo cách khác nhau. ## Còn 17 câu hỏi nữa - Vai trò của MediatR trong Clean Architecture là gì? - Làm thế nào để định nghĩa một Command trong MediatR? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn .NET khác - [Cơ bản về C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-basics.md): 25 câu hỏi, Junior - [LINQ & Delegates](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-linq-delegates.md): 20 câu hỏi, Junior - [Kiến thức cốt lõi ngôn ngữ C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-language-essentials.md): 15 câu hỏi, Junior - [Kiến thức cơ bản về ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/aspnet-core-fundamentals.md): 18 câu hỏi, Junior - [Vòng đời request trong ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/aspnet-core-request-lifecycle.md): 20 câu hỏi, Junior - [Configuration & Settings](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/configuration-settings.md): 20 câu hỏi, Junior - [Vòng đời ứng dụng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/application-lifecycle.md): 20 câu hỏi, Junior - [Dependency Injection](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/dependency-injection.md): 24 câu hỏi, Mid-Level - [Entity Framework Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/entity-framework-core.md): 25 câu hỏi, Mid-Level - [Minimal APIs](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/minimal-apis.md): 18 câu hỏi, Mid-Level - [Phát triển Web API](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/web-api-development.md): 22 câu hỏi, Mid-Level - [Async trong ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/async-aspnet-core.md): 20 câu hỏi, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/authentication-authorization.md): 18 câu hỏi, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/httpclient-networking.md): 20 câu hỏi, Mid-Level - [Tuần tự hóa JSON](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/json-serialization.md): 20 câu hỏi, Mid-Level - [Entity Framework Core nâng cao](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/ef-core-advanced.md): 25 câu hỏi, Mid-Level - [Các tính năng nâng cao của C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-advanced-features.md): 20 câu hỏi, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/logging-monitoring.md): 22 câu hỏi, Mid-Level - [Kiểm thử đơn vị & xUnit](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/unit-testing-xunit.md): 20 câu hỏi, Mid-Level - [Kiểm thử tích hợp](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/integration-testing.md): 18 câu hỏi, Mid-Level - [Docker & Containerization](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/docker-containerization.md): 16 câu hỏi, Mid-Level - [Quản lý gói NuGet](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/nuget-package-management.md): 16 câu hỏi, Mid-Level - [Memory Management & GC](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/memory-management-gc.md): 22 câu hỏi, Senior - [Lập trình phản ứng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/reactive-programming.md): 24 câu hỏi, Senior - [Async/await & Mẫu thiết kế](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/async-await-patterns.md): 26 câu hỏi, Senior - [.NET Design Patterns](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/dotnet-design-patterns.md): 24 câu hỏi, Senior - [Tối ưu hóa hiệu năng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật & Best Practices](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/security-best-practices.md): 24 câu hỏi, Senior - [SignalR & Thời gian thực](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/signalr-realtime.md): 22 câu hỏi, Senior - [Kiến trúc Microservices](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/microservices-architecture.md): 25 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/clean-architecture