TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2199 1.88K
آشنایی با Domain Validation

اعتبار سنجی دامنه، فرآیندی است برای بررسی اینکه «آیا داده ها و عملیات در مدل دامنه ما با قوانین تجاری و متغیرهای ثابت سازگار هستند یا خیر». به عنوان مثال، ممکن است بخواهیم اعتبار یک آدرس ایمیل معتبر باشد، یک نام خالی نباشد، یا اینکه سفارش انجام شده حداقل یک مورد انتخابی دارد.

1. Throw exception
یکی از راه‌های پیاده‌سازی اعتبار دامنه، استفاده از exception و زمانی است که اعتبارسنجی ناموفق است.

این رویکرد دارای معایبی است از جمله:

- استفاده از Throw exception گران است و می‌تواند بر عملکرد تاثیر بگذارد.
- استثناها باید برای موقعیت‌های استثنایی استفاده شوند، نه برای سناریوهای اعتبارسنجی عادی.

2. Result object
یک راه بهتر برای پیاده سازی اعتبار دامنه، بازگشت شیء نتیجه به جای throw exception است. شیء نتیجه یک کلاس ساده است که نتیجه عملیاتی شامل یک پرچم موفقیت، یک مقدار و مجموعه ای از خطاها را در بر می گیرد.

این رویکرد چندین مزیت دارد، از جمله:

- برگرداندن یک شیء نتیجه، ارزانتر و سریعتر از پرتاب کردن استثناها است.
- اشیاء نتیجه می‌توانند چندین خطا را در عملیات مدیریت کنند و نمایش آنها به کاربر یا ثبت آنها را آسان‌تر می‌کند.


🔗 نسخه کامل مقاله به همراه نمونه کد را می‌توانید در اینجا مطالعه نمایید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#محمدرضا_پازوکی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

______
DEV Community Domain Validation In this blog post, I want to share with you how to implement domain validation by returning a result...
  • 👍 8
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
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 →