منتشر شده: ۳ آوریل ۲۰۲۵
وقتی زمان انتشار یک ویژگی جدید در کروم فرا میرسد، بررسیها و تعادلهای زیادی برای اطمینان از عملکرد، سازگاری و قابلیت اطمینان یک ویژگی وجود دارد. یکی از این تعادلها، آزمایشهای Finch است. اجازه ندهید که بخش «آزمایش» نام آن شما را فریب دهد و فکر کنید که ناامن است، کاملاً برعکس است. انتشارهای Finch به ما کمک میکنند تا ویژگیهایی را که میتوانند به طور بالقوه باعث مشکلات سازگاری شوند، به روشی ایمن اضافه کنیم، زیرا به ما این امکان را میدهند که در صورت مواجهه با مشکلات پیشبینی نشده، به سرعت یک ویژگی را غیرفعال کنیم. این مقاله توضیح میدهد که چگونه و چرا از Finch برای انتشار برخی از ویژگیها در کروم استفاده میکنیم.
بهطورکلی، فعال کردن یک ویژگی در کروم به معنای تغییر وضعیت یک مقدار بولی از خاموش به روشن در داخل کروم است. وقتی یک ویژگی جدید «ارسال میشود»، به این معنی است که این مقدار بولی حالت پیشفرض خود را برای همه کاربران به «روشن» تغییر داده است. چندین روش برای انجام این کار وجود دارد:
- فعال کردن ویژگی «در کد» : این یعنی خودِ فایل اجرایی کروم تنظیماتی دارد که بهطور پیشفرض فعال است.
- فعال کردن ویژگی «از طریق نسخه آزمایشی Origin» : سیستم آزمایشی Origin روشی است که یک سایت خاص میتواند تمام کاربران کروم را در یک آزمایش شرکت دهد، آزمایشی که یک ویژگی خاص را فقط در آن سایت فعال میکند.
- فعال کردن ویژگی «با استفاده از Finch» : کروم به صورت دورهای یک فایل پیکربندی را از سرور دریافت میکند و این فایل میتواند شامل دستورالعملهایی برای فعال یا غیرفعال کردن یک ویژگی باشد.
- «سوئیچ قطع Finch» : برعکس فعال کردن «استفاده از Finch» است. در این حالت، این ویژگی «در کد» فعال میشود اما سپس با استفاده از سیستم Finch غیرفعال میشود، که معمولاً به دلیل مشکلاتی است که پس از راهاندازی شناسایی میشوند.
موارد استفاده از فنچ
موضوع این پست وبلاگ فینچ است، بنابراین ما بیشتر از این در مورد فعال کردن «درون کد» یا «آزمایشی در مبدا» بحث نخواهیم کرد. اما فینچ موارد استفاده جالب متعددی دارد.
آزمایش روی گروه کوچکی از کاربران (تست A/B)
اغلب، از Finch برای انجام « تست A/B » یک ویژگی یا بهینهسازی استفاده میشود. در این حالت، یک ویژگی برای درصد کمی از کاربران فعال میشود، به طوری که میتوان دادههایی در مورد تفاوت عملکرد، رفتار یا میزان استفاده هنگام فعال بودن ویژگی در مقابل غیرفعال بودن آن جمعآوری کرد.
یک نمونه از تست A/B زمانی است که ما رمزگشاییهای تصویر Speculative را راهاندازی کردیم. این یک بهبود عملکرد است که نباید برای توسعهدهندگان یا کاربران قابل توجه باشد، جز اینکه باعث میشود کروم صفحات را سریعتر بارگذاری کند. اما برای اطمینان از اینکه هیچ اتفاق غیرمنتظرهای رخ نداده است و همچنین برای اینکه بتوانیم تأثیر عملکرد را به طور دقیق اندازهگیری کنیم، از Finch برای تست A/B آن استفاده کردیم.
غیرفعال کردن یک ویژگی مشکلساز
برای ایمنی محصول و تجربه کاربری، کروم میتواند از سیستم Finch برای غیرفعال کردن از راه دور ویژگیهای مشکلساز که «به صورت کد» فعال شدهاند، استفاده کند. به عنوان مثال، اگر یک ویژگی به طور پیشفرض فعال شده باشد، اما مشکلات تنها پس از رسیدن کروم به وضعیت پایدار ظاهر شوند، به روشی نیاز داریم تا به سرعت آن ویژگی را غیرفعال کنیم تا کاربران و مشاغل را به حالت ایمن برگردانیم. این امر میتواند زمانی ضروری باشد که اشکالات کشف نشدهای در آن ویژگی وجود داشته باشد، یا زمانی که یک ویژگی به دلایل پیشبینی نشدهای سایتهای موجود را از کار بیندازد.
ویژگیهای پرخطر را به روشی امنتر فعال کنید
برای بیشتر ویژگیهایی که کروم راهاندازی میکند، ریسک کمی وجود دارد، زیرا میتوانیم آزمایش کنیم و تأیید کنیم که کد جدید در همه سایتها کار میکند.
با این حال، گاهی اوقات، راهاندازی ویژگیها میتواند به دلیل مشکلات سازگاری ناشناخته یا سایر تعاملات پیچیده، بسیار خطرناک باشد. در این حالت، سیستم Finch میتواند برای فعال کردن واقعی ویژگی مورد استفاده قرار گیرد، نه اینکه صرفاً آن را به عنوان یک کلید خاموش نگه دارد.
برای مثال، «relaxation» در تجزیهگر HTML تغییری مربوط به ویژگی جدید قابل تنظیم-انتخاب بود که امکان قرار دادن محتوای بیشتری نسبت به قبل را درون یک عنصر <select> فراهم میکرد. از آنجایی که این تغییر ممکن است سایتهای موجود را از کار بیندازد، لازم بود آن را با دقت اعمال کنیم.
فعال کردن ویژگیها با استفاده از Finch میتواند امنتر از حذف آنها با استفاده از Finch باشد، زیرا Finch به دلایل مختلف به ۱۰۰٪ کاربران دسترسی ندارد. به عنوان مثال، برخی از کاربران سازمانی سیاستی دارند که پیکربندی Finch را به طور کامل ممنوع میکند. در صورتی که یک ویژگی در کد فعال شود و سپس با استفاده از Finch غیرفعال شود، این کاربران در معرض خطر باقی میمانند، زیرا این کاربران تنظیمات Finch را دریافت نمیکنند و همچنان آن ویژگی را فعال خواهند داشت. با فعال کردن ویژگی با استفاده از Finch، میتوانیم امکان غیرفعال کردن آن را برای همه کاربران در مواقع اضطراری تضمین کنیم.
چگونه بررسی کنیم که آیا در آزمایش فینچ هستیم یا خیر؟
انجام مستقیم این کار برای کاربران دشوار است. راه توصیه شده این است که با یک مهندس کروم (معمولاً در زمینه یک باگ کرومیوم ) تماس بگیرید و "لیست تغییرات" خود را برای آنها ارسال کنید. این لیستی از نسخههای کدگذاری شده ویژه از تمام تنظیمات Finch برای یک مرورگر خاص است. بازیابی آن به راحتی امکانپذیر است:
- به
chrome://versionبروید. - کل لیست متنی (بله، میتواند خیلی طولانی باشد) که در کنار «گزینههای فعال» قرار دارد را کپی کنید.
- آن متن را در یک فایل متنی (مثلاً
variations.txt) قرار دهید و آن را به یک اشکال پیوست کنید.
با این لیست از تغییرات، مهندسان کروم میتوانند لیست را رمزگشایی کرده و ببینند کدام ویژگیها در مرورگر شما فعال یا غیرفعال هستند.
وقتی آزمایش فینچ به ۱۰۰٪ برسد و آمادهی شروع باشد، چه اتفاقی میافتد؟
وقتی خیالمان راحت شد که آزمایش ما «موفق» بوده و ویژگی مورد نظر هیچ خطری برای توسعهدهندگان یا کاربران ایجاد نمیکند، همیشه آن ویژگی را «در کد» فعال میکنیم. در این مرحله، میتوان با خیال راحت پیکربندی Finch را به پایان رساند، به طوری که دیگر روی مرورگرهای بعد از نسخهای که این ویژگی در کد فعال شده بود، تأثیری نداشته باشد.