Files
Learning/C# Consepct.txt
2026-04-13 04:11:43 +03:30

42 lines
2.1 KiB
Plaintext

Domain-driven design (DDD):
یک مفهوم است که در اون برنامه رو طوری طراحی میکنیم که حالت فیزیکی و واقعی فروشگاه یا بانک یا هر برنامه دیگر داشته باشد
SOLID:
Single Responsibility Principle (srp):
کلاس یا متد ها وظیفه یکتا دارند و فقط باید وظیفه خودشون رو انجام بدن و عملیات هایی که مربوط به این وظیفه و اکشن نیستند نباید در اونها اعمال بشه
Open-Close Principle (ocp) :
کلاس ها و سرویس ها باید باز برای توسعه و بسته برای تغییر باشند
Liskov Substitiution Principle (lsp) :
برای مثلا اگر کلاس آی از کلاس بی ارث بری کرده هرجایی که کلاس بی رفرنس داده شده باید بدون مشکل بتونه کلاس آی رفرنس داده بشه
Interface Segregation Principle (isp):
گشایش و توضیع اینترفیس ها به قطعات کوچک تر برای استفاده بهتر
Dependency Inversin Principle (dip):
عدم ایجاد وابستگی در ماژول های سطح بالا به ماژول های سطح پایین و برای مثلا ایجاد یک interface میان اون ها
مثلا اگر میخوام در ماژول سطح بالا یک پیام ارسال کنیم
بجای استفاده مستقیم از EmailSender
از MessageSender
استفاده میکنیم که برای ارسال sms و بقیه سرویس های استفاده بشه
Clean Architecture :
یک سبک معماری نرم افزار هست که در اون نرم افزار طوری طراحی میشه که در آن کاهش وابستگی بین لای های بیرونی و درونی شکل میگیرد
TDD Test-driven design:
تست محور بودن برنامه ابتدا تست رو مینویسیم بعد با کد اون تست رو تکمیل میکنیم
Clean Code :
خوانا بودن کد DRY - Don't Repeat Yourself تکراری نبودن کد
و خلاصه بدون پیچیدگی و کامنت ها