بتای سریعتر Filament منتشر شد؛ تیم دنبال تسترـه
خلاصهٔ کاملتر
به گفتهٔ الکس سیکس، تیم Filament سالهاست پشت صحنه کار میکنه تا Filament سریعترین گزینه برای ساختن اپلیکیشن با استک TALL باشه؛ آخرین نمونهش هم بازنویسی بزرگ پکیج tables بود که زمان رندر رو تو ارتقا از v3 به v4 حسابی کم کرد. حالا تو چند ماه گذشته دوباره برگشتن سراغ همین موضوع و این بار تنظیمات و بهینهسازیها رو تو کل اکوسیستم پکیجهای رسمی پخش کردن.
قبل از اینکه یه ریلیز به این بزرگی رو روی همهٔ اپهای Filament بفرستن، میخوان این تغییرات تو پروژههای واقعی محک بخوره. برای همین همهش رو به شکل یه نسخهٔ بتای جدید از هر دو نسخهٔ v4 و v5 منتشر کردن که از همین امروز میتونی نصبش کنی. درخواستشون هم سادهست: هر مشکلی لوکال دیدی خبر بده و بگو تو کیس خودت چقدر بهبود سرعت حس کردی.
نصبش چند قدم سادهست: تو composer.json محدودیت نسخهٔ هر پکیج متنباز filament/* رو بسته به نسخهٔ فعلیت به ^4.12@beta یا ^5.7@beta تغییر بده و بعد composer update بزن. بدون هیچ تغییر عمدهای تو کد، باید نسخهٔ سریعتر بالا بیاد. نویسنده تأکید میکنه که این بتاها ذاتاً ممکنه ناپایدار باشن، پس تو پروداکشن ازشون استفاده نکنین — لوکال یا استیجینگ کاملاً اوکیه. ازشون خواسته شده حتی اگه هیچ مشکلی هم ندیدین، تو دیسکاشن گیتهاب گزارش بدین، چون دونستنِ «سالم بود» بهاندازهٔ دونستن باگها مهمه.
تو بخش فرمها و اسکیماها، رندر فرمهای بزرگ بهطور محسوسی سریعتر شده، چون ویوهای Blade به توابع سادهٔ تولید HTML بازنویسی شدن. Repeaterها، builderها و entryهای تکرارشونده حالا اسکیماهای فرزندشون رو تهاجمیتر memoize میکنن، و کانفیگ کامپوننتها، رنگها، توضیحات، آیکونها و تولتیپها هم memoize شدن.
تو جدولها، مسیرهای سریع رندر برای ستونهای متنی ساده و اکشنها اضافه شده، فرمتکردن state در هر سلول کمتر اجرا میشه، مرتبسازی دوبارهٔ جدول برای رابطههای BelongsToMany بهینه شده و بخشهای داخلی query builder بهجای ساختهشدن دوباره، memoize میشن. تو پنلها و ریسورسها هم lookupهای مدل به ریسورس، اسلاگها، اسم صفحهها و visibility مربوط به relation managerها memoize شدن.
تو ویجتها و چارتها، ویجتهای stat chart دیگه کل کتابخونهٔ Chart.js رو import نمیکنن (یعنی باندل کوچیکتر) و وقتی دادهٔ زیرین تغییر نکرده باشه، دوباره ترسیم نمیشن. بین بقیهٔ تغییرها هم یه ComponentAttributeBag کارآمدتر جایگزین نسخهٔ لاراول شده، یه memory leak ناشی از پاکنشدن لیسنرهای ایونت مودالِ اکشنها رفع شده، فچهای اضافی کانفیگ و ساخت تکراری کامپوننت دکمه کم شده، کش دیسک فایلسیستم و چک وجود فایل کارآمدتر شده و کامپوننتهای Alpine اعلانها هم دادهٔ کمتری سریالایز میکنن.
نکات کلیدی:
- بتای Filament v4 و v5 با یه موج بهینهسازی سراسری منتشر شده و تیم دنبال بازخورد واقعیه
- برای امتحان: محدودیت پکیجهای filament/* رو به ^4.12@beta یا ^5.7@beta ببر و composer update بزن
- فرمها: تبدیل ویوهای Blade به توابع تولید HTML و memoization تهاجمیتر
- جدولها: مسیر سریع رندر ستونهای متنی و اکشنها، بهینهسازی reorder در BelongsToMany
- ویجتها: حذف import کل Chart.js و جلوگیری از ترسیم مجدد بیدلیل؛ رفع یه memory leak
- تو پروداکشن استفاده نکنین؛ لوکال یا استیجینگ بله




