نمای کلی معماری¶
لیچ پروژههایی بر اساس اصول معماری تمیز تولید میکند.
ساختار پروژه¶
your-project/
├── backend/
│ ├── api/
│ │ ├── http/ # روترهای FastAPI
│ │ └── middleware/ # HTTPهای middleware
│ ├── internal/
│ │ ├── entities/ # مدلهای دامین
│ │ ├── services/ # منطق کسبوکار
│ │ ├── ports/ # اینترفیسها
│ │ ├── adapters/ # پیادهسازیها
│ │ ├── dto/ # نوعهای درخواست/پاسخ
│ │ ├── events/ # کلاسهای Event
│ │ ├── listeners/ # هندلرهای Event
│ │ ├── jobs/ # کارهای Background
│ │ └── policies/ # Authorization
│ └── main.py
├── frontend/ # اپ Next.js
└── docker-compose.yml
دیاگرام لایهها¶
┌─────────────────────────────────────────┐
│ لایه API │
│ (روترهای FastAPI) │
└───────────────┬─────────────────────────┘
│ صدا میزند
┌───────────────▼─────────────────────────┐
│ لایه سرویس │
│ (منطق کسبوکار/Use cases) │
└───────────────┬─────────────────────────┘
│ استفاده میکند
┌───────────────▼─────────────────────────┐
│ لایه دامین │
│ (Entities + Ports/Interfaces) │
└───────────────┬─────────────────────────┘
│ پیادهسازی میشود توسط
┌───────────────▼─────────────────────────┐
│ لایه Adapter │
│ (دیتابیس، کش، خارجی) │
└─────────────────────────────────────────┘
اصول کلیدی¶
| اصل | توضیحات |
|---|---|
| وارونگی وابستگی | ماژولهای سطح بالا به سطح پایین وابسته نیستند |
| مسئولیت واحد | هر ماژول یک دلیل برای تغییر دارد |
| جداسازی اینترفیس | اینترفیسهای خاص متعدد بهتر از عمومی |
| دامین خالص | Entities وابستگی framework ندارند |