mohammad TooVinS
ساختار کامل پروژهی Backend.
تو پست قبلی ساختار ابتدایی پیشنهادی برای پروژههای Frontend رو گفتیم؛ این بار بریم سراغ یک ساختار تمیز و قابل توسعه برای Backend.
وقتی پروژه بزرگ میشه، پوشههایی مثل controllers و services کمکم پر از فایلهای بیربط میشن. راهحل اینه هر Feature، یک ماژول مستقل داشته باشه و همهی کدهای مرتبط با خودش رو همونجا نگه داره.
backend/
├── src/
│ ├── modules/
│ │
│ ├── shared/
│ │ ├── middlewares/
│ │ ├── errors/
│ │ ├── utils/
│ │ ├── constants/
│ │ └── types/
│ │
│ ├── infrastructure/
│ │ ├── database/
│ │ │ ├── migrations/
│ │ │ └── seeds/
│ │ ├── cache/
│ │ ├── queue/
│ │ ├── storage/
│ │ └── mailer/
│ │
│ ├── config/
│ │
│ ├── routes.ts
│ ├── app.ts
│ └── server.ts
│
├── tests/
│ ├── integration/
│ └── e2e/
│
├── scripts/
modules/
هر Feature، ماژول خودش رو داره و کدهای مربوط به اون Feature کنار هم قرار میگیرن.
shared/
کدهایی که بین چند ماژول استفاده میشن؛ مثل Middlewareها، Errorها، Utilityها و Typeهای مشترک.
infrastructure/
مسئول ارتباط با زیرساختها و سرویسهای بیرونی؛ مثل Database، Cache، Queue، Storage و Mailer.
config/
تنظیمات پروژه و متغیرهای "env" در یک نقطه مدیریت میشن.
tests/
تستهای Integration و E2E از کد اصلی پروژه جدا نگه داشته میشن.
در نهایت، هدف این ساختار سادهست:
ماژول بیشتر، نه شلوغی بیشتر.
@programming_codiing
8 · 170 ·