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