اصول SOLID
پنج اصل SOLID توسط Robert C. Martin معروف به (Uncle Bob) برای اولین بار مطرح شد.
هدف از SOLID توسعه کدهای با خوانایی بالاتر و توسعه پذیر تر و همچنین ایجاد یک استاندارد بین تمامی توسعه دهندگان است.
اصول SOLID چه مشکلاتی رو حل میکند ؟
بدون استفاده از اصول SOLID مشکلات زیر وجود خواهد داشت:
- Rigidity
به خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر انجام تغییرات به سختی امکان پذیر است.
- Fragility
به خاطر وابستگی بیش از حد کلاس ها و توابع به یکدیگر هر بار باید متدها و یا توابع تغییر پیدا کنند.
- Immobility
استفاده از کلاس ها و یا متدها به خاطر وابستگی بهم دیگر یا پیچیدگی امکان پذیر نیست.
- Viscosity
تغییرات با اضافه کردن کد های اشتباه امکان پذیر بود ولی پروژه بزرگ و بزرگتر میشد و امکان توسعه وجود نداشت.
- Duplication
متد ها در جاهای مختلف تکرار میشدن و در صورت رفع باگ یا مشکلی نیاز بود در تمامی جاهای که متد نوشته شده بود تغییرات اعمال شود.
چرا SOLID ؟
اصول SOLID با توجه به مشکلاتی که در توسعه نرم افزار به وجود آمده شکل گرفت که بر پایه پنج اصل میباشد این اصول عبارت اند از :
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Single Responsibility
هر کلاس وظیفه انجام تنها و تنها یک کار را دارد هیچ کلاسی نباید دو یا چند عملیات انجام دهد.
یا به مفهومی دیگر : یک کار انجام بده اما درست انجام بده.
Open-Closed
هر کلاس باید قابل توسعه باشد ولی تغییر نکند.
ضمانت میکند که کلاس ها قابل ارث بری و استفاده هستند ولی نباید از بیرون قابل تغییر باشند.
Liskov Substitution
کلاس والد باید مناسب تمامی کلاس های فرزند باشد و اگر کلاسی از کلاسی ارث بری میکند نباید رفتار کلاس والد خود را تغییر دهد.
Interface Segregation
داشتن interface های کوچیک بهتر از داشتن یک interface بزرگ است.
Dependency Inversion
کلاس ها و ماژول ها به جز لایه انتزاعی (abstraction layer) نباید به لایه پایین تر از خود وابستگی داشته باشند.
جمع بندی
قطعا استفاده از اصول و قوانین همچون SOLID موجب بهبود فرآیند توسعه و تمیز بودن کد میشود.
استفاده از این اصول باعث میشود که یک استاندار مشترک در کل پروژه بوجود بیاید و تا حدودی مشکلات کار کردن روی پروژه های که بیش از یک توسعه دهنده در حال توسعه آن هستند را کاهش دهد. ولی این به این معنی نیست که که اگر تنها توسعه دهندهی پروژه هستید این اصول را رعایت نکنید.
در کل استفاده از اصول SOLID باعث نوشتن کد های با کارایی بالا (higher performance) ، امکان استفاده در جای مختلف (reusable) ، توسعه ساده تر (maintainable) ، مقیاس پذیر (scalable) و قابل تست (testable) میشود.
مطلبی دیگر از این انتشارات
تفاوت Interface و Abstract Class
مطلبی دیگر از این انتشارات
نوشتن بات تلگرام با node js
مطلبی دیگر از این انتشارات
بهبود مهارتهای برنامهنویسی: راهکارها و روشها