یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام خدمت همگی برنامه نویسان عزیز مخصوصا لاراول کارها
همانطور که میدونید چند روزی میشه که به صورت رسمی لاراول ۷ منتشر شده که یک نسخه معمولی هست
من خیلی وقت که دنبال یک جواب قطعی و خوب هستم برای این سوال ولی تا الان خیلی به نتیجه درستی نرسیدم.
در مورد اولین نسخه lts که ۵.۱ بود که خیلی ها میگفتند این قضیه یک جوک بیشتر نیست و خوب روی نسخه ۵.۵ هم بودند کسانی که مثلا توی مدیوم نوشته بودند که نسخه lts یک تله هست. و برنامه نویس ها نباید توی تله lts بیوفتند.
اما خوب با ارائه ورژن ۶ خیلی چیز ها تغییر کرده. به قول آقای @hesammousavi لاراول به یک پختگی رسیده که اومده سمت ورژن بندی معنایی.
حالا با این اوصاف میخواستم بدونم نظر شما عزیزان در این مورد چی هست.
بچسبیم به نسخه lts با پشتیبانی ۲ ساله باگ فیکس و ۳ ساله امنیتی
یا با آخرین ورژن بیاییم جلو و از امکاناتی که توی هر ورژن میاد استفاده کنیم و این هزینه تغییر در هر ۶ ماه به جون بخریم. و به ۶ ماه باگ فیکس و یک سال آپدیت امنیتی کفایت کنیم ؟
به نظر من هر چه زودتر نسخه لاراول رو آپدیت کنیم.. یا تغییرات کم تری روبرو میشیم
تا اینکه مثلا بذاریم یه دفعه چند تا نسخه رو با هم آپدیت کنیم
@ariaieboy @ali.bayat @hesammousavi
تا جایی که من فهمیدم نسخه بندی معنایی یعنی x.y.z (از فیلم توی همین راکت)
یعنی اگه تغییرات در حد چند تا رفع باگ باشه z تغییر میکنه
اگه تغییرات یکم بیشتر بشه y و اگه خیلی تغییرات داشتیم x عوض میشه
درست فهمیدم یا نه؟
بعد چطوری لاراول الان 5 و خورده بود شد 6 بعد شد 7 :|
یعنی بین 6 و 7 خیلی تفاوت هست؟
من که به کل گیج شدم
چرا نسخه ها اینقدر یهویی عوض میشه پس؟
@elyasbeshkani
پیشنهاد میکنم از این سایت دیدن کنید و داکیومنتش که اتفاقا زبان فارسی هم داره را بخونی :
https://semver.org/
یا اینکه ویدئویی که آقای @hesammousavi گذاشتن و توضیح دادن مشاهده کنید:
https://roocket.ir/series/whats-new-in-laravel-6/episode/4
بحث ورژن بندی معنایی خیلی خیلی چیز خوب و رایجی هست و به توسعه دهنده ها کمک میکنه که برنامه هاشون راحت و بدون ترسیدن از خراب شدن توسعه بدهند
توی سیستم x.y.z
بخش z مربوط میشه به تغییرات جزئی و رفع باگ ها که بهش پچ ورژن هم میگن
بخش y که به MINOR version معروفه و موقعی تغییر میکنه که یک فانکشن یا قابلیت جدید به برنامه اضافه میشه و توی عملکرد کلی برنامه تغییری ایجاد نمیکنه.
بخش X که به MAJOR version معروفه موقعی تغییر میکنه که شما در عملکرد کلی برنامه تغییر ایجاد کردید و ممکنه یک فانکشن که قبلا بوده کلا حذف شده باشه یا مثلا مقدار خروجی یک تابع تغییر کنه و...
خوب حالا این ورژن بندی کجا به درد میخوره ؟ جایی که شما یک برنامه دارید که بقیه دارند ازش استفاده میکنند میتونه یک وب سرویس باشه یا مثلا یک فریمورک کامل مثل لاراول
کسی که مثلا داره از لاراول 6 استفاده میکنه میدونه هر آپدیتی با شماره ورژن 6.x بیاد برای برنامش مشکلی بوجود نمیاره در نتیجه بدون مشکل هر ورژنی بیاد را آپدیت میکنه
ولی وقتی ورژن 6 بخواد تبدیل بشه به 7.x اون برنامه نویس میفهمه که حتما یکسری تغییرات ایجاد شده که همخوانی نداشته با ورژن 6 در نتیجه اگر بخواد آپدیت کنه اول میره تغییرات لازم میده بعد آپدیت میکنه به ورژن بالاتر .
و اینجوری خراب شدن برنامه به خاطر آپدیت یک وابستگی به حداقل میرسه
حالا این توی بحثی مثل فریمورک خودش خیلی نشون نمیده چون آپدیتش دست شماست شما میتونید برید از ورژن 4 استفاده کنید آپدیتم نکنید.
ولی وقتی شما از یک وب سرویس استفاده میکنید اگر اون وب سرویس بیاد مثلا اند پوینت یکی از وب سرویس هاش تغییر بده یا خروجی که وب سرویس میده تغییر بده و... و از این ورژن بندی استفاده نکنه یکدفعه میبینی هزارتا برنامه که داشتند با اون وب سرویس کار میکردند میره روی هوا
به همین خاطرم هست که اکثر وب سرویس های معروف از این ورژن بندی استفاده میکنند و اگر تغییراتی داشته باشند که توی عملکرد وب سرویس تاثیر بذاره ورژن جدید ارائه میدهند و به همه کاربران میگن مثلا شما اینقدر تایم فرصت دارید بروزرسانی کنید برنامه هاتون مطابق ورژن جدید و بعد از اون ورژن قدیمی وب سرویسش دان میکنند
@ariaieboy
بله منم اینا رو متوجه شدم
به قول شما توی ورژن 7 حتما یکسری تغییرات ایجاد شده که همخوانی نداره با ورژن 6
یا به عبارت دیگه حالا که ورژن شده 7 حتما در عملکرد کلی برنامه تغییری ایجاد شده و ممکنه یک فانکشن که قبلا بوده کلا حذف شده باشه یا مثلا مقدار خروجی یک تابع تغییر کنه و...
سوالم اینجاس حالا که ورژن از 6 شده 7 یعنی تغییرات زیاد بوده پس دیگه؟
@elyasbeshkani
تغییرات برید داخل پچ نوت لاراول بخونید هست :
https://laravel.com/docs/7.x/releases
و موارد مورد نیاز برای آپدیت هم ذکر شده :
https://laravel.com/docs/7.x/upgrade
اگر فقط بخواهیم بحث لاراول 7 مد نظر بگیریم میشه گفت تغییرات زیاد بوده چون پکیج های سیمفونی به ورژن 5 آپگرید شده قسمت Authentication تغییر داشته و...
اما اگر در حالت کلی بخواهیم در مورد ورژن بندی معنایی صحبت کنیم تغییر شماره ورژن major همیشه نمیتونه بیانگر این باشه که تغییرات خیلی زیاد بوده نه
بلکه این را میگه که ما تغییراتی داشتیم که عملکرد کلی برنامه را تغییر داده و اگر شما از ورژن پایین تر استفاده میکردید بخواهید آپدیت کنید باید برنامه خودتون بر اساس تغییرات بروزرسانی کنید.
به نظر من هر چه زودتر نسخه لاراول رو آپدیت کنیم.. یا تغییرات کم تری روبرو میشیم
تا اینکه مثلا بذاریم یه دفعه چند تا نسخه رو با هم آپدیت کنیم
سلام
@ariaieboy
پیشنهاد من اینه بچسبیم به آخرین ورژن هایی که میده بیرون!
چون هم امکاناتش بیشتره
هم خب از لحاظ امنیتی ، قطعا یه چیزی میدن بیرون ، درست درمونه که میدن بیرون!
خوب نگاه کنید از لحاظ امکانات شاید بگیم آخرین نسخه بهتر باشه
ولی از لحاظ پایداری و همینطور امنیت من احساس میکنم نسخه lts خیلی بهتر باشه چرا ؟
چون یک نسخه با پشتیبانی طولانی مدت هست تمرکز زیاد روش میشه و هرچقدر مشکل امنیتی داشته باشه توی 3 سال پشتیبانی برطرف میشه از طرفی چون خیلی امکانات زیادی بهش اضافه نمیشه تا انتها خوب امکان اینکه باگ امنیتی یا ناپایداری بخواد توش بوجود بیاد کمتر هست.
حالا با این اوصاف به نظر شما ارزش نداره آدم از این پایداری و امنیت و همینطور پشتیبانی طولانی مدت استفاده بکنه و وقتی نسخه جدید lts اومد توی اون یکسال فرصت آدم پروژه را با یک هزینه کمی بیشتر آپگرید کنه به ورژن بالاتر ؟
چون نسخه LTS اینجوری نیست که هیچی بهش اضافه نشه خیلی از امکانات ورژن های میانی گاها به نسخه LTS اضافه میشه و بعدشم مگر چند درصد ویژگی های نسخه های میانی ممکنه توی یک پروژه کاربردی باشه که نیاز باشه به آپدیت در هر 6 ماه ؟
این هم میتونه یک نوع دیدگاه باشه..
اما هر چی فاصله بین این آپگرید کردن بیشتر بشه.. پروسه آپگرید کردن دشوار تر، زمان بر تر و پر هزینه تر میشه
برای مثال آپگرید نسخه ۵.۸ به ۶.۰ خیلی کاری نداره اما آپگرید نسخه ۵.۱ به ۷.۰ میتونه دردسر های خودشو داشته باشه
@elyasbeshkani
در نظر بگیرید که یهویی هم از لاراول 6 نرفتیم تو لاراول 7
خود همین ها هم ورژن بندی دارن مثلا واسه لاراول 7 یادم هست که آخرین نسخه ای که تست کردم
7.28.x بود (عدد آخر یادم نیست) و بعد از این ها رفت به لاراول 8
منتهی این ورژن بندی های minro و patch تو لاراول ذکر نمیشه عموما.
@mrmmg
این ورژن های میانی که میاد برکینگ چنج نداره.
فقط باگ فیکس هست و اضافه کردن فانکشنالیتی جدید و خوب خیلی هاش معمولا توی خیلی از پروژه ها کاربردی ندارند.
ولی خوب آدم اگر بتونه بروزنگهداره و یاد بگیره میتونه احاطه بیشتری داشته باشه روی بخش های مختلف
من فعلا که تعدادی پروژه دارم همش با لاراول ۶ شروع کردم الان بجز یک مورد همش آپگرید کردم به ۸ و خوب سعی میکنم بروز نگهدارم خودم
سلام ، قطعا ورژن LTS !
این یک روش مرسوم روی پروژه های اوپن سورس که از جامعه گسترده خودش کمک میگیره برای تکامل و بهبود هستش. ورژن LTS ارائه میشه برای استفاده های عملیاتی و سازمانی ، بین دو ورژن LTS ورژن هایی که لبه تکنولوژی حرکت میکنن هم ارائه میشه ، این رویه کمک میکنه به پیشرفت و بلوغ هرچه بهتر تلنولوژی اما نهایتا همه این تغییرات به ورژن LTS بعدی منتقل نمیشه و حتی گاهی ممکنه امکاناتی که برداشته شده دوباره برگردونده بشه (مثل تغییر دیدگاه درباره دایرکتوری models) .
حالا به نظر من شما خودتون تصمیم بگیرید که کدام ورژن برای شما مناسبتر هست. من جای شما باشم روی پروژه عملیاتی که کاربرد سازمانی داره هنوز از ورژن 6 LTS استفاده میکنم اما مثلا روی پروژه وب سایت شخصی خودم از ورژنی استفاده میکنم که مثلا بتونم livewire هم روی اون ورژن یادبگیرم. اینجوری برای انتقال به ورژن lts بعدی هم خودتون رو آماده نگه میدارید.
خیلی عالی هست که تاپیک یا قدمت دو سال هنوز داره بازدید میخوره و دوستان نظرشون در مورد این مبحث اعلام میکنند.
بعد گذشت این همه تایم من واقعا به حرف اون مقاله مدیوم که میگفت lts ورژن یک تله هست رسیدم و متاسفانه اکثرا لیدر های سازمان ها تصمیم به استفاده از این نسخه میگیرن که اکثرش هم به دلیل این هست که نمیخواهند هزینه بروزرسانی بدهند.
شاید زمان لاراول ۵ این مسئله قابل درک بود چراکه توی هر ورژن کلی تغییرات بنیادی اعمال می شد و هر شش ماه ما یک ورژن جدید داشتیم و بروزنگه داشتن کد بیس بزرگ خیلی سخت بود ولی از ورژن ۶ به بعد واقعا تغییرات جزیی شده و بیشتر فیچر داره اضافه میشه تا کلا از پایه بخواد بخشی بازنویسی بشه که آپگرید بخواد سخت بشه.
و خوب از لاراول ۹ هم که قرار هست ورژن های جدید سالانه بشه پس واقعا میشه خودمون با آخرین ورژن بروزنگهداریم.
یک معضلی که استفاده از نسخه lts داره این هست که علاوه بر هزینه بروزرسانی خود لاراول که بیشتر میشه هزینه بروزرسانی پی اچ پی و همینطور نگهداری پروژه هم بالاتر میره.
لاراول ۶ از پی اچ پی ۷.۲ به بالا پشتیبانی میکنه. حالا شما فکر کنید یک سازمان از لاراول ۶ و پی اچ پی ۷.۲ استفاده کنه.
نسخه بعدی lts که میشه ورژن ۹ حداقل php 8 میخواد همینجا شما باید کلی هزینه بدید برنامه ارتقا پیدا کنه و سازگار بشه با پی اچ پی ۸ از اون طرف شما بخاطر اینکه از یک ورژن قدیمی استفاده میکردید هم از لحاظ امنیتی دچار مشکل شدید هم از لحاظ پرفورمنسی کلی ضرر کردید.
وقتی میگیم پروژه سازمانی و بزرگ یعنی تعداد کانکشن همزمان و تعداد ریکوئست ورودی خیلی بالا که خوب توی همچین سناریوی فقط فعال کردن jit در ورژن ۸ پی اچ پی میتونه کلی به بهبود پرفورمنسی سایتتون تاثیر بذاره.
از اونور شما اگر از لاراول ۸ استفاده کنید با نصب Laravel/octane و انجام یکسری تغییرات جزیی میتونید پرفورمنس فوق العاده بهتری بگیرید مخصوصا باز توی پروژه های بزرگ تر که ریکوئست زیاد هست و شما از تمام ریکوئست ها سربار بوت لاراول دارید با استفاده از octane حذف میکنید و...
بله شاید بگید بروزکردن کد بیس بزرگ به ورژن های میانی هزینه بر هست ولی اینم باید مد نظر داشته باشید که از اونور توی نگهداری و توسعه مجبورید هزینه بیشتر بدید.
خیلی از پکیج ها و امکانات توی ورژن lts پشتیبانی نمیشه و همین خودش باعث این میشه شما وقت بیشتری بذارید برای توسعه و هزینه بیشتری بپردازید.
خب آخه سوالی که مطرح میشه اینه :
آیا لاراول یا حتی با دید کلانتر خود php گزینه مناسبی برای پروژه های بزرگ هست یا خیر!
در قیاس با تکنولوژی استک هایی مثل پایتون و جاوا که تا سالها پایداری و پشتیبانی از ورژن های گذشته خودشون رو حفظ میکنن PHP با تغییرات بنیادی و به دنبال اون لاراول با تاکید بر پشتیبانی ۱۸ الی ۲۴ ماهه داره قدم به مسیری میزاری که توزیع لینوکس فدورا رفته!
نمیگم بده ، مارکت همچین چیزی ام نیاز داره اما باید بپذیریم نقطه ضعف بزرگ پایداری محسوب میشه.
@alirezadini
بله لاراول و پی اچ پی کاملا برای پروژه های سازمانی و متوسط تا بزرگ مناسب هست. و همین الان داره توی سیستم های بزرگ با روزانه چندین میلیون کاربر استفاده میشه و مشکلی نداره.
در مورد تغییرات کاملا حرف شما ناصحیح می باشد.
در ورژن های قدیمی لاراول و پی اچ پی بله ما تغییرات زیادی داشتیم و گاها ناسازگاری های زیادی دیده میشد.
ولی پی اچ پی از ورژن ۸ به بعد
و لاراول هم از ورژن ۸ به اینور تقریبا تغییرات ساختاری زیادی نداشته و اکثرا آپگرید به ورژن بالا بسیار ساده تر شده.
و به دلیل پختگی فریمورک ریلیز سایکل از ۶ ماه به یکسال افزایش داشته. و ما در طول سال هیچگونه برکینگ چنجی نداریم و بعد از یکسال هم کاربران یکسال کامل وقت دارند تا به ورژن بالاتر کوچ کنند.
در زمینه ارتقا هم ابزار های رایگان مثل rector وجود داره هم ابزار های پولی مانند laravel shift که ارتقا را راحت تر میکنه.
و اینکه میفرمایید نقطه ضعف بزرگ اکوسیستم پایداری هست من کاملا باهاش مخالف هستم. همین الان اپلیکیشن هایی هستند که چندین سال بدون هیچگونه مشکلی و آپدیتی دارند کار میکنند.
و خب فراموش نکنید کل خدماتی که دارید میگیرید رایگان و اپن سورس هست قاعدتا شرکت ها و گروه هایی هستند که پشتیبانی طولانی مدت ارائه میدن با دریافت هزینه مثل https://www.freexian.com/lts/php/ که همچنان دارند php ورژن ۵.۶ به بالا را پشتیبانی میکنند و پچ های امنیتی را پورت میکنند به ورژن های پایینتر و شرکت های بزرگ که تمایل ندارند ارتقا بدن کد بیس میتونند همیشه از این دست سرویس ها استفاده کنند.
و خب تغییر دیگری که داشتیم توی اکوسیستم راه افتادن https://thephp.foundation/ که تا الان تونستند نزدیک یک میلیون دلار حمایت جذب کنند برای استخدام برنامه نویس که به صورت پارت تایم یا فول تایم روی خود پی اچ پی کار کنند و زبان را زنده نگه دارند
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