Blink Intent چیست؟

وقتی مهندسان می‌خواهند تغییری در موتور رندر Blink ایجاد کنند، آن را در فهرست پستی blink-dev ارسال می‌کنند تا تأییدیه لازم برای ادامه کار را دریافت کنند. به این پست‌های فهرست پستی، Blink Intents گفته می‌شود.

مرورگرهای وب مبتنی بر کرومیوم از موتور رندر Blink برای تبدیل کد و منابع به صفحات وبی که می‌توانید مشاهده کنید و با آنها تعامل داشته باشید، استفاده می‌کنند.

فهرست پستی blink-dev .

کشف کنید که Blink Intents چگونه کار می‌کند، چرا مهم هستند و چگونه ویژگی‌های جدید راه خود را به Blink باز می‌کنند.

کرومیوم پروژه مرورگر متن‌بازی است که کروم و برخی مرورگرها و چارچوب‌های دیگر بر اساس آن ساخته شده‌اند. بلینک موتور رندر مورد استفاده کرومیوم است.

برای اینکه یک ویژگی جدید در Blink قرار گیرد، باید از فرآیند توسعه باز پروژه Chromium عبور کند. یک "ویژگی جدید" هرگونه تغییر یا اضافه شدن به کد یا معماری مرورگر است. این می‌تواند یک API جدید جاوا اسکریپت، یک بهبود قابل توجه در عملکرد کد Blink یا تغییر دیگری در ظاهر یا عملکرد مرورگر باشد.

یک فرآیند باز و مشارکتی

کرومیوم یک پروژه عظیم و پیچیده با هزاران مشارکت‌کننده است. وقتی تغییراتی در کرومیوم ایجاد می‌شود، هر نقطه عطف فرصتی است برای دعوت از اکوسیستم گسترده‌تر وب برای اظهار نظر در مورد طراحی و پیاده‌سازی.

هر جا که ممکن باشد، ویژگی‌های جدید باید در سراسر پلتفرم وب قابل تعامل باشند و صرفاً روی یک مرورگر پیاده‌سازی نشوند. توسعه‌دهندگان وب نمی‌خواهند غافلگیر شوند: وقتی مرورگرها آنطور که انتظار دارید کار نمی‌کنند - یا وقتی که مجبور می‌شوید برای مرورگرها و پلتفرم‌های مختلف کد متفاوتی بنویسید. Blink Intents به ساختاردهی و تنظیم فرآیند تغییر کمک می‌کند تا تغییرات قابل پیش‌بینی‌تر و کمتر غافلگیرکننده باشند، که برای توسعه‌دهندگان وب خوب است.

برای کاربران، فروشندگان مرورگر باید مراقب باشند که تغییرات باعث از کار افتادن وب‌سایت‌ها نشود. صاحبان سایت اغلب نگهداری وب‌سایت‌ها را متوقف می‌کنند. برخی از سایت‌ها دهه‌هاست که به‌روزرسانی نشده‌اند! فروشندگان مرورگر باید هنگام ایجاد تغییراتی که ممکن است باعث خرابی شود، این موضوع را در نظر بگیرند.

از ایده تا پیشنهاد

پیشنهادها برای تغییرات و به‌روزرسانی‌های پلتفرم وب از تحقیق حاصل می‌شوند: مشورت با کاربران، کسب‌وکارها، مهندسان مرورگر، توسعه‌دهندگان وب و سایر ذینفعان. این تحقیق به تیم کروم اجازه می‌دهد تا بفهمد چه چیزی در پلتفرم کم است یا چه چیزی باید تغییر کند. در ابتدا، یک پیشنهاد برای تغییر یا یک ویژگی جدید در پلتفرم وب فقط کلماتی در یک صفحه است. مهندسان اسناد را برای دریافت بازخورد و بحث از همکارانشان به اشتراک می‌گذارند.

یک مثال: FedCM

توضیح FedCM در گیت‌هاب .

مدیریت اعتبارنامه فدرال (FedCM) یک API است که رویکردی کاربرپسند و حریم خصوصی‌محور برای ثبت‌نام و ورود کاربر ارائه می‌دهد که به عنوان هویت فدرال شناخته می‌شود. به عنوان مثال، این مورد در مورد ورود با گوگل و سایر ورودهای اجتماعی صدق می‌کند.

برای ایجاد یک API مرورگر، اولین قدم تهیه یک پیشنهاد برای بحث عمومی است. پیشنهاد FedCM به عنوان یک توضیح‌دهنده در GitHub منتشر شد. از همه دعوت می‌شود تا با ایجاد یک شماره GitHub در مخزن توضیح‌دهنده، در مورد طرح‌های ویژگی سؤال بپرسند یا نظر بدهند. بازخورد ممکن است شامل توضیحات توسعه‌دهنده در مورد موارد استفاده اضافی، محدودیت‌ها، ایده‌هایی برای بهبود یا تعهد پشتیبانی باشد.

