اصول SOLID در برنامه نویسی شی گرا: راهی برای ساخت کدی قابل توسعه و نگهداری
11 فروردین 1403 1403-01-11 10:55اصول SOLID در برنامه نویسی شی گرا: راهی برای ساخت کدی قابل توسعه و نگهداری
اصول SOLID در برنامه نویسی شی گرا: راهی برای ساخت کدی قابل توسعه و نگهداری
اصول SOLID را در برنامهنویسی شیگرا میتوان اصولی قانونمند بهشمار آورد. توسعهدهندگان با رعایت این اصول میتوانند کدهایی قابل نگهداری و توسعه ایجاد کنند. در برنامهنویسی شیگرا، اصول SOLID به بهبود ساختار، کیفیت کدها و توسعه هرچه بهتر آنها منجر میشود.
به کمک اصول SOLID در برنامهنویسی شیگرا، امکان سازماندهی کدها بهشیوه بهتر، بهبود عملکرد و کارایی کلی برنامه وجود دارد. تغییرات بهشکل پایدارتر و باسرعت بالاتری با اصول SOLID در کدها قابل اعمال هستند؛ اگر تاکنون در مورد قوانین SOLID و کارایی آنها در برنامهنویسی شیگرا اطلاعات چندانی بهدست نیاوردهاید، این مطلب برای شما آماده شده است.
SOLID چیست؟
Solid مجموعهای از اصول طراحی برنامهنویسی بهشمار میرود. این اصول برنامهنویسی بهوسیله Robert C. Martin که به استاد Clean Code معروف بوده، معرفی شدهاند. البته بد نیست بدانید برای اولین بار اصول Solid در دهه ۱۹۹۰ بهوسیله مایکل فیدرز و جیم وایر مطرح شد؛ اما رابرت سی. مارتین این اصول را بهشکل کاملتری به بشریت ارائه کرد.
در حال حاضر اصول Solid را راهنمایی عملی برای نوشتن کدهای قابل توسعه، قابل نگهداری و باکیفیت میشناسند. اصول Solid در برنامهنویسی شیگرا و دیگر زبانهای برنامهنویسی مانند جاوا، سی شارپ و موارد دیگر تاثیرات مثبت زیادی میگذارد و به توسعهدهندگان کمک میکند تا کدهای خود را بهبود دهند و از مشکلاتی که ممکن است در طراحی کدها بهوجود آید، جلوگیری نمایند. تاثیرات مثبت Solid باعث شده امروزه آموزش اصول Solid در جاوا و دیگر زبانهای برنامهنویسی یکی از مهمترین اصول آموزشی بهحساب آید.
اصول برنامهنویسی شیگرا
برای آنکه بتوانید بهخوبی از اصول Solid در برنامهنویسی شیگرا بهرهمند شوید، باید در مورد اصول برنامهنویسی شیگرا هم اطلاعاتی بهدست آورید. قوانینی که اصول برنامهنویسی شیگرا روی آنها تمرکز دارد، قوانین زیر هستند:
Abstraction یا انتزاع
این اصل بهمعنی مخفی کردن جزئیات پیچیده و تنظیمات داخلی یک شی است. با استفاده از اصل انتزاع شما میتوانید به عملکردها و ویژگیهای مهم کدها توجه بیشتری داشته باشید. اصل انتزاع در برنامهنویسی شیگرا یکی از مهمترین اصولی است که شما در آموزشهای برنامهنویسی آکادمی چابک یاد میگیرید.
Inheritance یا وراثت
وراثت بدین معناست که یک کلاس از کلاس دیگر ویژگیها و عملکردهایی را ارث میبرد. اصل وراثت این امکان را برای شما فراهم میکند که کلاسی جدید با ویژگیها و عملکردهای کلاس موجود، بسازید.
Polymorphism یا چندریختی
مفهوم چندریختی به شما اجازه میدهد که یک متد عمومی با ورودیهای متفاوت تعریف کنید. برای درک بهتر این اصل در برنامهنویسی شیگرا، انسان را یک شی در نظر بگیرید. از آنجایی که همه انسانها غذا میخورند، شما میتوانید برای این شی با اصل چندریختی متدی بهنام food تعریف کنید. با توجه به اینکه همه انسانها غذای یکسانی نمیخورند، متد food میتواند ورودیهای مختلفی داشته باشد.
Encapsulation یا کپسولهسازی
کپسولهسازی بهمعنی جمعآوری عملکردها و دادههای مرتبط در یک شیء و محدود کردن دسترسی به این عملکردها و دادهها طبق یک دستورالعمل مشخص است.
با اصول نامبرده، برنامهنویسان میتوانند نرمافزارهایی ساختاردهیشده ایجاد کنند، همچنین با ترکیب اصول Solid در برنامهنویسی شیگرا ساختاردهی نرمافزارها سادهتر میشود.
قوانین Solid
قوانین یا اصول Solid از پنج اصل اساسی برخوردارند، اصول Solid در پایتون، سیشارپ، ASP.net و جاوا هم حائز اهمیت هستند. بهعنوان یک مبتدی اگر میخواهید در مورد قوانین Solid اطلاعاتی بهدست آورید، ما به شکل زیر این اطلاعات را در اختیار شما قرار میدهیم.
Single Responsibility Principle
اصل مسئولیتپذیری تکی در قوانین Solid بدین معناست که هر کلاس یا شیء تنها باید یک مسئولیت خاص داشته باشد و طبق این اصل، انتساب مسئولیتهای متعدد به یک شیء یا کلاس درست نیست.
Open/Closed Principle
اصل باز و بسته بودن، به این معنا است که برنامه را باید بهگونهای طراحی کنید که هنگام اضافه کردن ویژگیهای جدید، کد موجود دچار تغییر نشود.
Liskov Substitution Principle
اصل جایگزینی لیسکوف میگوید باید هر کلاس مشتقشده از یک کلاس پایه، قابلیت استفاده بهجای آن کلاس پایه را داشته باشد بدون آنکه در عملکرد برنامه تغییری ایجاد شود.
Interface Segregation Principle
اصل جداسازی اینترفیس بدین معنا است که اینترفیس باید بهگونهای طراحی شود که تنها متدهای لازم برای هر کلاس در آن وجود داشته باشد.
Dependency Inversion Principle
اصل وابستگی معکوس میگوید که وابستگی بین کلاسها نباید بهگونهای باشد که کلاسها به جزئیات پیادهسازی برنامه وابسته شوند. این اصل معمولا روی اینترفیس و خلاصهسازی تمرکز دارد.
تمامی اصول نامبرده با برنامهنویسی شیءگرا همخوانی داشته و استفاده از آنها در این زمینه برنامهنویسی کاملا ملموس است.
اهمیت قوانین و اصول Solid در زبانهای برنامهنویسی مختلف
اهمیت اصول Solid در برنامهنویسی شیگرا بر هیچ توسعهدهندهای پوشیده نیست. اما اصول Solid نه تنها در برنامه نویسی شیءگرا، بلکه در اکثر زبانهای برنامهنویسی نقش تاثیرگذاری روی کیفیت کدها و قابلیت نگهداری آنها دارد. نقش تاثیرگذار اصول Solid در زبانهای برنامهنویسی مختلف، بهشکل زیر هستند.
کاهش وابستگی
اصول Solid در زبانهای برنامهنویسی مختلف این امکان را برای برنامهنویسان فراهم میکنند تا وابستگیهای غیرضروری بین کلاسها را کاهش دهند. با کاهش وابستگی کلاسها، احتمال اثرات جانبی و تغییرات ناخواسته روی دیگر بخشهای کد کمتر میشود.
قابلیت تست
اصول Solid در c# و زبانهای برنامهنویسی دیگر، ساختاری واضح و منظم برای کدها ایجاد میکند؛ از همینرو تست و نوشتن تستهای واحد آسانتر میشود. شما میتوانید با اصول Solid بهراحتی تستهایی واحد برای هر قسمت از کدها ایجاد کنید.
قابلیت توسعه
با رعایت اصول Solid در asp net core، جاوا، سی شارپ، پایتون و زبان برنامهنویسی شیءگرا، کدهای برنامه قابل توسعه و اصلاح خواهند بود. شما میتوانید با رعایت این اصول تغییرات را بهراحتی در برنامه اعمال کرده و کارایی برنامه را حفظ کنید.
خوانایی
اصول Solid به ساختارمند شدن و خواناتر شدن کدهای برنامه کمک میکنند؛ از همینرو فهمیدن کدها راحتتر میشود و اعمال تغییرات لازم در کدها دیگر چندان سخت نیست.
افزایش بهرهوری
اصول Solid به افزایش بهرهوری در توسعه و نگهداری کدها کمک میکند. با این اصول، زمان و هزینه مربوط به توسعه و نگهداری کدها تا حد زیادی کاهش پیدا کرده و پروژه به شکل پایدارتری پیش میرود.
کلام آخر
در این مطلب سعی کردیم در رابطه با اصول Solid در برنامهنویسی شیگرا اطلاعاتی در اختیار شما قرار دهیم. همانطور که دریافتید، اصول Solid به ایجاد کدهایی با قابلیت نگهداری بالا و توسعه راحت منجر میشوند. اصول Solid در پنج دسته تقسیمبندی شده و علاوهبر تاثیر روی برنامهنویسی شیءگرا در تمامی زبانهای برنامهنویسی موثر هستند.
منابع