PDA

View Full Version : آیا استفاده از اصول MVC باعث کاهش سرعت کد میشه؟



hsgpro
یک شنبه 16 آذر 1393, 13:54 عصر
سلام دوستان
من به php مسلطم اما تا به حال طبق اصول MVC کار نکردم.من برام سرعت اجرای کد ها و در نتیجه سرعت سایت خیلی مهمه می خواستم بدونم با توجه به اینکه در حالت MVC تکه کد ها به صورت فایل های جدا در میاد آیا باعث کاهش سرعت اجرای کد میشه؟ چون مسلماً مفسر php باید بین چندین فایل بگرده تا آخر سر خروجی آخر رو نمایش بده اگر باعث کاهش سرعت میشه چرا همه دوست دارن MVC رو یاد بگیرن و طبق اصول اون کد نویسی کنند؟
ممنون میشم راهنماییم کنید.

MMSHFE
یک شنبه 16 آذر 1393, 14:40 عصر
چون همه چیز فقط سرعت اجرای سایت نیست و چند میلی ثانیه اختلاف سرعت ارزش این رو نداره که فاز پشتیبانی و توسعه پروژه رو برای خودتون تبدیل به کابوس کنید. به قول یکی از دوستان، برنامه نویس واقعی کسیه که کدی بنویسه که آدم ازش سر در بیاره (نوشتن کدی که کامپیوتر بفهمه زیاد سخت نیست).

hsgpro
یک شنبه 16 آذر 1393, 14:49 عصر
درسته اما به نظرتون یعنی نمیشه تو حالت معمولی طوری کد نوشت که از نظر همه قابل فهم باشه؟ مثل کامنت نویسی، Tab تو Tab کردن و...

MMSHFE
یک شنبه 16 آذر 1393, 15:10 عصر
میشه ولی به نظر خودتون برای هر کسی که بخواد از سیستم شما سر در بیاره، کدوم راحتتره: شکستن آدرس به بخشهای مختلف و تشخیص کنترلر و متد (اکشن) و پیداکردن منطق برنامه از اونجا یا بررسی ساختار ifها و switchهای مختلف توی index یا بررسی دستی کلی فایل مختلف؟ بعلاوه فقط بحث سادگی فهمیدن نیست. مسئله اصلی راحتی توسعه و ویرایشه. توی MVC شما اگه بخواین ظاهر کار رو تغییر بدین فقط ویوها رو اصلاح میکنید. اگه بعد از مدتی تصمیم گرفتین بجای MySQL از یک DBMS دیگه استفاده کنید، فقط با مدلها سروکار دارین. اگه منطق کار نیاز به تغییر داشته باشه ولی شکل ظاهری صفحات تغییر نکنه، فقط کنترلرها رو اصلاح میکنید. این که چیز بدی نیست. دقت کنید که برنامه نویسی همینطوری به خودی خود شغل سخت و پردردسریه و تا جایی که ضروری نیست، رفاه خودتون رو در کار، فدای راحتی CPU و RAM نکنید چون اونها هستن که برای خدمت به من و شما ساخته شدن نه اینکه ما خودمون رو فدای این کنیم که CPU مقدار 0.5 درصد بیشتر از قبل کار نکنه (مگه اینکه شرایط پروژه واقعاً چنین حدی از کارآیی رو نیاز داشته باشه که تازه همونم توی MVC میشه با بهره گیری مناسب از autoload و ساختارهایی مثل lazyloading و include_path و... بدست آورد).

hsgpro
یک شنبه 16 آذر 1393, 15:27 عصر
درسته کاملاً حق با شماست متاسفانه تو دوره و زمونه ما اشتباهاً انسان ها در خدمت تکنولوژی هستن به جای اینکه تکنولوژی در خدمت انسان ها باشه.
حق با شماست به خاطر یکم سرعت بیشتر خودمون رو رنج بدیم کار منطقی نیست.

خب الان من اصلاً با اصول و ساختار MVC آشنا نیستم برای یادگیری اصول MVC چه مرجعی رو پیشنهاد میدید فرقی نمیکنه کتاب، سایت، فیلم و... باشه فقط خوب آموزش داده باشه و کامل باشه.

