Syntax | سینتکس
2.98K subscribers
423 photos
111 videos
35 files
392 links
Download Telegram
جلوگیری از کد تکراری (Duplicate Code)

کد تکراری یا Duplicate Code به بخشی از کد گفته می‌شود که به‌طور مشابه یا یکسان در چندین نقطه از برنامه تکرار شده است. وجود کد تکراری نه تنها خوانایی کد را کاهش می‌دهد، بلکه باعث می‌شود مدیریت و نگهداری کد نیز پیچیده‌تر شود.

آقا / خانم این کارارو نکن:

1. کپی و پیست کردن کد: یکی از رایج‌ترین دلایل وجود کد تکراری، کپی و پیست کردن کد به جای استفاده از رویکردهای ماژولار و تابعی است.

2. عدم وجود طراحی مناسب: طراحی نادرست و عدم استفاده از اصول برنامه‌نویسی شیءگرا و الگوهای طراحی می‌تواند منجر به تکرار کد شود.

3. توسعه توسط تیم‌های مختلف: توسعه موازی توسط تیم‌های مختلف بدون هماهنگی مناسب نیز می‌تواند باعث ایجاد کد تکراری شود.

کد تکراری چه مشکلاتی بوجود میاره؟

1. افزایش پیچیدگی و کاهش خوانایی: کد تکراری باعث افزایش حجم کد و کاهش خوانایی آن می‌شود، که می‌تواند درک و نگهداری کد را دشوارتر کند.

2. افزایش احتمال خطا: در صورت نیاز به تغییر در بخشی از کد، باید همه نمونه‌های تکراری آن تغییر یابند که احتمال بروز خطا را افزایش می‌دهد.

3. کاهش کارایی توسعه: مدیریت کد تکراری زمان‌بر است و باعث کاهش کارایی فرآیند توسعه و نگهداری نرم‌افزار می‌شود.

روش‌های جلوگیری از کد تکراری:

1. استفاده از توابع و روش‌های ماژولار:
   - با تبدیل کد تکراری به توابع یا متدهای مستقل، می‌توان از تکرار کد جلوگیری کرد و از مزایای کد قابل استفاده مجدد بهره‌مند شد.

2. استفاده از اصول برنامه‌نویسی شیءگرا:
   - با استفاده از وراثت، ترکیب (composition) و سایر اصول برنامه‌نویسی شیءگرا می‌توان کد تکراری را کاهش داد.

3. استفاده از الگوهای طراحی (Design Patterns):
   - الگوهای طراحی مانند Adapter، Factory، Strategy و دیگر الگوها می‌توانند به کاهش کد تکراری کمک کنند.

4. استفاده از ابزارهای تشخیص کد تکراری:
   - ابزارهایی مانند SonarQube می‌توانند به شناسایی و حذف کد تکراری کمک کنند.

مثال:
حرفای ما ثابت شدست مثال نمیخواد که 😁

پ.ن:
تو آخرین شرکتی که کار می کردم، بزرگوار یکی از طرفداران duplicate code بود.
حتی اون تابعی که قبلا نوشته بودو دوباره استفاده نمیکرد. کپی پیست میکرد تا بغل دست کدی که ازش استفاده کرده باشه😐

#duplicate_code

@Syntax_fa
👍8😁1