divmagic Make design
SimpleNowLiveFunMatterSimple
كيف عززت GitHub الأداء من خلال شحن المزيد من CSS – وكيف يمكنك أن تفعل ذلك أيضًا
Blogs›CSS›كيف عززت GitHub الأداء من خلال شحن المزيد من CSS – وكيف يمكنك أن تفعل ذلك أيضًا
CSS

كيف عززت GitHub الأداء من خلال شحن المزيد من CSS – وكيف يمكنك أن تفعل ذلك أيضًا

كيف عززت GitHub الأداء من خلال شحن المزيد من CSS – وكيف يمكنك فعل ذلك أيضًا

في خطوة هندسية جريئة، كشفت GitHub مؤخرًا تفاصيل هجرتها الكاملة من CSS-in-JS إلى CSS عادي مكتوب بخط اليد ومنظم جيدًا. النتيجة؟ قفزة هائلة في سرعة الموقع وتجربة المستخدم. هذه ليست عودة إلى الأساليب القديمة؛ إنها استراتيجية محسوبة بعناية تثبت أن شحن المزيد من CSS يمكن أن يجعل موقعك أسرع بالفعل. في هذا الغوص العميق، سنفصل رحلة GitHub، والأساس التقني وراءها، ومكاسب الأداء، وكيف أن أدوات مثل DivMagic تجعل هذا النهج في متناول كل مطور واجهة أمامية.

34%
improvement in Largest Contentful Paint

أحدثت CSS-in-JS ثورة في طريقة تفكيرنا في الأنماط المقيدة والهندسة القائمة على المكونات، لكنها جاءت بتكاليف خفية. دفع حقن الأنماط في وقت التشغيل، وزيادة حزم JavaScript، وأوقات التحليل الأبطأ العديد من المواقع ذات الزيارات العالية إلى إعادة فحص استراتيجيات التنسيق الخاصة بها. قررت GitHub، إحدى أكثر منصات المطورين زيارة في العالم، تغيير السيناريو: إزالة طبقة التجريد وتقديم ملفات CSS ثابتة وخفيفة من البداية.

مفارقة أداء CSS‑in‑JS

لسنوات، اعتمدت الفرق مكتبات CSS‑in‑JS مثل styled-components أو Emotion لفوائدها في تجربة المطور: CSS تلقائي حرج، وتقييد، وأنماط ديناميكية، وتواجد مشترك. ولكن مع توسع التطبيقات، غالبًا ما تأتي هذه الفوائد بثمن.

ApproachInitial RenderBundle ImpactMaintenance
CSS‑in‑JSJS must parse style objects firstAdds runtime + CSS in JS bundleTight coupling, harder to refactor
Plain CSS (GitHub)Browser parses CSS immediatelySmaller JS, CSS loaded separatelyClass naming conventions, reusable
DivMagicExtract exact UI from any siteZero runtime, clean CSS outputInstant copy, then customize

يظهر الجدول أعلاه تباينًا واضحًا. كشف تحليل GitHub الخاص أن حجم حزمة JavaScript تضخم بسبب كود وقت التشغيل وتعريفات الأنماط الخاصة بـ CSS-in-JS والتي كان يمكن أن تكون ثابتة. والأسوأ من ذلك، أن هذه الأنماط كان يجب تحليلها وحقنها بواسطة JavaScript قبل أن يتمكن المتصفح من الرسم، مما أخر رسم المحتوى الأول (FCP) ورسم أكبر محتوى (LCP).

25%
faster Time to Interactive on github.com

من خلال نقل جميع الأنماط إلى ملفات CSS مستقلة، أزالت GitHub الحمل الزائد لوقت التشغيل. يمكن للمتصفح جلب وتحليل CSS بالتوازي مع HTML، مما يزيل العوائق عن التقديم. تحسنت مقاييس Core Web Vitals للموقع عبر المجلس، وهو عامل حاسم لتجربة المستخدم وتحسين محركات البحث.

الهجرة: المزيد من CSS، ولكن CSS أذكى

وصف فريق هندسة GitHub – جوش بلاك وماري لوكا – عمليتهم في منشور مدونة مفصل. بدلاً من إعادة كتابة شاملة، اعتمدوا استراتيجية مكونًا تلو الآخر، لتحويل كل قطعة واجهة من CSS-in-JS إلى CSS نقي مع الحفاظ على عدم التوقف.

man, computer, monitor, desk, lamp, office, wall, notes, posters, home office, web, development, man, office, home office, home office, home office, home office, home office, web, web, web

40%
reduction in CSS payload size

قد يبدو هذا غير بديهي: كيف يمكنك شحن المزيد من CSS مع تقليل الحمولة؟ الإجابة تكمن في إزالة الكود الميت وتقسيم CSS الحرج. في عالم CSS-in-JS، تم إنشاء العديد من الأنماط بشكل ديناميكي، وغالبًا ما تضمنت قواعد غير قابلة للوصول أو محددات شديدة الخصوصية. من خلال تدقيق سطح واجهة المستخدم الفعلي، تخلصت GitHub من الأنماط غير المستخدمة واستخدمت أدوات مثل PurgeCSS لإزالة أي شيء لم يتم تقديمه في الصفحة الحالية.

Performance Metrics Comparison: CSS-in-JS vs Plain CSS

