در این مجموعه مطلب میخواهیم اصول SOLID در لاراول را به زبان ساده بیان کرده و سپس در مورد هر اصل، توضیحات کامل و مثالی کاربردی در فریم ورک لاراول را بررسی و تشریح کنیم. برای این منظور شرایطی را فرض میکنیم که در محیطهای کاری با آن مواجه شده یا خواهیم شد. جایی که کدنویسی پروژه سخت میشود و نگهداری از آن غیر ممکن.
جملهی معروفی هست که میگوید: نوشتن برنامه های کامپیوتری کار بسیار سرگرم کنندهای است. مگر اینکه مجبور باشید با کد دیگران کار کنید! معمولا، کدهای قبلی یک پروژه آنقدر پیچیده هستند که وقتی با آنها کار میکنیم تمام ذوق و اشتیاق ما به استرس و ترس تبدیل میشود. صرفاً به این دلیل که افرادی که نسخه اول را نوشتند عجله داشتند، و کسانی هم که بعد از آنها آمدند، مدام به آشفتگی اضافه کردند. نتیجه نهایی این شد که در کد پروژه، یک آشفتگی هولناک پدید آمد که تعداد کمی از برنامهنویسان می خواهند آن را لمس کنند و هیچ کس به درستی این کدها را درک نمی کند. معمولا وقتی در پروژهای با چنین وضعیتی روبرو میشوید، به خودتان میگویید کسی به من نگفته بود که برنامه نویسی تا به این حد سخت خواهد بود. حقیقت این است که برنامه نویسی واقعا هم به این میزان سخت نیست، به شرطی که آن را به روش درست انجام دهید. نوشتن کد خوب، کدی که ماژولار باشد و نگهداری آن آسان باشد، چندان سخت نیست. تنها پنج اصل ساده دارد که مدتها جا افتاده و به خوبی شناخته شدهاند. این پنج اصل تحت عنوان اصول سالید(SOLID principles) معروفی شده اند که اگر با نظم و انضباط دنبال شوند، اطمینان حاصل میکنید که کد شما برای دیگران، یا حتی برای خودتان وقتی شش ماه بعد به آن نگاه میکنید قابل فهم است.
همانطور که گفته شد، این اصول پنجگانهی راهنما، با مخفف SOLID نشان داده میشوند. شاید قبلاً نام “اصول سالید” را شنیده باشید، شاید هم نه. اگر میخواستید روزی در مورد اصول SOLID در لاراول مطالعه کنید، امروز همان روز است! پس، بدون توضیح اضافی، بیایید ببینیم که این اصول SOLID در مورد چیست و چگونه می تواند به ما کمک کند تا یک کد کاملاً دقیق و اصولی بنویسیم.
این اصول پنجگانه به شرح زیر هستند:
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
برای هر یک از اصول بالا در مطلبی جداگانه توضیحات کامل به همراه مثال کاربردی در فریم ورک لاراول قرار داده شده است.