|
Ось що очікують від .NET розробника під темою Backend інфраструктура. Це не просто список, а карта того, що можуть запитати і де потрібно мати впевнені знання. 🧱 1. Архітектура бекенду- Monolith vs Modular Monolith vs Microservices
A Monolith is a single application where all components are tightly coupled and deployed together. It is simple to develop and deploy but becomes hard to scale and maintain as it grows.
A Modular Monolith is still a single application, but it is organized into well-defined modules with clear boundaries. This improves maintainability while keeping the simplicity of a single deployment.
Microservices split the system into multiple independent services, each responsible for a specific functionality. They can be developed, deployed, and scaled independently, but introduce complexity in communication, deployment, and monitoring.
In practice:
Monolith → simple apps or early stages Modular Monolith → good balance for medium/large systems Microservices → large, distributed systems with scaling needs Why can microservices be a bad choice for many projects?
- Clean Architecture / Onion Architecture
Clean Architecture (also known as Onion Architecture) is an approach that organizes code into layers with a clear separation of concerns.
The core idea is that business logic is independent of frameworks, UI, and external systems.
Typical layers include:
Domain – core business logic and entities Application – use cases and business rules Infrastructure – external concerns like databases, APIs Presentation – UI or API layer
Dependencies always point inward, meaning outer layers depend on inner layers, but not the other way around.
This makes the system easier to test, maintain, and evolve over time. Why is it important that dependencies point inward in Clean Architecture?
- Layered architecture (Controller → Service → Repository)
- CQRS (Command Query Responsibility Segregation)
- Event-driven architecture
- DDD (Domain-Driven Design)
- SOLID
⚡ 2. Кешування- In-memory cache
- Distributed cache (Redis)
- Cache invalidation
- Cache aside / write-through / write-behind
📨 3. Черги та повідомлення- Message brokers:
- Pub/Sub
- Retry patterns
- Idempotency
- Outbox pattern / Saga Pattern
🚀 4. Performance & Scalability- Horizontal vs Vertical scaling
- Load balancing
- Throughput vs latency
- Profiling і bottlenecks
🔗 5. Інтеграції- REST clients (HttpClient best practices)
- Retry + Circuit Breaker (Polly)
- Third-party APIs
🔗 6. Background jobs
|