SOLID چیست؟ پنج اصل طراحی شیءگرا که هر برنامهنویسی باید بداند
۹ مهر ۱۴۰۵
نویسنده:
حسن محمدزاده

چرا SOLID مهم است؟
وقتی یک پروژهی نرمافزاری رشد میکند، کدی که ابتدا ساده و قابلفهم بود، کمکم به مجموعهای پیچیده از وابستگیها تبدیل میشود. اصول SOLID مجموعهای از پنج قاعدهی طراحی شیءگرا هستند که به نوشتن کدی کمک میکنند که تغییر آن آسان، تست آن ساده و نگهداریاش کمهزینه باشد.
پنج اصل به زبان ساده
S – مسئولیت واحد (Single Responsibility): هر کلاس باید فقط یک دلیل برای تغییر داشته باشد. مثلاً یک کلاس Invoice نباید هم محاسبهی مالیات را انجام دهد و هم فاکتور را چاپ کند.
O – باز/بسته (Open/Closed): کد باید برای افزودن قابلیت جدید باز باشد، اما برای تغییر کد موجود بسته. با استفاده از اینترفیسها و الگوهای طراحی مثل Strategy میتوان به این هدف رسید.
L – جایگزینی لیسکوف (Liskov Substitution): یک زیرکلاس باید بتواند جای کلاس والد خود را بدون شکستن برنامه بگیرد.
I – تفکیک اینترفیس (Interface Segregation): بهجای یک اینترفیس بزرگ و همهکاره، چند اینترفیس کوچک و تخصصی بسازید.
D – وارونگی وابستگی (Dependency Inversion): کلاسهای سطح بالا نباید مستقیماً به جزئیات پیادهسازی وابسته باشند؛ بهجای آن، هر دو باید به انتزاع (Interface) وابسته باشند.
نتیجهگیری
رعایت SOLID لزوماً بهمعنای پیچیده کردن کد نیست؛ برعکس، هدف آن سادهتر کردن نگهداری بلندمدت پروژه است. در پروژههای Laravel و Next.js که من روی آنها کار میکنم، این اصول مستقیماً روی سرعت توسعهی فیچرهای جدید و کاهش باگها تأثیر میگذارند.