Skip to content

Repository files navigation

🧠 SOLID چیست؟

مقدمه‌ای بر اصول طراحی نرم‌افزار تمیز و مقیاس‌پذیر

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

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

این اصول توسط Robert C. Martin (Uncle Bob) معرفی شده‌اند و امروزه ستون فقرات طراحی حرفه‌ای در سیستم‌های بزرگ محسوب می‌شوند.


🎯 چرا به SOLID نیاز داریم؟

در پروژه‌های واقعی معمولاً این مشکلات را دیده‌ایم:

  • هر تغییر کوچک، چند جای سیستم را می‌شکند
  • کلاس‌ها بیش از حد بزرگ و پیچیده‌اند
  • تست‌نویسی سخت یا غیرممکن است
  • وابستگی‌ها درهم‌تنیده‌اند
  • اضافه کردن قابلیت جدید = ترس از خراب شدن سیستم

SOLID آمده تا این مشکلات را ریشه‌ای حل کند.


🧱 فلسفه‌ی پشت SOLID

SOLID فقط مجموعه‌ای از قوانین نیست؛ بلکه یک طرز فکر طراحی است:

هدف نتیجه
کاهش وابستگی تغییر راحت‌تر
افزایش انتزاع توسعه‌پذیری
تفکیک مسئولیت‌ها نگهداری آسان
قراردادهای شفاف رفتار قابل پیش‌بینی

🔍 SOLID به چه سؤالاتی پاسخ می‌دهد؟

  • هر کلاس دقیقاً چه کاری باید بکند؟
  • چطور بدون تغییر کدهای موجود، قابلیت جدید اضافه کنیم؟
  • چطور کلاس‌های فرزند را امن طراحی کنیم؟
  • چطور اینترفیس‌ها را تمیز و کوچک نگه داریم؟
  • چطور وابستگی‌ها را قابل تعویض کنیم؟

پاسخ این‌ها در ۵ اصل SOLID نهفته است.


🧩 پنج اصل SOLID به‌صورت خلاصه

حرف اصل مفهوم ساده لینک
S Single Responsibility هر کلاس فقط یک مسئولیت https://github.com/aieghbal/solid-principles/blob/main/single-responsibility-principle.md
O Open–Closed توسعه بدون تغییر https://github.com/aieghbal/solid-principles/blob/main/open-closed-principle.md
L Liskov Substitution جایگزینی امن https://github.com/aieghbal/solid-principles/blob/main/liskov-substitution-principle.md
I Interface Segregation اینترفیس‌های کوچک https://github.com/aieghbal/solid-principles/blob/main/interface-segregation-principle.md
D Dependency Inversion وابستگی به انتزاع https://github.com/aieghbal/solid-principles/blob/main/dependency-inversion-principle.md

🧠 تفاوت برنامه‌نویس معمولی و حرفه‌ای

معمولی حرفه‌ای
کد کار می‌کند کد قابل رشد است
سریع می‌نویسد پایدار طراحی می‌کند
امروز را می‌بیند آینده را پیش‌بینی می‌کند

SOLID همان چیزی است که تو را از سطح «کدنویس» به «طراح سیستم» می‌برد.


🚀 هدف این مجموعه

در فایل‌های بعدی:

  • هر اصل را جداگانه
  • با مثال واقعی (Laravel)
  • با سناریوی پروژه‌ای

بررسی می‌کنیم تا بتوانی SOLID را در دنیای واقعی استفاده کنی، نه فقط در تئوری.


اگر این مقدمه را خوب درک کنی، بقیه SOLID برایت کاملاً منطقی و لذت‌بخش خواهد بود 💡


About

Solid principles

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors