TGViewer
CodeVerse | دنیای برنامه نویسان CodeVerse | دنیای برنامه نویسان @codeverse_dev · 1.06K subscribers
Post #632 291
🏗️ یک Code Smell که در پروژه‌های بزرگ هزینه زیادی ایجاد می‌کند

فرض کن در پروژه PHP، منطق ارسال ایمیل، ثبت سفارش و پرداخت را همگی داخل یک متد قرار داده‌ای.


  public function checkout($data)
{
// Validate order
// Save order
// Process payment
// Send email
// Update inventory
}

در نگاه اول همه‌چیز مرتب به نظر می‌رسد؛ اما با بزرگ‌شدن پروژه، تغییر هر بخش ممکن است روی بخش‌های دیگر اثر بگذارد.

راهکار این نیست که برای هر خط کد یک کلاس بسازیم.

بهتر است مسئولیت‌ها را متناسب با پیچیدگی پروژه جدا کنیم:


  CheckoutService
|
+-- OrderService
|
+-- PaymentService
|
+-- InventoryService
|
+-- NotificationService

حالا می‌توانیم پرداخت را مستقل‌تر تست کنیم یا روش ارسال اعلان را تغییر دهیم، بدون اینکه کل فرایند سفارش را بازنویسی کنیم.

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

اصل مهم معماری: کد را نه بیش از حد ساده نگه دار و نه بی‌دلیل پیچیده کن؛ مرزها را بر اساس مسئولیت‌های واقعی پروژه تعیین کن.

@CodeVerse_dev
  • 👍 5
  • ❤ 1
More from @codeverse_dev
  1. Oct 7, 2026👨‍💻 برنامه‌نویسی با AI راحت‌تر شده؛ پس چرا بعضی Developerها خسته‌تر شده‌اند؟ طبق نظرسنجی…
  2. Oct 7, 2026🚨 وردپرس 7.1.3 منتشر شد؛ این یکی را عقب نینداز وردپرس دیروز نسخه 7.1.3 را منتشر کرد؛ یک آ…
  3. Oct 6, 2026شرکت Google وارد یک درگیری جدی با ناشران شده ⚖️ رگولاتور رقابت لهستان اعلام کرده Google را…
  4. Oct 6, 2026اگر Windows 11 داری، قبل از نصب بعضی آپدیت‌ها حواست باشد ⚠️ مایکروسافت تأیید کرده آپدیت پی…
  5. Oct 6, 2026اگر Chrome استفاده می‌کنی، این آپدیت را جدی بگیر ⚡ نسخه Stable مرورگر Chrome برای دسکتاپ ب…
  6. Oct 6, 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 →