استثمر الفريق أيضًا بكثافة في خط أنابيب بناء قوي يمكنه هز CSS مثل JavaScript. قدموا خطوة "CSS حرج داخلي" تستخرج الأنماط اللازمة للمحتوى المرئي أعلى الصفحة وتضمينها في <head>، بينما يتم تحميل الباقي بشكل غير متزامن. هذا النمط – المعروف باسم "تحميل CSS التدريجي" – يضمن أن تصبح الصفحة قابلة للتفاعل بشكل أسرع دون وميض من المحتوى غير المنسق.

مقاييس الأداء التي تتحدث بصوت عالٍ

لم تحسن هجرة GitHub المعايير الاصطناعية فحسب؛ بل أخبرت بيانات مراقبة المستخدم الحقيقية (RUM) نفس القصة. دعنا نلقي نظرة على بعض الأرقام الرئيسية:

100%
of github.com migrated to plain CSS
  • أكبر محتوى مطليتحسن بنسبة 34٪، قفزًا من "يحتاج تحسنًا" إلى عتبة "جيد" في Core Web Vitals من Google. -وقت التفاعلأصبح أسرع بنسبة 25٪، مما يعني أن المستخدمين يمكنهم التفاعل مع الصفحة في وقت مبكر. -حجم حمولة CSSانخفض بنسبة 40٪ على الرغم من الانتقال من الأنماط المولدة بواسطة JS إلى ملفات ثابتة. -تأخير الإدخال الأولاختفى تقريبًا لمعظم الجلسات، حيث كان الخيط الرئيسي أقل ازدحامًا بحسابات الأنماط.

لم تكن هذه المكاسب مجرد انتصارات تقنية؛ بل ترجمت مباشرة إلى تفاعل أفضل ومعدلات ارتداد أقل على github.com.

"فوجئنا بمدى تحسين مجرد إزالة تجريد CSS-in-JS لخط أنابيب التقديم لدينا. المتصفح يعرف كيية التعامل مع CSS بكفاءة – كل ما كنا نحتاجه هو تريكه يقي بمهمته." – فريق هندسة GitHub

لماذا يهم هذا لكل مطور واجهة أمامية

قد تفكر، "أنا لا أدير منصة بحجم GitHub، فلماذا يهمني؟" الإجابة هي أن نفس المبادئ تنطب في أي مقياس. تقدم CSS-in-JS اعة تابعا ببطىء مكن أن يبطئ موقعك بمئات اليل ثوان – وفي أداء الويب، كل ميل ثاني يحسب.

تم تحسين المتصفحات الحديثة بشكل لا يصدق لتحليل CSS العادي. يمكنها إنشاء CSSOM (نموذج كائن CSS) في خص منفصل، وتخزينه بكفاءة، وتطبيقه على DOM دون قطع تنفيذ JavaScript. عندما تولد أنماط عر طري JavaScript، فأنت تكسر ذلك1.تدقيق الأنماط الحالية– استخدم أدوات مثل PurgeCSS أو راجع يدويًا القواعد المستخدمة فعليًا في الإنتاج. ستجد غالبًا 30–50% من CSS غير مستخدم. 2.اعتماد نهج CSS الحرج– قم بتضمين الأنماط الدنيا اللازمة للرسم الأولي وأجل الباقي. يمكن لأدوات مثل Critical أو إضافات Webpack المخصصة أتمتة ذلك. 3.استفد من خصائص CSS المخصصة– فهي تقلل التكرار وتجعل التصميم الموضوعي بسيطًا. نظام رموز التصميم الجديد في GitHub مثال رائع. 4.استخدم BEM أو CSS الوظيفي– اختر اصطلاح تسمية يمنع التصادم دون عزل وقت التشغيل. 5.اختبر تدريجيًا – قم بترحيل مكون واحد في كل مرة وراقب الأداء باستخدام مراقبة المستخدم الحقيقية.

"كان أكبر اكتشاف هو أن CSS العادي، عندما يتم تنظيمه جيدًا، يتوسع بشكل أفضل بكثير مما كنا نتخيله – حتى على موقع معقد مثل GitHub."

احتضان البساطة

قصة نجاح GitHub هي تذكير قوي بأن أفضل أداة أحيانًا هي تلك التي تفهمها المتصفحات تمامًا بالفعل. من خلال شحن المزيد من CSS – مصمم بعناية، ومنقى، ومجزأ – قدموا لمستخدميهم تجربة أسرع وأكثر سلاسة مع تبسيط مجموعة أدوات التطوير الخاصة بهم.

website, web design, development, code, programming, marketing, office, business, agency, website, website, web design, web design, web design, web design, web design, agency

مع DivMagic، أصبحت تلك البساطة الآن في متناول كل مشروع. يمكنك تجاوز احتكاك CSS-in-JS، واستخراج أي واجهة مستخدم تعجبك، والتركيز على بناء تجارب رائعة. في المرة القادمة التي تكون على وشك import styled from 'styled-components'، اسأل نفسك: هل يمكن لـ CSS العادي أن يفعل هذا بشكل أفضل؟ قد تكون الإجابة نعم.

ابدأ الإنشاء باستخدام DivMagic اليوم

انضم إلى أكثر من 10000 من المطورين والمصممين وأصحاب الأعمال لنسخ التعليمات البرمجية من أي موقع ويب واستخدامها في مشاريعهم الخاصة.

Get DivMagic for 42% off

Limited time deal for 22:45