زمانی که یک پیشنهاد توسط یک نهاد استانداردسازی، مانند W3C ، پذیرفته می‌شود، ذینفعان می‌توانند به بحث‌ها بپیوندند و ارائه‌ها را در گروه‌های استانداردهای وب، مانند گروه‌های کاری W3C ، تماشا کنند.

برای هر مرحله مهم، وقتی مهندسان روی یک ویژگی جدید یا تغییری در موتور رندر Blink کار می‌کنند، پستی در گروه بحث blink-dev منتشر می‌کنند و توضیح می‌دهند که قصد دارند به مرحله بعدی پیاده‌سازی یک ویژگی بروند. این پست‌ها «intents» نامیده می‌شوند. هر کسی می‌تواند در گروه blink-dev مشترک شود تا از پیشرفت ویژگی‌های جدید در Blink مطلع شود، یا برای به‌روزرسانی‌ها در یک ویژگی خاص مشترک شود.

قصد نمونه‌سازی اولیه

در این مرحله، مهندسان کرومیوم می‌توانند پیاده‌سازی یک ویژگی را آغاز کنند. این بدان معناست که عملکرد نمونه اولیه برای این ویژگی ممکن است برای آزمایش توسعه‌دهندگان، در پشت یک پرچم ویژگی ، ابتدا در Chrome Canary و سپس در سایر کانال‌های انتشار، در دسترس قرار گیرد. هر کاربری می‌تواند از صفحه chrome://flags یک پرچم تنظیم کند تا یک ویژگی را در مرورگر خود فعال و آزمایش کند.

با این حال، همه پرچم‌ها را نمی‌توان از صفحه chrome://flags تنظیم کرد. برای کنترل دقیق‌تر، می‌توانید کروم را از طریق ترمینال و با استفاده از پرچم‌های خط فرمان اجرا کنید. به خاطر داشته باشید که برخی از ویژگی‌های جدید تا زمانی که ویژگی برای آزمایش در Chrome Canary منتشر نشود، در دسترس نیستند - اگرچه این مورد بسیار نادر است. برخی از ویژگی‌ها پرچم مخصوص به خود را ندارند، اما در صورت فعال بودن پرچم experimental-web-platform-features در دسترس قرار می‌گیرند. این امر عموماً در مورد ویژگی‌های "کوچکتر" که حداکثر بیش از سه تا شش ماه برای پیاده‌سازی زمان نمی‌برند، صدق می‌کند.

جمع‌آوری بازخورد در مورد نمونه‌های اولیه

پس از شروع نمونه‌سازی اولیه یک ویژگی جدید، مهندسان کرومیوم از بحث و آزمایش‌های اولیه دعوت می‌کنند. بازخورد در این مرحله برای اعتبارسنجی و تکرار پیشنهادات بسیار مهم است. اشکالات کرومیوم جایی برای اظهار نظر در مورد پیاده‌سازی در کروم است.

در ردیاب مشکلات کرومیوم، یک مشکل ایجاد کنید.

قصد آزمایش: آزمایش در دنیای واقعی

اگر مهندسان کروم بخواهند درخواست اجرای یک نسخه آزمایشی اولیه را بدهند، ارسال یک پست با عنوان «قصد آزمایش» در blink-dev یک گام اختیاری بعدی است.

قصد آزمایش برای FedCM .

نسخه‌های آزمایشی Origin راهی برای آزمایش یک ویژگی جدید یا آزمایشی پلتفرم وب هستند. شما برای نسخه آزمایشی Origin یک ویژگی ثبت‌نام می‌کنید، سپس یک توکن برای نسخه آزمایشی دریافت می‌کنید. این ویژگی در هر صفحه‌ای که توکن را ارائه دهد، فعال خواهد شد.

فهرستی از نسخه‌های آزمایشی Chrome Origin موجود.

برای پیشرفت در جهت پیاده‌سازی یک ویژگی، دارندگان Blink API باید با ارسال یک پست با عنوان «به نظر من خوب می‌آید» که به عنوان LGTM شناخته می‌شود، موافقت خود را اعلام کنند.

مالکان API بلینک گروه کوچکی از مشارکت‌کنندگان کرومیوم هستند که تجربه بالایی در کار با پلتفرم وب و APIهای آن دارند و جامعه بلینک موافقت کرده است که در جایگاه خوبی قرار دارند و به ماموریت و ارزش‌های بلینک متعهد هستند. مالکان API علاوه بر تأیید (یا عدم تأیید!) برای پیشرفت ویژگی‌ها به سمت پیاده‌سازی، بر خود فرآیند بلینک اینتنت نیز نظارت دارند.

یک «قصد آزمایش» باید حداقل یک LGTM از دارندگان API دریافت کند.

LGTM ها در پست FedCM Intent to Experiment .

ارزش آزمایش‌های مبدا

