ترحيل Linear إلى StyleX يسرّع التنقل بنحو 30%
انتهى ترحيل Linear إلى StyleX، الذي نقل تطبيقات React في الشركة بعيدًا عن styled-components في أكثر من 1,000 طلب دمج، في أوائل أغسطس 2026، بحسب المهندس كينيث سكوفهوس في تدوينته بتاريخ 26 أغسطس 2026. وجمع العمل بين محوّل شيفرة حتمي ووكلاء برمجة ومراجعة بشرية. وتقول Linear إن الصفحات الكثيفة العرض تنفذ الآن عملًا أقل في الخيط الرئيسي بنسبة 20% إلى 35%، وإن التنقل أسرع بنحو 30% على جهاز متوسط الفئة، أي منتج أسرع للعملاء دون إعادة كتابة.
لماذا تخلّت Linear عن styled-components
كانت لدى Linear مشكلتان مع مكتبة التنسيق القديمة: السرعة والتحكم. فـ CSS-in-JS وقت التشغيل يجعل المتصفح يولّد الأنماط ويحقن قواعد CSS أثناء عرض التطبيق، وشعرت Linear بهذه الكلفة بحدة بعد الترقية إلى العرض المتزامن في React 18، في وقت قريب من دخول styled-components مرحلة الصيانة. وقد أصدر كودي أولسن من Sanity نسخة محسّنة خفّضت أزمنة العرض لدى Linear بنسبة 40 في المئة، لكنه وصفها بأنها ملاذ أخير.
والمشكلة الثانية كانت التغليف. فأنماط مثل styled(Button) سهّلت إعادة تنسيق مكوّن من الخارج، وبعد إعادة تصميم وجدت Linear نفسها تطارد ذيلًا طويلًا من تراجعات الواجهة. وكتب المهندس كينيث سكوفهوس أن الحدود الواضحة تزداد أهمية كلما ساهم وكلاء البرمجة أكثر في قاعدة الشيفرة.
ما الذي اختارته Linear بدلًا منها ولماذا
وضع الفريق قواعد للمكتبة التالية: توليد الأنماط وقت البناء، وجعل التنسيق عن بُعد صعبًا عمدًا، ودمجًا متوقعًا عبر الملفات، ودعمًا جيدًا لـ React، وصيانة نشطة. ونظر في معظم خيارات التنسيق في React. أما أقرب بديل، vanilla-extract، فاستُبعد لواجهته البرمجية المجزأة وملفات الأنماط المنفصلة.
وفاز StyleX، مكتبة CSS-in-JS الذرية مفتوحة المصدر من Meta. فهي تنقل توليد الأنماط إلى وقت البناء، وتصدر فئات ذرية صغيرة بلا تصادم، وتشغّل Facebook وInstagram وWhatsApp على الويب. وتُبقي الأنماط بجانب المكونات، وواجهتها البرمجية صغيرة، وتعطي عقود تنسيق آمنة الأنواع. والثمن هو الصلابة: تصبح المحددات المعتمدة على الأصل والمحددات العامة وإعادة التنسيق عبر الأغلفة أصعب، وأبقت Linear على CSS Modules مخرج طوارئ للمحددات العامة.
كيف تقاسم المحوّل والوكلاء والمهندسون العمل
بدأ العمل بمحوّل شيفرة حتمي لا بالوكلاء. فبنى سكوفهوس styled-components-to-stylex-codemod على مجموعة اختبارات كبيرة، مع مساعدة الوكلاء في بنائه؛ وله ساحة تجربة على الإنترنت، وهو الآن، بحسب InfoQ، يتجاوز 500 طلب دمج ونحو 100,000 سطر.
وضع الفريق متغيرات StyleX والأوليات المشتركة أولًا، ومنح الوكلاء نطاقات ضيقة مع مشغّل المحوّل وأمثلة وسكربتات تحقق وقائمة تحقق، وهاجر المكونات الورقية قبل المشتركة. وكثيرًا ما علق الوكلاء في فحص الفروق البصرية مثل حالات التمرير والسمات، ما عنى اختبارًا يدويًا كثيرًا إلى أن أُطلق نموذجان أحدث، Fable وSol، في منتصف المشروع.
"لو بدأنا هذا الترحيل اليوم، لاعتمدنا على Fable وSol أكثر بكثير لتنفيذه مباشرة." — كينيث سكوفهوس، مهندس في Linear
كيف أبقت Linear الترحيل متحركًا لأشهر
واصلت Linear العمل على المنتج بينما يتعايش النظامان، واستخدمت أدوات لإبقاء الناس في مسار الترحيل. فأظهر عدّاد في شريط أدوات المطور عدد styled-components في كل صفحة، وأظهر مظلِّل أي المكونات رُحّلت، وعلّم روبوت أي styled-components جديدة في طلبات الدمج. وتفرض قواعد Oxlint الآن الأعراف الجديدة.
ويُظهر مخطط التقدم المنحنى. فشكلت ملفات styled-components 100% من ملفات تنسيق React في أسبوع 8 مارس 2026، و49% بحلول 7 يونيو، و0% بحلول 6 أغسطس. وانخفضت ملفات styled-components الجديدة من ذروة 22 في أسبوع 19 أبريل إلى صفر في معظم الأسابيع بعد 31 مايو.
ما الذي حققه ترحيل Linear إلى StyleX
النتائج المقاسة من Linear نفسها. فقد استغرق الترحيل أكثر من 1,000 طلب دمج ونحو خمسة أشهر، وانتهى في أوائل أغسطس 2026. وتفيد Linear بعمل أقل بنسبة 20% إلى 35% في الخيط الرئيسي على الصفحات الكثيفة العرض، وتنقل أسرع بنحو 30% على جهاز متوسط الفئة، وصفر قاعدة CSS تُحقن أثناء تغيير الصفحة.
ماذا يقول هذا للشركات ذات تطبيقات الويب الكبيرة
بالنسبة إلى شركة برمجيات، المهمة هنا هي استبدال مكتبة واجهة أمامية أساسية في قاعدة شيفرة كبيرة ونشطة دون تجميد العمل على المنتج. وجمع جواب Linear ثلاثة أجزاء: محوّل حتمي للجزء المتكرر الضخم، ووكلاء بنطاقات ضيقة للباقي، ومهندسين للحكم والفحوص البصرية. ورأيها هي أن الوكلاء كانوا سيتحملون جزءًا أكبر من العمل اليوم.
والسوق الأوسع يتجه الاتجاه نفسه. فيفيد InfoQ بأن Cursor انتقلت إلى StyleX من Tailwind، وخلص بودكاست Syntax إلى أن الصلابة الإضافية ليست ممتعة للبشر، لكن الوكلاء يزدهرون بها.
أسئلة وأجوبة
كم استغرق انتقال Linear إلى StyleX؟
استغرق نحو خمسة أشهر وأكثر من 1,000 طلب دمج. وانتهت Linear في أوائل أغسطس 2026، ووصف سكوفهوس المشروع في 26 أغسطس 2026.
لماذا اختارت Linear StyleX على vanilla-extract؟
قدّمت vanilla-extract استخراجًا ثابتًا وأمان أنواع، لكن Linear وجدت واجهتها البرمجية مجزأة ولم تُرد ملفات أنماط منفصلة. أما StyleX فيُبقي الأنماط بجانب المكونات وله واجهة برمجية أصغر.
هل أنجز وكلاء الذكاء الاصطناعي الترحيل؟
جزئيًا. فقد أنجز محوّل حتمي معظم العمل المتكرر، وتولى الوكلاء مهام محددة النطاق، وتولى المهندسون الفحوص البصرية إلى أن وصل نموذجا Fable وSol في منتصف المشروع.
رؤية MOZGII
كيف كنا سنبنيه
هذه الحالة نموذج جيد لأي ترحيل كبير للشيفرة، لأن Linear لم تبدأ بتسليم المهمة إلى الوكلاء. بل كتبت أولًا محوّلًا قائمًا على القواعد مع مجموعة اختبارات كبيرة، واستخدمت الوكلاء في الأجزاء التي لا يعالجها المحوّل، وأبقت الناس على العمل الذي لا تجيده الآلات بعد، مثل الحكم على كون الصفحة تبدو صحيحة. وسنتبع الترتيب نفسه.
لو كنا ندير ترحيلًا كهذا، لبدأنا بالأساس المشترك: رموز التصميم والمكونات الأساسية التي يجب أن يستخدمها كل ملف محوَّل. ويعالج المحوّل الأنماط الشائعة ويرفض ما لا يتعرف عليه، فتذهب الحالات الغريبة إلى وكيل أو شخص بدل أن تُحوَّل خطأً. ويحصل الوكلاء على مهمة صغيرة محددة جيدًا في كل مرة، مع أمثلة وسكربت يتحقق من النتيجة. ويمنع عدّاد ظاهر وفحص في كل طلب دمج تسلل الشيفرة القديمة النمط من جديد.
وسينهار الأمر عند الفحوص البصرية. فقد تُترجم الشيفرة وتنجح الاختبارات بينما تبدو حالة تمرير أو سمة داكنة خاطئة، ووجدت Linear أن الوكلاء يتعثرون هناك بالضبط. وسنضيف مقارنات لقطات شاشة لكل مكوّن محوَّل ونرسل أي فرق إلى شخص. والمقياس الوحيد الذي سنتابعه هو حصة ملفات التنسيق التي لا تزال على المكتبة القديمة أسبوعًا بأسبوع، إلى جانب الملفات الجديدة المضافة بالنمط القديم.
بعد ذلك، سنحوّل قواعد الفحص إلى معيار للشيفرة الجديدة، ليبدأ إعادة التصميم التالي نظيفًا.
المصادر
من أين جاءت حقائق هذا الخبر.