TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #217 133
🌱 توسعه‌دهنده جونیور از EF Core مستقیم در کنترلر استفاده می‌کنه.

🌳 توسعه‌دهنده میدلول از الگوی Controller-Service-Repository استفاده می‌کنه.

🌲 توسعه‌دهنده سینیور از معماری تمیز (Clean Architecture) استفاده می‌کنه.

🤯 معمار دوباره برمی‌گرده به استفاده از EF Core در کنترلر!

چرا این اتفاق میفته؟ 🤔
• چون پروژه‌های واقعی از راه حل‌های ساده سود می‌برن.

• فقط زمانی لایه اضافه کن که واقعاً بهش نیاز داری.

• یه اپلیکیشن کوچیک می‌تونه با EF Core در کنترلرها یا Minimal API endpoints زنده بمونه.

• یه پروژه متوسط ممکنه از یه لایه اپلیکیشن (مثل سرویس‌ها) سود ببره.

• یه سیستم بزرگ ممکنه به برش‌های عمودی (Vertical Slices) و معماری تمیز یا حتی DDD نیاز داشته باشه.

📌درس اصلی اینه: از اول کار، بیش از حد مهندسی (over-engineer) نکن.

قدم به قدم بساز.
اگه به پیچیدگی بیشتری نیاز پیدا کردی، اضافه‌ش کن.
اگه نه، ساده نگهش دار و برو جلو.

شما همیشه می‌تونید بعداً کد رو بازآرایی (refactor) یا گسترش بدید.
روی تحویل ارزش تمرکز کن، نه روی ساختن لایه‌ها. 🎯

💡: خودِ EF Core از قبل الگوهای Repository و Unit Of Work رو پیاده‌سازی کرده، پس در اکثر مواقع شما نیازی به ساختن کلاس‌های ریپازیتوری خودتون ندارید.
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →