چگونه Target.com از Baseline برای مدرن‌سازی ویژگی‌ها استفاده کرد

منتشر شده: ۲۱ نوامبر ۲۰۲۵

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

بدون داشتن یک سیاست مترقی در مورد اینکه کدام مرورگرها و ویژگی‌ها را هدف قرار دهد، Target.com فقط با استفاده از راه‌حل‌های سنگین مانند polyfilling و transpile کردن به نسخه‌های بسیار قدیمی جاوا اسکریپت، ویژگی‌های مدرن را در پایگاه کد مجاز می‌دانست. هنگامی که گروه جامعه WebDX ، Baseline را راه‌اندازی کرد، ذینفعان در Target.com آن را زمان مناسبی برای فکر کردن در مورد یافتن یک حداقل هدف پشتیبانی مناسب‌تر دیدند.

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

مشکل

ده‌ها مهندس هر روز کدی را به Target.com ارائه می‌دهند. در بررسی کد، اشاره به ویژگی‌هایی که با نسخه‌های مرورگر پشتیبانی‌شده‌ی Target.com کار نمی‌کنند، با استفاده از «آیا می‌توانم از آنها به عنوان منبع استفاده کنم ؟» رایج است. وقتی مهندسان دائماً نظراتی دریافت می‌کنند که کد خود را تغییر می‌دهند تا ویژگی‌های قدیمی را به ویژگی‌های مدرن ترجیح دهند، نتیجه‌ی آن اجتناب از ویژگی‌های وب جدید است. سپس Target به استفاده از تکنیک‌های «قدیمی» که کار می‌کنند، بازمی‌گردد، اما فرصت استفاده از ویژگی‌های مدرن به زمان دیگری موکول می‌شود. استفاده از ویژگی‌های وب مدرن اغلب تجربه‌ی توسعه‌دهنده‌ی بهتری را ارائه می‌دهد و همچنین می‌تواند با ارسال کد کمتر، تجربه‌ی کاربری بهتری را فراهم کند.

رویکردی داده‌محور برای پشتیبانی مرورگر

Target.com یک پیکربندی webpack دارد که حداقل نسخه‌های مرورگر پشتیبانی‌شده را تعریف می‌کند. از نظر تاریخی، توجیه افزایش این حداقل نسخه‌های مرورگر پشتیبانی‌شده دشوار بوده است. از اوایل سال ۲۰۲۵، قوانین به این صورت بودند:

  • دو نسخه فعلی و قبلی کروم، اج و فایرفاکس.
  • سافاری ۱۱ و بالاتر.

به دلیل حجم بالای ترافیک و فروش تارگت از طریق سافاری در iOS، با دقت بیشتری با آن برخورد می‌شود. در ابتدا، تصمیم آگاهانه‌ای مبنی بر تعیین سافاری ۱۱ به عنوان حداقل نسخه برای توسعه وجود داشت. این تصمیم، Target.com را به ویژگی‌های وب که در سال ۲۰۱۷ و قبل از آن در دسترس بودند، متصل می‌کرد.

در اولین گام در مسیر تارگت برای ادغام Baseline در گردش کار توسعه خود، از یک رویکرد مبتنی بر داده استفاده شد. تارگت از طریق تحقیق دریافت که نسخه‌های ۱۱ تا ۱۴ سافاری تأثیر تجاری بسیار کمی داشته‌اند - به طور خاص ۰.۰۰۰۱٪ از فروش تقاضا در Target.com. با توجه به این واقعیت، تارگت تشخیص داد که حذف transpilation و polyfills برای این نسخه‌های مرورگر قدیمی، فرصت‌های قابل توجهی را برای بهبود عملکرد سایت فراهم می‌کند.

تحقیقات بیشتر نشان داد که سافاری ۱۵.۴ اولین نسخه سافاری بود که حداقل ۰.۵٪ از فروش تقاضا را به خود اختصاص داد و هر نسخه فرعی سافاری ۱۵ پس از آن نیز تأثیر مشابهی داشت. Anytime Target یک تست A/B اجرا می‌کند، تغییر ۰.۵٪ از فروش تقاضا بسیار ارزشمند است و به این نتیجه می‌رسد که حداقل نسخه پشتیبانی شده سافاری باید جایی در نسخه ۱۵ باشد.

روند جالبی که در این تحقیق به آن برخوردیم، سرعت تغییر استفاده از مرورگرهای قدیمی سافاری است. تا سپتامبر ۲۰۲۴، سافاری ۱۵ تنها ۰.۹۴٪ از فروش تقاضا در Target.com را به خود اختصاص داده بود. در ژانویه ۲۰۲۵، این رقم ۰.۶۷٪ از فروش تقاضا بود، تا مه ۲۰۲۵ به ۰.۴۵٪ کاهش یافت و تا نوامبر ۲۰۲۵ به ۰.۳۲٪ رسید. چیزی که تارگت از این موضوع آموخت این است که اگر آستانه‌ای برای پول واقعی به عنوان درصدی از فروش تقاضا در کل سایت تعیین شود، پشتیبانی از این مرورگرها می‌تواند به صورت خودکار پایان یابد و نسخه اصلی بعدی در سافاری ۱۶ می‌تواند تا پایان سال محقق شود.

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

انتخاب یک هدف پایه برای Target.com

مهندسان وب تارگت، یک گروه کاری Baseline تشکیل دادند تا این تلاش‌ها را با استفاده از ویژگی‌های مدرن و هدف متحرکِ پشتیبانی از مرورگرها، برای کمک به پیشبرد این سیاست، ترکیب کنند. آن‌ها با استفاده از ابزارهای Baseline ، حداقل تعداد مرورگرهای مورد نیاز برای هر سال را بررسی کردند. نزدیک‌ترین هدف به سیاست جدید تارگت، Baseline 2022 بود:

{
  "chrome": "108",
  "edge": "108",
  "firefox": "108",
  "ios": "16",
  "safari": "16"
}

برای رسیدن به آن خط پایه، تارگت باید سیاست مرورگر خود را حداقل به جای نسخه فعلی ۱۵.۴، روی سافاری ۱۶ تنظیم کند. این کار باعث کاهش تجربه کمتر از ۰.۵٪ از خریدارانی می‌شود که به خرید اینترنتی روی می‌آورند. با این حال، این درصد در حال کاهش است، بنابراین تارگت امیدوار است که سیاست رسمی خود را فعلاً به‌روزرسانی کند تا تا پایان سال ۲۰۲۵ با خط پایه ۲۰۲۲ مرتبط باشد. این امر توسعه‌دهندگان Target.com را در موقعیتی قرار می‌دهد که می‌توان هدف را تغییر داد تا حدود ۳ سال از خط پایه سالانه منتشر شده عقب بماند.

در مجموع، بسته‌های وب‌پک برای Target.com به دلیل کاهش transpiling کد و اضافه شدن polyfillها، کوچک‌تر هستند. تارگت مطمئن است که این هدف به مرور زمان تغییر خواهد کرد و امیدواریم در همین زمان در سال آینده، Baseline 2023 قابل اجرا باشد که شامل بسیاری از ویژگی‌های عالی مانند container queryها ، انتخابگر :has ، ویژگی inert و موارد دیگر است.

نگاهی به مجموعه ویژگی‌های جدیدتر Baseline

گروه کاری Target Baseline به Baseline 2022 بسنده نکرده است. با نگاهی به ویژگی‌های Baseline 2023، بسیاری از آنها در آستانه‌ی پشتیبانی بدون پشتیبان‌گیری مانند polyfillها هستند. هر یک از ویژگی‌های Baseline 2023 که Target به آنها علاقه‌مند است، مستلزم موارد زیر است:

  1. بیان کنید که این ویژگی چه کاری انجام می‌دهد.
  2. مستند کنید که چگونه استفاده از آن می‌تواند Target.com را بهبود بخشد، از جمله بهبود تجربه توسعه‌دهنده.
  3. یک نمونه آزمایشی خوب برای پیاده‌سازی این ویژگی در کدبیس Target.com پیدا کنید.
  4. در صورت لزوم، مستند کنید که از چه راه‌حل‌های جایگزینی استفاده کنید، از جمله بهبود تدریجی یا سایر راه‌حل‌های ارائه شده از طریق تشخیص ویژگی.
  5. در نهایت، چه زمانی می‌توان انتظار داشت که استفاده از این ویژگی تأیید شود؟ آیا می‌توان اکنون از آن استفاده کرد؟ یا باید منتظر آستانه‌ای در آینده بود؟

