json
3 سال پیش توسط json مطرح شد
6 پاسخ

کدنویسی اصولی و استاندارد

سلام دوستان
درباره کدنویسی استاندارد توی لاراول یه چندتا سوال داشتم:
1-من توی کنترلر کاربرهام کدهای زیادی دارم.تقریبا حدود 250 خط کد دارم که همشون هم ضروری هستن و تا جایی که ممکن بوده ریفکتور کردن رو انجام دادم.بنظرتون این تعداد از خط کد غیر استاندارد نیست؟یا اینکه چون واقعا نیاز هستن چاره دیگه ای نیست؟
2-قراره از API دیتای زیادی دریافت کنم.تقریبا باید باهاشون حدود 4 جدول رو توی دیتابیس پر کنم که نزدیک 40 فیلد میشن.به خاطر دیتای زیادشون 4 جدول رو ایجاد کردم و با کمک روابط باهاشون کار میکنم.حالا سوال اینجاست که این دیتا رو به چه شکل ذخیره کنم که بهینه باشه؟همش رو یه جا با استفاده از یک مسیر دریافت کنم و عمل insert رو همزمان توی هر 4 یا 5 جدول انجام بدم یا اینکه دیتا رو بصورت چندین آرایه و آبجکت از مسیرهای جداگانه بگیرم و هر کدوم رو با متد مربوطه خودش ذخیره کنم؟
اصلا این کار اصولیه که این بخش رو به چندین جدول تقسیم کردم یا همه باید توی یه جدول باشن؟
3-میخوام احراز هویت کاربر با sms باشه.نیازی هست که کدهای هسته لاراول رو تغییر بدم یا همین کافیه که بعداز ارسال sms به کاربر و اعتبارسنجی اون، کاربر رو لاگین یا رجیستر کنم؟
4-از پکیج passport استفاده میکنم.استفاده از میدلور auth:api برای امنیت کافیه یا باید موارد بیشتری رو برای امنیت در نظر بگیرم؟
5-برای صفحه اصلی و خانه مجبورم دیتایی رو برگردونم که از چندین جدول باید دریافتشون کنم.مثلا واسه هر آیتم باید از 3 جدول دیتا رو بگیرم.بنظرتون این میتونه مشکل ایجاد کنه یا غیر اصولی باشه و باعث کندی بشه؟
6-در رابطه با جستجوی پیشرفته چطور؟فرضا توی سایدبارمون مثلا 8 تا فیلتر قرار دادیم و کاربر میتونه بر اساس اونا فیلتر کنه دیتا رو.آیا این درسته که یه متد قرار بدیم و 8 متغیر بسازیم و مقدار پیش فرضشون خالی باشه و اگه کاربر یکی رو درخواست کرد ما اون رو مقداردهی میکنیم و جستجو رو از دیتابیس بر اساس اون انجام میدیم.یعنی کد به این شکل میشه.البته در مراحل بعدی کد ریفکتور خواهد شد و این فقط یه مثال هستش که روال کار رو مشخص میکنه.. آیا این روش بهینه و اصولی هستش؟بهترین راه حل چیه؟
توضیح تصویر رو وارد کنید

تمامی سوالات بر این فرضه که ترافیک سایت بالا هستش.
خیلی ممنون
@ali.bayat
@milad
@mhyeganeh
@Rp76
@mehdi.shahabbasian


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
3

۱. راه های زیادی برای ریفکتور کنترلر ها هست.. از کوئری آبجکت ها گرفته تا استفاده از تریت ها و Strategizing و پالیسی و غیره
اما پایه ای ترین کاری که میشه انجام داد اینه که داخل کنترلرها فقط ۷ متد restfull رو داشت (index, show, update, edit...)
اگر داخل کنترلر متدهایی داری مثل storeUserCredit -> این یعنی اینکه میتونی اون لاجیک رو در کنترلر جدایی بگذاری مثلا UserCreditController@store

۲. این مورد کاملا به وب سرویست بستگی داره. اگر داده ها یک جا میاد خوب شما هم باید همه رو یکجا بگیری و ذخیره کنی. اگر هم داده ها تیکه تیکه به سمت وب سرویست فرستاده میشه میتونی جدا جدا ذخیرشون کنی

۳. در کنار احراز هویت لاراول میتونی سبک پیام کوتاه رو هم پیاده کنی و بعد با متدهای لاراول کاربر رو لاگین کنی

۴. کاملا کافیه

۵. رابطه های مورد نظر رو eager-load کن و فقط فیلدهایی که لازم داری برگردون

۶. اگر اصلاعاتی که قراره برگردونی در جوادل مختلفند و ترافیک خیلی بالایی هم داری، استفاده از الستیک گزینه جالبیه.. البته میتونی تست کنی شاید همون جستجوی معمولی هم کارت رو راه بندازه


یه راهنمایی کلی: با پرسیدن سوالات بصورت جدا از هم، معمولا جواب های کاملتری میگیری


json
تخصص : آزاد
@JSON 3 سال پیش آپدیت شد
0

تشکر @ali.bayat
فقط در رابطه با مورد ششم...
این توضیحاتی که من دادم روش درستیه واسه سرچ پیشرفته?
چون مثلا فرض کنید ما ٨ معیار واسه فیلتر دیتا داریم,بعد بیام واسه هر معیار یه شرط بزارم که ایا فرستاده شده یا نه.اگه فرستاده شده بود که مقدار دهیش میکنم و کویری رو بر اساس اون دیتا انجام میدم.حالا مثلا ممکنه از چندین کویری و چندین جدول دیتا رو بگیرم...روش درستیه? بهترین روش واسه این نوع جستجوها چیه?
چندین منابع انگلیسی هم نگاه کردم اونا هم شرط ها رو به همین شکل گذاشته بودن...
به تصویر دقت کنین به همرا توضیحات
ممنون


محمد عباسی
تخصص : برنامه نویس
@mohammad.v184 3 سال پیش مطرح شد
2

سلام
برای مورد اول پیشنهاد می کنم از پکیج لاراول میکروسکوپ(لینک گیتهاب) استفاده کنید
که برای ریفکتور کردن کد های کنترلر خیلی کاربردی هست
کارکردش هم به این صورت هست که اول با دستورات:

composer require imanghafoori/laravel-microscope --dev
php artisan vendor:publish

با استفاده از کامپوزر پکیج رو نصب می کنید و بعد با استفاده از دستور :

php artisan check:all

لاراول میکروسکوپ شروع به اسکن کل کدهاتون می کنه و مواردی مثل اصول و دیزاین پترن های کد نویسی صحیح و مشکلات و ارور ها کد را بهتون نشون میده و پیشنهاد تصحیح میده که اگر تایید کنید خودش به صورت خودکار موارد تصحیح می کنه
برا توضیحات و مستندات بیشتر پیشنهاد میکنم صفحه گیتهاب پروژه را نگاه کنید


json
تخصص : آزاد
@JSON 3 سال پیش مطرح شد
json
تخصص : آزاد
@JSON 3 سال پیش مطرح شد
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
1

در کل روش جستجو روی جداول دیتا بیس همینه
اگر جدول محصولات به درستی ایندکس گذاری شده باشه نباید با در حجم بالای داده هم به مشکل خاصی برخورد کنی
حالا کار دیگه ای که میتونی انجام بدی اینه که تنها اطلاعات لازم رو از اون جدول بگیری یا اگر قرار داده های چند جدول رو بگیری، بین جداول Join بزنی و باز هم تنها فیلد های لازم رو بگیری..


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام