۱. نمای کلی اجرایی و اهمیت معماری
انتشار نسخه ۵.۵۶.۸ اسولت گام عمدی دیگری در راستای تثبیت مداوم معماری مبتنی بر رون (rune) در اسولت ۵ است. از آنجا که برنامههای وب مدرن به طور فزایندهای به خطوط لوله رندر سمت سرور (SSR) پیچیده به همراه هیدراتاسیون سمت کاربر متکی هستند، تابآوری چرخههای حیات کامپوننت در طول حالتهای خطا اهمیت پیدا میکند. اسولت ۵.۵۶.۸ مستقیماً آسیبپذیریهای لبهای را در هیدراتاسیون مرز خطا و انطباق ویژگیهای DOM هدف قرار میدهد و تضمین میکند که برنامههای ساختهشده بر روی این چارچوب حتی در شرایط نامطلوب نیز سطوح بالایی از پیشبینیپذیری زمان اجرا را حفظ کنند.
از منظر معماری سیستمها، این انتشار پچ نشاندهنده تعهد نگهدارندگان چارچوب به مدیریت قوی وضعیت است. عدم تطابقهای هیدراتاسیون و خطاهای رندر ناهمگام بهطور تاریخی بردارهای قابلتوجهی برای تنزل تجربه کاربری بودهاند. با بهبود نحوه مدیریت مکانیسمهای بازیابی توسط مرزها و نحوه همگامسازی کنترلهای بومی فرم با گسترش ویژگیهای پویا، اسولت ۵.۵۶.۸ پایهای را که برنامههای سازمانی در مقیاس بزرگ روی آن مهندسی میشوند، تقویت میکند. این نسخه از تغییرات گسترده در سطح رابط برنامه کاربردی اجتناب کرده و به جای آن به بهبودهای دقیق و با تأثیر بالای صحت پرداخته است که انطباق مطمئنتر DOM را در اهداف استقرار مختلف تضمین میکند.
۲. بهبودهای اصلی و ارگونومی توسعهدهنده
بارزترین اصلاح فنی در اسولت ۵.۵۶.۸ بر روی بازیابی مرز خطا در طول فاز هیدراتاسیون تمرکز دارد. پیش از این، هنگامی که یک مرز کامپوننت در طول هیدراتاسیون SSR با حالت خطا مواجه میشد، خطوط لوله اجرا ممکن بود گاهی اوقات در فراخوانی قابل اعتماد فراخوانی برگشتی (callback) تعیینشدهی onerror یا ارائه یک متد reset کاربردی و آگاه از زمینه ناموفق باشند. این نسخه با اطمینان از اینکه قلاب چرخه حیات خطا به طور قابل پیشبینی اجرا میشود و یک تابع reset کاملاً عملیاتی را در اختیار توسعهدهندگان قرار میدهد، درخواست پولریکوئست شماره ۱۸۵۵۶ را حل میکند. در نتیجه، توسعهدهندگان اکنون میتوانند رابطهای کاربری بازگشتی مقاوم را پیادهسازی کنند که به کاربران اجازه میدهد بدون نیاز به بارگذاری مجدد کامل صفحه، از خطاهای موقت رندر یا دریافت داده بازیابی کنند.
همزمان با بهبودهای مرز خطا، این نسخه به یک باگ ظریف اما پایدار در رابطه با عناصر بومی HTML <select> و گسترش ویژگیهای پویا (پولریکوئست شماره ۱۸۵۶۱) میپردازد. هنگام استفاده از ویژگیهای گسترشیافته که ویژگی صریح value را حذف میکنند، نسخههای قبلی کامپایلر میتوانستند به طور ناخواسته حالت انتخاب فعلی کاربر را در طول انطباق حذف کنند. اسولت ۵.۵۶.۸ بررسیهای دقیقی را در اتصالات دستکاری DOM معرفی میکند و تضمین میکند که حتی زمانی که مجموعههای ویژگی به صورت پویا تغییر میکنند، حالت انتخابشده با ثبات حفظ شود. این امر ارگونومی توسعهدهنده را برای برنامههای سنگین فرم بهطور قابلتوجهی بهبود میبخشد و نیاز به برنامهنویسی دفاعی ساختاریافته در اطراف کنترلهای فرم را از بین میبرد.
۳. ماتریس مقایسه معماری
| بعد معماری | اسولت (پایه قبلی) | اسولت ۵.۵۶.۸ (نسخه فعلی) |
|---|---|---|
| تحمل خطای هیدراتاسیون | شکستهای متناوب در قلابهای reset مرز خطا؛ استثناهای مدیریتنشده در طول عدم تطابقهای شدید SSR. |
اجرای قوی کنترلکنندههای onerror با قابلیتهای reset کاملاً کاربردی و محدودشده. |
| انطباق DOM (فرمها) | خطر از دست رفتن گزینه انتخابشده <select> زمانی که گسترش ویژگیها value را حذف کرده بود. |
حفظ یکپارچگی اتصال مقدار انتخاب بومی در طول جهشهای ویژگی پویا. |
| ردپای حافظه | ردپای رون زمان اجرای پایدار با سربار اسمی جمعآوری زباله. | پاکسازی بهینهسازیشده گوشدهنده رویداد و مرز، کاهش نشت حافظه در حالتهای هیدراتاسیون ناموفق. |
| پایداری سطح API | سازگار با پارادایم رون اسولت ۵؛ باگهای رفتاری جزئی در موارد خاص. | سطح API با سازگاری ۱۰۰٪ رو به عقب با بهبود صحت داخلی. |
۴. تغییرات ناسازگار و هشدارهای مهاجرت
اسولت ۵.۵۶.۸ با تمام نسخههای قبلی ۵.x کاملاً سازگار است. هیچ تغییر ناسازگاری در API عمومی، رونهای زمان اجرا، یا دستورات کامپایلر ایجاد نشده است. تیمهایی که از نسخههای قبلی ۵.۵۶.x یا پیشینیان مستقیم ارتقا میدهند، نیازی به تغییر ساختارهای کامپوننت، پیادهسازیهای انبار (store) یا پیکربندی ابزارهای ساخت خود نخواهند داشت. تغییرات صرفاً به الگوریتمهای انطباق زمان اجرای داخلی و مسیرهای مدیریت خطا محدود میشوند.
۵. راهنمای ارتقای گامبهگام
بهروزرسانی پروژه اسولت خود به نسخه ۵.۵۶.۸ به تلاش کمی نیاز دارد. برای اطمینان از گذاری روان، این مراحل استاندارد را دنبال کنید:
۱. وابستگی پکیج خود را بهروز کنید از طریق مدیر پکیج ترجیحی Node خود:
npm install [email protected]
# or
yarn add [email protected]
# or
pnpm add [email protected]
۲. کش ساخت خود را پاک کنید تا اطمینان حاصل شود که کامپایلر اسولت هرگونه بازنمایی میانی کهنه را پاکسازی میکند:
rm -rf .svelte-kit node_modules/.vite
۳. مجموعه تست و بررسی نوع خود را اجرا کنید تا از سلامت ساخت اطمینان حاصل شود:
npm run check && npm run test
