هنر نام‌گذاری در لاراول: یک راهنمای ساده

278
نام گذاری در پروژه یکی از مسائلی است که میتواند به راحتی کیفیت کد‌های شما را چند برابر کند و خوانایی آن را بالا ببرد. از کنار نام گذاری نباید به راحتی گذر کنید چون با نام گذاری درست، برنامه‌نویسان آینده پروژه از شما تشکر میکنند.

نام گذاری در برنامه‌نویسی خوانایی و کیفیت کد را به شدت افزایش میده و همین موضوع باعث میشود که اهمیت مسئله اسم گذاری دوچندان افزایش میابد. نام گذاری درست مانند داکیومنت نویسی عمل میکند و به برنامه‌نویسانی که تازه به پروژه اضافه می‌شوند کمک میکند که بدون بررسی بدنه کلاس یا متد بتوانند اطلاعات حداقلی از کارکرد متد، نوع ورودی و نوع خروجی به دست آورند تا مرحله آماده‌سازی (Onboarding ) را سریع تر و تاثیر گذار تر به پایان برسانند.


در این مقاله درباره نام گذاری روی مدل‌ها، کنترلر‌ها و میگریشن‌ها در لاراول صحبت میکنیم که 3 تا از مهم ترین امکانات لاراول هستند که اگر درست و اصولی نام گذاری شوند خوانایی کد لاراول را چند برابر میکنند و از طرف دیگر فریم‌ورک هم بهتر با کد ما ارتباط برقرار میکند. نکته ای که اینچا باید در نظر بگیرد این است که این اصول که در مقاله با هم بررسی میکنیم متخص به لاراول است و الزامی برای رعایت آنها نیست و میتوانید در لاراول یا هر زبان دیگری از اصول مناسب با پروژه خود برای نام گذاری فایل‌ها استفاده کنید تا کار شما راحت تر باشد.


نام گذاری مدل‌ها

مدل‌ها در لاراول با کمک Eloquent وظیفه ارتباط با دیتابیس را دارند. مدل‌ها توانایی مدیریت روابط (relation)، فیلد‌های حفاظت شده یا مخفی شده، accessor و mutator را دارد تا به قدرت لاراول بی‌افزاید. مدل‌ها در لاراول به صورت مفرد تعریف میشوند مثل User. زمانی که اسم مدلی User باشد، لاراول زمان ارتباط به دیتابیس به صورت خودکار به دنبال جدولی با نام users میگردد. این توانایی لاراول به ما کمک میکند تا کد‌های تمیزی تری داشته باشیم و بدانیم که هر جدول توسط کدام مدل مدیریت می‌شود. اگر نمی‌خواهید از این اصل پیروی نکنید اصلا مشکلی وجود ندارد،‌شما میتوانید نام جدول مربوط به مدل را در داخل مدل با متغیر table مشخص کنید.

نام گذاری کنترلر‌ها

در لاراول درگیری بزرگی بین توسعه دهندگان برای نام گذاری کنترلر‌ها درجریان  است. بعضی از توسعه‌دهندگان بر این باورند که کنترلر مانند مدل باید به صورت مفرد تعریف شود اما گروهی دیگر در نقطه کاملا مخالف معتفدند که کنترلر بر خلاف مدل باید به صورت جمع تعریف شود. پس دست شما باز است تا نام کنترلر را BookController یا BooksController تعریف کنید اما همیشه مفرد ترجیح داده می‌شود.چرا؟

چون زمانی که شما با دستور artisan یک مدل ایجاد میکنید و flag مربوط به ساخت کنترلر برای مدل رو هم اضافه میکنید مثل  php artisan make:model Book -c لاروال به صورت خودکار یه مدل با نام Book و یک کنترلر با نام BookController ایجاد میکند.

 مانند اصل مربوط به مدل‌ها، برای شما الزامی نیست تا این اصل را برای کنترلر‌ها رعایت کنید اما حتما در نام کنترلر از پسوند Controller استفاده کنید تا مشخص شود که این سری کلاس‌ها نقش کنترلر را در برنامه شما دارند.

نام گذاری میگریشن‌ها

میگریشن‌ها (migration) در لاروال وظیفه ایجاد جداول دیتابیس، کلید‌ها، ساخت index و ارتباط بین کلید‌ها را دارد. میگریشن‌ها به ما کمک میکنند که  جداول دیتابیس را به صورت ورژن بندی داشته باشیم و همیشه دیتابیس برنامه همراه بخش‌های دیگر کد باشند تا در صورت نبود بکاپ از دیتابیس بتوانید با میگریشن یه نمونه از دیتابیس بسازید. زمانی که با دستور artisan یک میگرشن میسازید، لاراول یک فایل با نامxxxx_create_books_table.phpبه صورت خودکار  ایجاد میکند. از این رو میتوانید زمانی که قصد ایجاد میگریشن‌ دارید نام آن را به صورت create_books_table.php قرار دهید تا ساختار لاراول را حفظ کرده باشید. این نکته را هم اضافه کنم که لاراول قبل نام فایل مورد نظر شما یک timestamp هم اضافه می‌کند که برای حفظ ترتیب فایل های میگرشین است تا به ترتیب اجرا شوند.

دستور کامل برای ایجاد یک میگرشین برای جدول  ‌books با حفظ ساختار‌های لاراول به این شکل است : 

php artisan make:migration create_book_reviews_table --create=books


حرف‌ آخر

نام گذاری فایل‌ها و کلاس‌ها در هر زبان برنامه‌نویسی مهم است تا برنامه نویسان دیگر را اذیت نکند اما در لاراول اوضاع فرق می‌کند چون با نام گذاری درست میتوانید  کد کمتری هم بزنید که در نتیجه کد پروژه شما تمیز تر می‌شود. اگر به دنبال همه اصول های مربوط به نام گذاری در لاروال هستید، بهترین مرجع برای این کار داکیومنت  لاراول است که به طور کامل و با مثال های زیاد نام گذاری را توضیح می‌دهد.اگر در مورد محتوای مطرح شده در مقاله انتقاد یا سوالی دارید از طریق ایمیل [email protected] با من در ارتباط باشید.


با آرزوی موفقیت٫  علی امیری



278

آماده به چالش کشیدن خودتان هستید ?