برنامه برای ریاکت ۱۸
June 8, 2021 by Andrew Clark, Brian Vaughn, Christine Abernathy, Dan Abramov, Rachel Nabors, Rick Hanlon, Sebastian Markbåge, and Seth Webster
تیم ریاکت برای به اشتراک گذاشتن چند بروزرسانی هیجان زده است:
- ما کار بر روی انتشار ریاکت نسخه ۱۸، که نسخه اصلی بعدی خواهد بود را شروع کردهایم.
- یک گروه کاری ایجاد کردهایم تا به آماده کردن جامعه ریاکت برای پذیرش تدریجی قابلیت های جدید ریاکت ۱۸ بپردازد.
- یک نسخه آلفا انتشار دادهایم تا نوسیندگان کتابخانهها بتوانند این نسخه را امتحان کرده و نظرات خود را به ما انتقال دهند.
این بروزرسانی ها به طور اصلی نگاهدارندگان کتابخانههای شخص ثالث را درنظر گرفته است. اگر شما در حال یادگیری، تدریس و یا استفاده از ریاکت برای ساختن برنامه های کاربری هستید، میتوانید به سادگی این پست را در نظر نگیرید. با این وجود اگر کنجکاو هستید، از بحث شما در گروه کاری ریاکت ۱۸ استقبال میشود.
چه چیزهایی در ریاکت ۱۸ میآیند؟
زمانی که ریاکت ۱۸ منتشر شود، شامل بهبودهایی قابل لمس در همان لحظه اول (مانند automatic batching)، رابطهای برنامهنویسی (API) جدید (همانند startTransition
)، و یک streaming server renderer جدید با پشتیبانی از React.lazy
خواهد بود.
این قابلیتها به لطف مکانیزم جدید انتخابی که در حال اضافه کردن به ریاکت ۱۸ هستیم ممکن شدهاند. این مکانیزم رندر همزمان (concurrent rendreing) نام دارد و به ریاکت اجازه میدهد تا چندین نسخه از رابط کاربری (UI) را به طور همزمان آماده کند. با اینکه این تغییر به طور عمده در پشت پرده اتفاق میافتد، اما قابلیت های جدیدی را برای بهبود کارآرایی نرم افزار شما (جه کارایی حقیقی و چه کارایی قابل درک در حین کار با نرم افزار) فراهم میکند.
اگر در حال دنبالکردن تحقیقات در مورد آینده ریاکت بودهاید (که البته ما چنین توقعی از شما نداریم!)، ممکن است چیزی به اسم “concurrent mode” (مد همزمان) به گوشتان خورده باشد، یا اینکه این ممکن است اپ شما را بشکند. در جواب به این بازخورد از جامعه ریاکت، ما استراتژی بروزرسانی را در راستای پذیرش تدریجی بازطراحی کردیم. به جای یک “مد” همه یا هیچ چیز، رندر همزمان (concurrent rendring) تنها برای بروزرسانیهایی فعال خواهند بود که توسط یکی از قابلیتهای جدید استفاده شده باشند. در عمل، این به معنی آن است که شما میتوانید ریاکت ۱۸ را بدون بازنویسی بپذیرید و قابلیت های جدید را با سرعت خودتان امتحان کنید.
یک استراتژی پذیرش تدریجی
از آنجایی که همزمانی در ریاکت ۱۸ اختیاریست، تغییرات شکننده بزرگی در رابطه با رفتار کامپوننتها به محض انتشار وجود نخواهد داشت. شما میتوانید با کمترین تغییر و یا بدون تغییری در کدهای اپلیکیشن خود، ریاکت را به نسخه ۱۸ ارتقا دهید، با زحمتی همانند انتشار یک نسخه جدید معمولی ریاکت. بر اساس تجربه ما در تبدیل چندین اپ به ریاکت ۱۸، انتظار داریم کاربران زیادی بتوانند در یک بعدازظهر ارتقا دهند.
ما با موفقیت قابلیتهای همزمان را به دهها هزار از کامپوننتها در فیسبوک آوردهایم و در تجربه ما، متوجه شدیم که اکثر کامپوننتهای ریاکت بدون هیچ تغییر اضافهای کار میکردند. ما به مطمئن شدن اینکه این ارتقا برای کل جامعه ریاکت روان است متعهدیم، بنابراین امروز گروه کاری ریاکت ۱۸ را اعلام میکنیم.
همکاری با جامعه ریاکت
ما درحال امتحان کردن چیز جدیدی برای این انتشار جدید هستیم: ما از گروهی از افراد خبره، توسعهدهندگان، نویسندگان کتابخانهها و مدرسان در جامعه ریاکت دعوت کرده ایم تا در گروه کاری ریاکت ۱۸ در مورد انتشار بازخورد دهند، سوال بپرسند و همکاری کنند. ما نمیتوانستیم هرکسی را که میخواهیم به این گروه کوچک و اولیه دعوت کنیم، اما اگر این آزمایش به نتیجه برسد، امیدواریم که در آینده موارد بیشتری وجود داشته باشد!
هدف گروه کاری ریاکت ۱۸ آمادهکردن اکوسیستم برای پذیرش نرم و تدریجی ریاکت ۱۸ توسط اپلیکیشنها و کتابخانههای موجود است. گروه کاری بر روی GitHub Discussions میزبانی شدهاست و برای خواندن عموم در دسترس است. اعضای گروه کاری میتوانند بازخورد های خود را قرار دهند، سوال مطرح کنند و یا ایده های خود را به اشتراک بگذارند. تیم اصلی (هسته) نیز از مخزن گفتگوها استفاده میکند تا یافته های تحقیقات خود را به اشتراک بگذارد. با نزدیکشدن انتشار پایدار، هر اطلاعات مهمی در این بلاگ نیز قرار خواهد گرفت.
برای اطلاعات بیشتر درمورد ارتقا به ریاکت ۱۸ یا منابع بیشتر درمورد انتشار، مطلب اطلاعیه ریاکت ۱۸ را ببینید.
دسترسی به گروه کاری ریاکت ۱۸
همه میتوانند گفتگوها را در مخزن گروه کاری ریاکت ۱۸ بخوانند
از آنجا که انتظار میرود در اوایل فعالیت گروه کاری افراد زیادی به سمت این گروه بیایند، به همین خاطر تنها افراد دعوتشده میتوانند گفتگو جدیدی ایجاد و یا نظر بر روی گفتگوها قرار بدهند. اگرچه تمامی گفتگوها برای همگان کاملا قابل مشاهده هستند، بنابراین همه به اطلاعات یکسانی دسترسی دارند. ما بر این باوریم که این سازش خوبی بین ایجاد یک محیط با بازدهی برای اعضای گروه کاری ضمن حفظ شفافیت در جامعه بزرگتر است.
مانند همیشه، میتوانید مشکلات، سوالات و بازخوردهای عمومی خود را به issue tracker ما ارسال نمایید.
چگونه ریاکت ۱۸ آلفا را امروز امتحان کنیم
نسخه های آلفا جدید به صورت مداوم بر روی npm با برچسب @alpha
منتشر میشوند. این انتشارها با استفاده از آخرین کامیت بر روی مخزن اصلی ساخته میشوند. زمانی که یک قابلیت یا رفع اشکال مرج شد، در روز هفته آتی در نسخه آلفا مشاهده خواهد شد.
ممکن است تغییرات بزرگی در رفتار یا API ها در بین انتشارهای آلفا وجود داشته باشد. لطفا به یاد داشته باشد که نسخه های آلفا برای اپلیکیشن های محیط پروداکشن و رسمی توصیه نمیشوند.
خط زمانی پیشبینیشده انتشار ریاکت ۱۸
تاریخ دقیقی برای انتشار برنامهریزی نکردهایم، اما انتظار چند ماه بازخورد و چرخه را قبل از اینکه ریاکت ۱۸ برای بیشترین اپلیکیشن های پروداکشن مناسب باشد را داریم.
- کتابخانه آلفا: امروز در دسترس است
- بتا عمومی: حداقل چندین ماه
- کاندید انتشار (RC): حداقل چندین هفته بعد از بتا
- دسترسی عمومی: حداقل چندین هفته بعد از RC
جزئیات بیشتر درمورد خط زمان پیش بینی شده در گروه کاری در دسترس است. زمانی که به انتشار عمومی نزدیک شویم، در این بلاگ بروزرسانی ها را قرار خواهیم داد.