MMSHFE
یک شنبه 16 آذر 1393, 15:45 عصر
توی همین سایت مطلب زیاده. به بخش فرعی آموزشهای دنباله دار مراجعه کنید. آقای جنتی مجموعه آموزشی خوبی در این زمینه تهیه کردن. توی پکیج آموزش تصویری PHP (http://packages.ncis.ir/php) خودم هم به MVC و خیلی از الگوهای طراحی دیگه اشاره شده و یک میکروفریمورک با این الگوی طراحی ساخته میشه.

MMSHFE
یک شنبه 16 آذر 1393, 15:54 عصر
راستی داشت یادم میرفت. اگه نمیخواین هزینه کنید و زبان انگلیسیتون بد نیست، کتاب زیر میتونه خیلی خوب باشه:
http://bookzz.org/dl/2075112/1cf9cb

hsgpro
یک شنبه 16 آذر 1393, 15:57 عصر
آقا فقط یه سوال من این لینک http://phpro.ir/?p=1679 رو که خوندم متوجه شدم یه سری پارامتر مربوط به view و controller باید توی url صفحه باشه حالا سوال من اینه نمیشه این پارامتر ها نباشن؟

من یه پروژه دارم که فقط یه متغیر رو از متد GET میگیره و بر اساس اون یه متغیر اتصالی به دیتابیس ایجاد میکنه و چیزی رو نمایش میده حالا می خواستم بدونم اگه بخوام این پروژه رو از حالت معمولی به اصول MVC تبدیلش کنم باید تغییراتی در کدش بدم؟ باید url اونطوری باشه که تو لینک بالا توضیح داده؟ نمیشه از همین یه متغیری که از متد GET ساختم استفاده بشه؟

بعد سوال آخرم هم اینه آیا الزاماً باید اسمی از model - controller و view در url ها یا آدرس های فایل های php بیاد؟

MMSHFE
یک شنبه 16 آذر 1393, 16:01 عصر
نه دیگه نمیشه. توی MVC یک ساختار مشخص داریم و برای همینه که کار رو راحت میکنه. مثلاً وقتی میگیم:

mysite.com/project/view/id/5
یعنی اینکه برو توی کنترلر ProjectController و متد actionView رو صدا بزن (فرضاً) و بهش متغیر id$ رو با مقدار 5 بعنوان پارامتر ورودی بده. همونطور که میبینید، خود کلمات controller و view و model توی آدرس دیده نمیشن. البته ساختار لینکها دست خودتونه و فرضاً میتونید اینطوری هم لینک بسازین:

mysite.com/index.php?route=project/view&id=5
درواقع MVC فقط میگه منطق برنامه توی کنترلرها، نمایش اطلاعات توی ویوها و کار با دیتابیس هم توی مدلها باشه. دیگه کاری به بقیه ساختار پروژه شما نداره (URL خوب داشتن ربطی به MVC نداره و برای SEO سایتتون مناسبه).

Mohammadsgh
یک شنبه 16 آذر 1393, 22:08 عصر
سایت phppro.com هم یه آموزش ساخت فریم ورک با mvc رو گذاشته که خیلی خوب و جالبه اگه تونستید حتما بخونید:کف:

beh3000
دوشنبه 17 آذر 1393, 08:27 صبح
این سایت رو از کردم صفحه اصلیش هیچی نداره چجوریه ؟!!!!

hamedarian2009
دوشنبه 17 آذر 1393, 10:04 صبح
سایت phppro.com هم یه آموزش ساخت فریم ورک با mvc رو گذاشته که خیلی خوب و جالبه اگه تونستید حتما بخونید:کف:

با نهایت احترام بهتره در نوشتن پاسخ دقت داشته باشین چون خیلی های دیگه می بینن و سردرگم میشن اصلا سایتی به این نام توی وب نداریم
احتمالا منظورت همون phpro.org معروف هست که نسخه کپی ایرانیش phpro.ir هست و احتمالا هم منظورت این مقاله هست http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

MMSHFE
دوشنبه 17 آذر 1393, 10:05 صبح
شاید منظورشون این لینک بوده: http://phpro.ir/category/mvc-%D8%AF%D8%B1-php

Mohammadsgh
دوشنبه 17 آذر 1393, 10:27 صبح
با نهایت احترام بهتره در نوشتن پاسخ دقت داشته باشین چون خیلی های دیگه می بینن و سردرگم میشن اصلا سایتی به این نام توی وب نداریم
احتمالا منظورت همون phpro.org معروف هست که نسخه کپی ایرانیش phpro.ir هست و احتمالا هم منظورت این مقاله هست http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
درسته.منظورم این بود ولی چون چند ماه پیش رفتم یادم رفته بود.پوزش:لبخند:

php_zone
دوشنبه 17 آذر 1393, 15:25 عصر
بعضی مواقع چرا , چون دارید روال اجرای کد رو کمی پیچ در پیچ میکنی !
در کل mvc و حتی کلاس نوشتن هیچ وقت لازم نیست و اصلا برای هر کاری توصیه نمیشه ...
چون هم سرعت کار رو پایین میاره و هم الکی پروژه پیچیده میشه !

hamedarian2009
دوشنبه 17 آذر 1393, 16:21 عصر
بعضی مواقع چرا , چون دارید روال اجرای کد رو کمی پیچ در پیچ میکنی !
در کل mvc و حتی کلاس نوشتن هیچ وقت لازم نیست و اصلا برای هر کاری توصیه نمیشه ...
چون هم سرعت کار رو پایین میاره و هم الکی پروژه پیچیده میشه !

اجازه بدین من حرف شمارو قبول نداشته باشم استفاده از شی گرایی و MVC باعث میشه سرعت توسعه چند برابر بشه و اتفاقا برنامه از پیچیدگی خارج میشه و هرکسی غیر از شما هم میتونه از کدهاتون سردربیاره و تو بحث debug کردن هم کارتون خیلی راحت میشه یه جورایی همه چی دم دسته

ravand
دوشنبه 17 آذر 1393, 17:29 عصر
من وقتی وردپرس رو توی خود سیستمم هم نصب میکنم وقتی اجراش میکنم خیلی دیر صفحه ای رو باز میکنه. من فکر میکنم ادم بدون فریم ورک و با کدنویسی ساده هم میتونه اسکریپتی بنویسه که همه ازش سر در بیارن. من اونقدر ساده کدنویسی میکنم که بعید میدونم کسی باشه که ازش سر در نیاره. تازه توضیحاتم براش می نویسم. ولی بعضی از افراد می بینم رویه گرا می نویسن ولی اصلا ادم چیزی از کدنویسیشون سر در نمیاره.

php_zone
سه شنبه 18 آذر 1393, 09:01 صبح
اجازه بدین من حرف شمارو قبول نداشته باشم استفاده از شی گرایی و MVC باعث میشه سرعت توسعه چند برابر بشه و اتفاقا برنامه از پیچیدگی خارج میشه و هرکسی غیر از شما هم میتونه از کدهاتون سردربیاره و تو بحث debug کردن هم کارتون خیلی راحت میشه یه جورایی همه چی دم دسته

اجازه بدید من هم حرف شما رو قبول نکنم :لبخندساده:
چون به اون 2 کلمه قرمز رنگ توجه نکردی ...