نمایش نتایج 1 تا 40 از 47

نام تاپیک: مزیت های فریم ورک لاراول Laravel چیست ؟!

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8

    نقل قول: مزیت های فریم ورک لاراول Laravel چیست ؟!

    من خودم شخصاً تجربه کار (نه شخصی بلکه یک پروژه نسبتاً بزرگ تجاری) با فریمورکهای Phalcon و Yii و Laravel و Zend رو داشتم و با Symfony هم مدتی هست دارم کار میکنم بطور خلاصه مزیتهای هرکدوم رو ازنظر خودم میگم:

    1- Yii
    • استفاده بسیار زیاد و کاربردی از امکانات وب 2 بخصوص AJAX بصورت توکار بدون نیاز به افزونه خاص و کدنویسی اضافه
    • پرفورمنس بسیار بالا (بنچمارک توی پروژه های مشابه بطور شخصی گرفته شده و به اعداد و ارقام سایتهای رسمی فریمورکها اکتفا نکردم)
    • Code Generator بسیار منعطف با ظاهر ساده که توی نسخه 2 حتی به شما امکان نوشتن Extension رو هم میده
    • تیم توسعه نسبتاً بزرگ که باعث افزایش سرعت در پاسخدهی به مشکلات و رفع باگها میشه
    • امکانات متنوع داخلی مثل روشهای مختلف Cache و معماری Relational Active Record و ذخیره سشن در دیتابیس بطور خودکار همراه با ایجاد جدول مربوطه (فقط با 1 خط تنظیمات)
    • ساختار ساده و قابل درک کدنویسی که شباهت زیادی به ساختار Code Igniter داره
    • پشتیبانی از Migration با کاربرد بسیار ساده برای مدیریت نسخه های مختلف دیتابیس
    • الگوی فوق العاده ساختار Layout ها با قابلیت تعریف بصورت آبشاری و قابلیت ساخت Theme و سوئیچ کردن Theme در زمان دلخواه و امکان تعریف قالب مختلف برای هر ماژول بصورت جداگانه
    • استفاده از موتور قالب Twig در نسخه 2 که امکاناتش رو شخصاً یک سر و گردن بالاتر از Blade در لاراول میدونم (باز هم نظر شخصی)

    2- Laravel
    • ساختار کد ساده تر و خلاصه تر نسبت به بقیه فریمورکها
    • معماری Eloquent که ساختاری مشابه AR توی Yii تولید میکنه (هرچند شخصاً توی کارهای پیشرفته دیتابیس، به اندازه AR کارآمد ندیدمش - نظر شخصی)

    3- Symfony
    • ساختار فوق العاده مهندسی شده که برای پروژه های بزرگ، اون رو به یک فریمورک بی نظیر تبدیل میکنه (هرچند توی پروژه های کوچک یعنی بیش از 90 درصد پروژه های ایرانی، دست و پاگیره و ضروری نیست)
    • سرعت نسبتاً بالا که با کمک OPCache و... اون رو به یکی از سریعترین فریمورکها تبدیل میکنه
    • امکانات خوب و متنوع و قدرت داخلی زیاد در هسته خود فریمورک (بدون درنظر گرفتن افزونه ها)

    4- Zend

    • قدرت و تنوع فوق العاده امکانات (در زمینه قدرت Zend هیچ فریمورکی به گرد پاش هم نمیرسه - شک نکنید)
    • سازگاری فوق العاده با Zend Server و Zend Guard

    5- Phalcon
    • سرعت فوق العاده زیاد (به دلیل نوشته شدن با ++C و بصورت افزونه برای PHP که البته روی خیلی از هاستهای اشتراکی، امکان نصب و استفاده از اون مقدور نیست)
    • ساختار کدنویسی ساده و روان و قابل فهم
    • امکانات نسبتاً زیاد
    • مهندسی نسبتاً خوب و قابل قبول در پیاده سازی امکانات و ارتباط بین اجزای فریمورک در ساختار داخلی


    اون دوستانی که دم از لذت کدنویسی میزنن، به این نکته دقت کنن که باید بیشتر به لذت بردن از زندگی هم فکر کنن و برای لذت بردن از زندگی، باید پروژه های بیشتری رو به شکل کارآمد در مدت زمانی که توان و انرژی کارکردن دارین، انجام بدین. عذر میخوام رک صحبت میکنم ولی واقعاً الان سرتون باد داره. وقتی به سن و سال من و امثال من رسیدین، میفهمین که لذت واقعی یعنی اینکه توی 10 سال اولی که وارد این شغل شدین، بارتون رو ببندین وگرنه بعدش فقط حسرت زمانی رو میخورین که صرف نوشتن یک سیستم لاگین امن کردین که از کدنویسیش لذت میبردین درحالی که همون کد با ساختار بهتر و بهینه تر، بطور آماده توی یک فریمورک خوب وجود داشته. اینقدر توی رؤیا سیر نکنید.

    دوستی که گفتن اگه قراره گریدویو و... امکانات باشه خود بریم با ASP کار کنیم، واقعاً حرفشون صحیح نیست. ASP.NET بازمتن نیست ولی فریمورکهای PHP اینطور نیستن. امکانات رو دارن ولی اگه خواستین ببینین چی به چیه یا تغییرشون بدین، میتونین خودتون کدهاشون رو بررسی کنین. این مسئله درمورد همه فریمورکهای فوق (بجز فالکن که با ++C نوشته شده) صدق میکنه چون برای سردرآوردن از کدهاشون، نیازی به یادداشتن هیچ زبانی بجز خود PHP ندارین.

    یه جای دیگه گفتن Code Generator مهم نیست. چطور مهم نیست؟ چرا وقتی ابزاری هست که فرمها و مدلها و کنترلر و... رو برای شما خودکار تولید میکنه، استفاده از اون رو بد میدونید؟ چرا از اینکه برنامه نویس مجبور بشه وقتش رو بجای اینکه روی منطق برنامه بگذاره، صرف تکرار یکسری کارهای روتین توی هر پروژه کنه، اونم برای هر جدول دیتابیس بصورت مکرر و خسته کننده که فقط باعث میشه پروژه رو بجای 2 هفته، 2 ماهه تحویل بده و تازه ریسک خطاهای انسانی رو هم افزایش میده، بعنوان یک امتیاز و لذت کدنویسی! یاد میکنید!!!

    نظرسنجی که توی SitePoint اعلام شد، ازطرف خیلیها مردود اعلام شده و برخی از دلایلش رو هم دوستان ذکر کردن. اصلاً از کی تا حالا نظرسنجی ملاک انتخاب فریمورک شده؟ الان توی ایران بیان بگن چه ماشینی استفاده میکنین، اکثریت میگن پراید ولی واقعاً پراید بهترین ماشینه؟ تازه اگه بحث هزینه رو کنار بگذاریم و خیلی بهش لطف کنیم میشه محبوبترین ماشین، نه بهترین ماشین. وقتی میخواین فریمورک انتخاب کنین، باید به بنچمارکها و صحبتهای فنی مراجعه کنید نه اینکه به نظرسنجیهایی استناد کنید که آمار و ارقامش اصلاً معلوم نیست و آمار همه فریمورکها بجز فریمورکی که مورد علاقه برگزارکننده نظرسنجی بوده رو شکستن و توی نظرسنجی سال قبل هم با روش مشابهی اون رو برنده اعلام کرده رو ملاک انتخاب قرار بدین. اونم درحالی که بعد از اتمام نظرسنجی، قسمت Community سایت رو کلاً غیرفعال کردن و موقع واردشدن صفحه سفید میاد تا چند ماه که نتونن اعتراضها رو ثبت کنن. واقعاً برای سایتی مثل Sitepoint غیرفعال بودن 2 ماهه بخش Community چه دلیلی میتونه داشته باشه بجز گرفتن امکان ثبت نظرات مخالفین؟ یعنی بلد نبودن مشکل رو رفع کنن یا ازش خبر نداشتن؟ بگذریم

    اون دوستی که گفتن سایت وزیر ورزش و... ساختن و امکانات Yii رو کاربردی ندونستن، میشه بگن اگه اینها امکانات نیست، پس چی امکاناته؟ باید همه چیز رو خودمون دستی بسازیم؟ وقتی GridView هست و خوب هم کار میکنه و راحت هم میشه Customize کرد و کدهاش هم بازه که ببینید چی به چیه، مگه مریضیم که خودمون از اول بنویسیم و تازه بشینیم اشکالاتش رو رفع کنیم فقط برای اینکه میخوایم از کدنویسی لذت ببریم؟ لذت رو شما تو چی تعریف میکنید؟ توی انجام کارهای سخت و طاقت فرسا یا کسب درآمد بیشتر و انجام کار با کیفیت تر در مدت کمتر؟ جالب که CI رو که امروزه یک فریمورک لخت ازنظر امکانات هسته محسوب میشه، با Yii مقایسه میکنید. باز اگه میگفتین CakePHP آدم دلش نمیسوخت.

    جالبه اگه Yii امکانات نداشت، همین دوستان میومدن و از امکانات فریمورک موردنظرشون میگفتن و Yii و امثال اون رو میکوبیدن و محکوم به نداشتن امکانات میکردن ولی حالا که امکانات عالی داره و با 2 خط کد میشه Pagination با AJAX ساخت و کلی کارهای دیگه رو به راحتی انجام داد، میگن امکانات آماده ای که داره باعث میشه لذت کدنویسی از آدم گرفته بشه. خوب یکمرتبه بفرمایید با اسمبلی کدنویسی کنید که حسابی لذت ببرین!

    دوست دیگری اومدن از امکانات احراز هویت توی لاراول 5 گفتن درحالی که Yii از سال 2008 سیستم UserIdentity رو داشته که خیلی کارکردن باهاش راحته و کامپوننت User که میشه چند نمونه ازش تعریف کرد با امکانات مختلف و پیشوندهای سشن متفاوت تا فرضاً همزمان مدیر و کاربر عادی بتونن توی یک سیستم لاگین کنن و سشنهاشون با هم قاطی نشه. امکاناتی مثل state و flash message و... که توی Yii هست رو همچنان توی بقیه فریمورکها به این راحتی ندیدم.

    سیستم Autoload هوشمند و import و Lazy Loading و امکان انتخاب بین حالت Lazy و Eager که در Yii هست رو هیچ فریمورکی به این راحتی فراهم نکرده. اونوقت از معماری Facade که توی Yii هم وجود داره بعنوان امتیاز یاد میکنید؟! واقعاً کدوم مهمتر و کاربردی تره؟ Facade یا مصرف هوشمند حافظه؟ اونوقت واقعاً Facade رو نمیشه توی Yii پیاده سازی کرد؟ تست کردین که بعنوان مزیت برای لاراول مطرحش میکنید؟

    یکی از مهمترین ایرادات لاراول بنظر من همین ساختار Routing اون هست. یک فریمورک (دقت کنید که معناش میشه چهارچوب کاری) وقتی قراره با MVC کار کنه دیگه نباید اجازه بده اسپاگتی کد بنویسید. سیستم Routing و مدیریت Requestها در لاراول به شما اجازه میده هر درخواستی رو به هر شکلی که میخواین جواب بدین. یکی با MVC کار کنه، یکی همونجا Anonymous Function داشته باشه و با Closure کار کنه، یکی درخواست رو به یه فایل PHP ساده بفرسته و... که باعث میشه اگه یکی دیگه بجز شما بخواد پروژه رو دست بگیره و ادامه بده، کلی توی مسیرها سروکله بزنه تا بفهمه به یه درخواست خاص، داره کجا جواب داده میشه درحالی که توی Yii همه چیز بصورت MVC هست و یکجا توی فایل تنظیمات و یا (با یک خط کد) توی یک فایل جداگانه، مسیرها رو مشخص میکنید و هم لینکهایی که خود فریمورک تولید میکنه بطور خودکار اصلاح میشن و هم لینکهایی که از کاربران دریافت میکنه، ساختارش عوض میشه. هروقت هم خواستین ببینین یه درخواست کجا داره جواب میگیره، کافیه همون بخش از تنظیمات رو نگاه کنید تا کنترلر و اکشن مربوطه مشخص بشه و خارج از کنترلر و متدهای اکشن هم هیچ جایی نمیتونید به درخواستهای کاربران جواب بدین. حتی درخواستهای AJAX هم از این قاعده پیروی میکنن.

    Yii به راحتی میتونه از امکانات هر فریمورکی که از کامپوزر پشتیبانی میکنه استفاده کنه. برای مثال بخشهایی از فریمورک Zend یا Laravel و... رو که سودمند میدونید، داخل فریمورک Yii استفاده کنید و حتی نیاز نیست یک خط از کدهای اون بخش از فریمورک دیگه رو دستکاری کنید. برای مثال از کامپوننت Zend Feed توی Yii استفاده کنید و کار با Zend Framework رو با طعم Yii تجربه کنید و از سختی های نصب و بارگذاری و یادگیری خود فریمورک Zend هم خلاص بشین.

    پرفورمنس Yii2 رو با کمک OPCache تا حالا تجربه کردین؟ اینکه میشه روی همون سخت افزار قبلی از یک فریمورک استفاده کنید که به شما امکان بارگذاری سایتی با حداقل دوبرابر بار سرور و ترافیک و درخواست و بازدیدکننده و... رو میده، چیز بدیه؟ پس چرا وقتی صحبت از پرفورمنس Yii میشه توجه نمیکنید یا میگین زیاد مهم نیست؟ مگه بجز سرعت و بهینگی کار سایت چیز دیگری هم مهمه؟ وقتی صحبت از سرعت Phalcon میشه همه به احترامش سکوت میکنن درحالی که این نکته که توی هاست اشتراکی (یعنی 70 درصد پروژه ها) قابل نصب نیست چون اصلاً اجازه نصب نرم افزار و پلاگین برای PHP و... ندارین. حالا Yii اومده با اینکه با PHP نوشته شده، سرعتی بالاتر از بقیه ارائه کرده و به فالکن نزدیک شده ولی کسی اهمیت نمیده، فقط بخاطر اینکه سروصدا درمورد لاراول بیشتره یا (شاید) اسمش قشنگتر تلفظ میشه و کلاس بیشتری داره.

    در پایان تأکید میکنم اینکه نظر من روی فریمورک Yii هست یک موضوع شخصیه و به نظر تمام دوستان در کار با فریمورک محبوبشون احترام میگذارم ولی خواهش میکنم توی نقدهاتون، منصفانه قضاوت کنید و چیزهایی نگین که باعث بشه مجبور به پست گذاشتن به این شکل بشیم. لاراول امکانات خیلی خوبی داره و فریمورک خوبی هم هست. فالکن هم همینطور. همینطور سیمفونی و زند ولی هرکدوم امکانات خاصی دارن که بهتره روی همونها تمرکز کنید نه اینکه امکانات بقیه فریمورکها رو غیر سودمند بدونید و سعی در کمرنگ نشون دادنشون کنید. اونهم درحالی که واقعاً سودمند و کاربردی هستن.

    شرمنده که طولانی شد. اگه دوستان حرفی دارن آماده جواب دادنم وگرنه تاپیک همینطوری مختومه بشه و خود استارتر و بقیه خوانندگان تصمیم بگیرن هم بد نیست.
    آخرین ویرایش به وسیله MMSHFE : شنبه 12 اردیبهشت 1394 در 12:41 عصر دلیل: تکمیل توضیحات و اصلاح برخی اشتباهات نگارشی

تاپیک های مشابه

  1. مبتدی: مقایسه بین فریم ورک های laravel و yii
    نوشته شده توسط 2xx2xx در بخش PHP
    پاسخ: 7
    آخرین پست: شنبه 29 فروردین 1394, 09:09 صبح
  2. سوال: ساخت cms با استفاده از کامپوننت های فریم ورک ها
    نوشته شده توسط MRmoon در بخش PHP
    پاسخ: 2
    آخرین پست: یک شنبه 22 تیر 1393, 09:02 صبح
  3. مبتدی: سئوال در خصوص فریم ورک لاراول
    نوشته شده توسط blognevis در بخش PHP
    پاسخ: 2
    آخرین پست: دوشنبه 13 خرداد 1392, 23:49 عصر
  4. پاسخ: 20
    آخرین پست: دوشنبه 04 تیر 1386, 18:24 عصر
  5. مراجع و رفرنس های برنامه نویسی در دات نت فریم ورک
    نوشته شده توسط Mahdi_Delphi در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 4
    آخرین پست: جمعه 05 خرداد 1385, 13:43 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •