کثیف ننویس! (بخش سوم)

? بهتره قبل از خوندن این نوشته، بخش‌های قبلیش ( اول و دوم ) رو خونده باشید.درود بر همه شما دوستان عزیزی که همیشه در حال تلاش برای تبدیل شدن به یه برنامه‌نویس بهتر هستین و به خاطر همینه که الان دارین این نوشته رو میخونین ?. در ادامه مبحث اصول کدنویسی تمیز در لاراول، در این نوشته هم ۱۰ مورد دیگه رو بررسی می‌کنیم. Just doing some cleaning after writing dirty code! ?۱۹) سعی کنید از CRUD اکشن‌ها استفاده کنیدCRUD ? Create, Read, Update, Deleteاگه امکانش وجود داره، فقط از ۷ اکشن CRUD اصلی (یا حتی کمتر) تو کنترلرهاتون استفاده کنید.کنترلرهایی نسازید که توشون ۲۰ تا متد وجود داره. هر چه کنترلر کوتاه‌تر باشه بهتره.۲۰) از اسم‌های معنادار برای نامگذاری متدها استفاده کنیدبه جای فکر کردن راجع به این که «این آبجکت چه کاری میتونه انجام بده؟»، به این فکر کنید که «چه کاری رو این آبجکت انجام پذیره؟».استثنائاتی هم ممکنه وجود داشته باشه (مثلا در مورد action classها)، اما در حالت کلی، استفاده از این روش میتونه خیلی کمک کننده باشه.۲۱)ـ trait های یکبار مصرف بسازیداضافه کردن متدها به کلاسی که بهش تعلق دارن راه حل تمیزتریه نسبت به حالتی که برای هر چیز action class بسازیم اما باعث میشه کلاس‌هامون بزرگ بشن.اینجاست که میتونید استفاده از trait ها رو در نظر بگیرید. درسته که هدف اصلی ساخت trait ها، قابلیت استفاده مجدد از اونهاست، اما اشکالی نداره که trait های یکبار مصرف هم داشته باشیم.۲۲)ـ Blade include های یکبار مصرف بسازیداینا هم مثل مورد قبلی هستن.این تکنیک جاهایی به کارتون میاد که تمپلیت‌های خیلی طولانی دارید و میخواین کاری کنین که مدیریتشون آسون‌تر بشه.خیلی راحت میتونین فایل‌های blade دلخواهتون رو بسازید و با استفاده از تگ include@ اونا رو تو تو یه فایل blade دیگه فراخونی کنید.۲۳) به جای استفاده از alias،ـ name spaceها رو ایمپورت کنیدبعضی اوقات ممکنه چند کلاس با یه نام داشته باشید. به جای اینکه اونا رو با یه alias ایمپورت کنید، میتونین فضاهای نامی یا همون namespace هاشون رو ایمپورت کنید.۲۴) برای where های پیچیده، query scope بسازیدبه جای نوشتن کوئری‌های پیچیده با ()where،ـ query scope بسازید و یه اسم معنادار روش بذارین.این باعث میشه که کنترلرها درگیری کمتری با ساختار دیتابیستون داشته باشن.۲۵) از متدهای مدل برای دریافت داده استفاده نکنیداگه میخواین از یه مدل داده‌ای رو دریافت کنید، accessor ایجاد کنید.برای آشنایی با نحوه ساخت accessor به این لینک مراجعه کنید.از متدها فقط زمانی استفاده کنید که لازم باشه به نحوی تغییری در مدل ایجاد کنید.۲۶) از فایل‌های کانفیگ سفارشی استفاده کنیدشما میتونین چیزایی مثل «تعداد نتایج در هر صفحه» رو تو فایلای کانفیگ ذخیره کنید. اما ذخیره این موارد تو فایل کانفیگ app روش خوبی نیست.فایل‌های کانفیگ مخصوص خودتونو بسازید. مثلا من تو پروژه‌های فروشگاه اینترنتی، از فایل config/shop.php استفاده میکنم.۲۷) کنترلرهاتون رو بهتر آدرس‌دهی کنیدبه جای نوشتن اکشن‌های کنترلر به صورت PostController@index، از سینتکس آرایه‌ای اون استفاده کنید که به این شکله: [PostController::class, 'index'].در این حالت، میتونین تو IDE با کلیک روی نام کلاس، فایل کلاس مورد نظرتونو باز کنید.? با IDE خودتون دوست باشید!افزونه نصب کنید، یادداشت نویسی کنید، از type hint استفاده کنید. IDE شما بهتون کمک میکنه کدتون درست کار کنه تا شما بتونین انرژی بیشتری رو برای نوشتن کدهای خوانا صرف کنید.۲۸) از کنترلرهای یک اکشنی استفاده کنیداگه برای یه route اکشن پیچیده‌ای دارید، بهتره یه کنترلر جداگانه براش بسازین.مثلا میتونین به جای OrderController::create، کلاس CreateOrderController رو بسازین.راه حل دیگه هم انتقال اون منطق به یه action class هستش. چیزی که تو اون مورد بهتر جوابگو هست رو انجام بدین.خب، این بخش هم به پایان رسید و به زودی بخش چهارم و پایانی این مقاله رو منتشر میکنم.اگه نوشته منو دوست داشتید و نکات براتون مفید بوده، لطفا لایک، ارسال نظر و به اشتراک گذاری با دیگران فراموش نشه ?.منو تو ویرگول، اینستاگرام، توئیتر و لینکدین میتونین دنبال کنین. مخصوصا اینستاگرام رو حتما چک کنید. چون اونجا هم نکات خوبی رو به اشتراک میذارم.? لینک سایر بخش‌ها? کثیف ننویس! (بخش اول)? کثیف ننویس! (بخش دوم)? کثیف ننویس! (بخش چهارم)