TGViewer
کدهالیک | codehalic کدهالیک | codehalic @codehalics · 4.15K subscribers
Post #1184 288
توی NestJS اینکه چند تا پوشه مثل Orders و Payments بسازی معنیش کد ماژولار نیست. وقتی همه چی رو می‌ریزی تو SharedModule و همه‌جا ایمپورتش می‌کنی، کدهات شدیداً بهم گره می‌خورن و موقع تست گرفتن از Orders مجبور می‌شی کل دیتابیس و سرویس ایمیل رو هم بالا بیاری. راه درست اینه که به جای اکسپورت مستقیم ریپازیتوری‌ها، بین بخش‌ها یه قرارداد (Interface + Symbol) بذاری؛ یعنی مثلاً تو Orders فقط بگی:


// OrdersService.ts
constructor(
@Inject('PAYMENTS_PORT') private payments: PaymentsPort
) {}



اینطوری بخش سفارشات کاری نداره پرداخت چطوری تو دیتابیس ذخیره میشه یا چه ایمیلی می‌فرسته، ماژول‌ها کاملاً مستقل می‌مونن و دیگه لازم نیست چرخه‌های وابستگی رو با forwardRef از بین ببری.

https://javascript.plainenglish.io/nestjs-module-boundaries-that-survive-growth-3c6781b2baf1

@codehalics | کدهالیک
  • 👍 3
  • ❤ 1
More from @codehalics
  1. Oct 7, 2026این نکته رو هم اضافه کنم که این مورد داره ۲ اصل از اصول SOLID رو رعایت میکنه ! اول DIP (مع…
  2. Oct 7, 2026توی نسخه جدید 16.4 نکس‌جی‌اس، مهم‌ترین خبر اینه که مدل جدید Cache Components بالاخره کامل…
  3. Oct 5, 2026یه اتفاق جالب افتاده: یه برنامه‌‌نویس موقع ساخت پروژه دات‌نت با Claude متوجه شده هوش مصنوع…
  4. Oct 5, 2026دوره جامع معماری نرم‌افزار منتشر شد. در این آموزش ۴ ساعته و فشرده، مباحث Clean Architectur…
  5. Oct 4, 2026این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی…
  6. Oct 4, 2026سلام دوستان موسسه فرا رو آماده استخدام یک نیروی کارآموز حضوری در تهران برای پوزیشن فرانت ا…
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 →