توسعه‌دهندگان می‌توانند برای نسخه آزمایشی اولیه یک ویژگی ثبت‌نام کنند و سپس آن ویژگی را در محیط‌های دنیای واقعی و با کاربران واقعی آزمایش کنند - بدون اینکه کاربران برای فعال شدن ویژگی نیازی به اقدام داشته باشند. توسعه‌دهندگان می‌توانند نتایج آزمایش‌های خود را به اشتراک بگذارند و این امر بینش و داده‌های ارزشمندی را برای کمک به تکرار و تکامل ویژگی فراهم می‌کند.

قصد ارسال: مرحله نهایی

قصد ارسال (Intent to Ship) نشان می‌دهد که یک ویژگی اکنون کامل شده و آماده پیاده‌سازی برای دسترسی عمومی، برای همه کاربران در Chrome Stable بدون نیاز به پرچم یا توکن آزمایشی است. قبل از اینکه پیاده‌سازی بتواند ادامه یابد، یک قصد ارسال باید سه LGTM از دارندگان API دریافت کند.

رونمایی از ویژگی‌های جدید

پس از تأیید، یک ویژگی در نسخه بعدی ادغام می‌شود و سپس از طریق کانال‌های انتشار کروم پیشرفت می‌کند. آزمایش و پیاده‌سازی ویژگی‌های جدید اغلب با دقت ویژه‌ای انجام می‌شود. برخی از ویژگی‌ها به تدریج و برای تعداد فزاینده‌ای از کاربران ارائه می‌شوند. در صورت وجود عوارض جانبی غیرمنتظره، ویژگی‌ها همچنین می‌توانند به حالت قبل بازگردند و دوباره کار شوند.

مدیریت استهلاک و حذف

دو نوع دیگر از قصد چشمک زدن وجود دارد:

  • قصد منسوخ کردن
  • قصد حذف

این موارد ممکن است کمی ناراحت‌کننده به نظر برسند، اما در واقع برای موفقیت توسعه Blink بسیار مهم هستند.

قصد منسوخ شدن توسط مهندسان زمانی ارسال می‌شود که می‌خواهند به توسعه‌دهندگان هشدار دهند که یک ویژگی قرار است منسوخ شود. به عنوان مثال، با ارائه پشتیبانی و اطلاعات در مورد منسوخ شدن در کنسول Chrome DevTools.

قصد حذف زمانی ارسال می‌شود که مهندسان قصد دارند کدی را به طور پیش‌فرض غیرفعال کنند.

LGTMها روی Intentهایی که قرار است در blink.dev منسوخ شوند .

اهمیت منسوخ شدن و حذف

حذف و منسوخ‌سازی هر دو برای سلامت پلتفرم وب حیاتی هستند. آن‌ها تضمین می‌کنند که کروم می‌تواند ویژگی‌هایی را که برای کاربران نهایی یا توسعه‌دهندگان وب به خوبی کار نمی‌کنند، حذف کند و به کاهش پیچیدگی کدبیس کمک می‌کند. به عنوان مثال، مشکلات طراحی AppCache پس از استفاده در سایت‌های تولیدی در مرورگرهای پایدار کشف شد و در نهایت API حذف شد. حذف و منسوخ‌سازی همچنین با کاهش مسیرهای حمله بالقوه، به حفظ امنیت و ایمنی کروم کمک می‌کند.

مانند تمام اهداف Blink، تیم کروم تمام تلاش خود را می‌کند تا با دقت به تصمیم‌گیری‌ها نزدیک شود. آنها قبل از ادامه، میزان استفاده از ویژگی‌ها و سایر داده‌ها را بررسی می‌کنند. استاندارد حذف ویژگی‌ها در واقع فوق‌العاده بالاست و یک ویژگی تنها در صورتی حذف می‌شود که توسط بخش بسیار بسیار کمی از کاربران استفاده شود و جایگزین‌های بهتری در دسترس باشد.

می‌توانید پیشرفت ویژگی‌ها را در وضعیت کروم (Chrome Status) پیگیری کنید، جایی که می‌توانید در به‌روزرسانی‌ها مشترک شوید، اشکالات را ثبت کنید و منابع دیگر را پیدا کنید.

نقشه راه ویژگی‌های کروم در chromestatus.com

برای پیگیری ویژگی‌های جدید، وبلاگ Chromium را دنبال کنید و به گروه بحث blink-dev بپیوندید. این گروه می‌تواند منجر به ارسال ایمیل‌های زیادی شود، بنابراین ممکن است ترجیح دهید در یک intent مشترک شوید. می‌توانید یک صفحه گسترده از intentهای Blink را مشاهده کنید.

اگر واقعاً Blink Intents را دوست دارید، حتی می‌توانید سرویس‌های خودکار Blink Intent Tracker را نیز توسعه دهید.

مراحل بعدی

کانال‌های انتشار کروم چیستند؟ را بررسی کنید.