یک نمونه از این موارد، ویژگی inert است. حداقل نسخه برای استفاده از inert در سافاری ۱۵.۵ است، به این معنی که Target.com تقریباً قادر به استفاده از آن است! Target.com پیاده‌سازی‌های modal زیادی دارد که در آنها این ویژگی در مقایسه با راه‌حل فعلی جاوا اسکریپت آن، یک مزیت محسوب می‌شود. نوشتن گزارش در مورد این ویژگی توسط یک مهندس، امکان به اشتراک‌گذاری دانش و آمادگی برای تسهیل بعدی سیاست مرورگر را فراهم می‌کند. این امر به اثبات این موضوع کمک می‌کند که حذف پشتیبانی از نسخه‌ای از مرورگر که ارزش تجاری کمی دارد، می‌تواند ویژگی‌هایی را که ارزش دارند ، آزاد کند. این ویژگی را می‌توان تحت یک پرچم ویژگی مهندسی، بررسی و مستقر کرد و در صورت استفاده از آن، آماده بود.

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

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

مرتبط کردن مفاهیم پایه با عملکرد وب

عملکرد برای هر وب‌سایت خرده‌فروشی مهم است. یکی از باورهای مشترک توسعه‌دهندگان Target.com این است که جاوا اسکریپت بیش از حد ارسال می‌شود. اگر ۵٪ از بسته‌های جاوا اسکریپت ارسال شده به کاربران حذف شود، یک برد بزرگ است - اما همچنین Core Web Vitals را در سراسر Target.com به طور قابل توجهی بهبود نمی‌بخشد. اگرچه اگر Target این کار را ۱۰ بار انجام دهد، کاهش ۵۰ درصدی در اندازه بسته‌ها محقق می‌شود و این به طور قابل توجهی به اهداف عملکرد Target کمک می‌کند.

وقتی صحبت از رویکرد Target به Baseline می‌شود، این رویکرد به مهندسان Target.com اجازه داده است تا در مورد میزان جاوا اسکریپتی که برای مواردی مانند modalها، نیازهای دسترسی، popoverها، carouselsها، accordionها و سایر نگرانی‌های رایج در مورد تجربه کاربری به آن متکی هستند، فکر کنند. هر یک از این موارد نیاز به polyfillها یا راه‌حل‌های سفارشی جاوا اسکریپت دارند که به حجم زیاد جاوا اسکریپت یک برنامه کمک می‌کند. همانطور که Target از Baseline استفاده می‌کند، اهداف مرورگر به مرور زمان تکامل می‌یابند و سیاست‌های مربوط به گنجاندن ویژگی‌های جدیدتر می‌توانند تعدیل شوند. Target انتظار دارد که به مرور زمان کد کمتری را transpile کند، ویژگی‌های کمتری را polyfill کند و حتی در صورت بروز فرصت‌ها، اجزای وب را بپذیرد. با توجه به polyfillها و مرورگرهای هدفمند که در زنجیره ابزارهای پروژه ارائه می‌شوند، اندازه بسته جاوا اسکریپت Target.com در حال حاضر 10٪ کاهش یافته است . این قبل از پذیرش هرگونه ویژگی جدیدتر است. این باید سال به سال بهبود یابد و این مستقیماً با تلاش‌های بزرگی که Target در بهبود عملکرد Target.com انجام می‌دهد، مرتبط است.

غذاهای بیرون‌بر

داشتن یک هدف پایه و گزارش‌های پایه بسیار خوب و منظم از ویژگی‌های وب جدید و گسترده، ابزاری قدرتمند برای Target.com بوده است. در اینجا به برخی از نتایج کلیدی اشاره می‌کنیم:

  • هدف مرورگر از پشتیبانی از مرورگرهایی که ۸ سال پیش منتشر شده بودند به ۳ سال پیش تغییر کرده است.
  • هدف اولیه‌ی سال ۲۰۲۲ تا پایان سال ۲۰۲۵ محقق خواهد شد.
  • حجم کل بسته‌های جاوا اسکریپت Target.com، 10 درصد کاهش یافته است.
  • مرورگرهای قدیمی که کمتر از ۱٪ از کسب‌وکارها را تشکیل می‌دهند، با نرخ تقریبی ۳۰۰٪ در سال (۰.۹۴٪ در سپتامبر ۲۰۲۴ به ۰.۳۲٪ در نوامبر ۲۰۲۵) در حال کاهش هستند.

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