مؤتمر Chrome Dev Summit 2014 - البوليمر - حالة الاتحاد

أصبحت Polymer وWeb Components من المواضيع الرائجة في الآونة الأخيرة، وبما أنّ هذا النظام المتكاملة يتطوّر بسرعة، قد يكون من الصعب أحيانًا على المطوّرين مواكبة جميع التغييرات الأخيرة.

في محاضرته التي ألقاها في Chrome Dev Summit، شرح "مات ماكنولتي"، مدير الهندسة في فريق Polymer، ماهية Polymer، كما وضّح خارطة الطريق التي تؤدي إلى Polymer 1.0.

ما هو Polymer؟

أولاً، ما هو Polymer بالضبط؟

‫Polymer هي مكتبة تساعدك في إنشاء عناصر وتطبيقات من مكوّنات الويب. مكونات الويب هي مجموعة حديثة من المعايير الجديدة التي تسمح للمطوّرين بتوسيع مفردات HTML باستخدام عناصرهم المخصّصة.

Polymer يساعد المطوّرين في إنشاء التطبيقات بشكل أسرع

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

Polymer يجعل Web Components أكثر حلاوة

يسهّل Polymer استخدام مكونات الويب من خلال "تحلية" البنية. ويقلّل هذا الأسلوب من كمية الرموز البرمجية المتكرّرة التي تحتاج إلى كتابتها، ويضيف أسلوبًا توضيحيًا لكي يصبح إنشاء مكوّنات الويب سهلًا مثل كتابة HTML.

The Polymer Experiment

بدأ Polymer كتجربة لمعرفة ما إذا كان بإمكاننا استخدام تقنية الملء اللاحق لمعايير Web Component والحصول على ملاحظات من المطوّرين قبل طرح هذه التقنيات في جميع المتصفّحات. مع بدء المزيد من المطوّرين في استخدام Polymer، تطوّر من مجرد مكتبة polyfills إلى مكتبة فعلية مليئة بميزات الإنتاجية (ربط البيانات، ومراقبو تغيير السمات، والعثور التلقائي على العقد، وما إلى ذلك). ولكن لكلّ تجربة نتائج، فكيف كانت نتائجنا؟

بطاقة تقرير Polymer بحاجة إلى تحسين

على الرغم من أنّ العديد من المطوّرين قالوا إنّهم أعجبوا بالتعبيرية والإنتاجية التي يحقّقونها من خلال العمل مع Web Components في Polymer، إلا أنّهم أعربوا أيضًا عن مخاوفهم بشأن الأداء والتعقيد العام.

ويسلّط الضوء على تناقض طبيعي كان قائمًا في Polymer منذ البداية: أن تكون تجربة لدفع منصة الويب إلى الأمام، ولكن أيضًا أن تُنشئ شيئًا يستحق الإنتاج ويمكن للمطوّرين الاعتماد عليه.

التغييرات القادمة

لقد راجع فريق Polymer كل ميزة من ميزات المكتبة بهدف إنشاء إصدار أكثر بساطة وجاهز للاستخدام يمكن للمطوّرين الوثوق به.

الطبقات

تمّت إعادة تنظيم Polymer إلى سلسلة من الطبقات. إنّ الميزات الأساسية سريعة وخفيفة، في حين أنّ الميزات الأكثر تقدمًا ستكون اختيارية. في معظم حالات الاستخدام، يجب أن تلبّي الميزات الأساسية احتياجات المطوّرين.

تمت إعادة تنظيم Polymer إلى طبقات

ربط البيانات المبسّط

تم أيضًا تحسين نظام ربط البيانات في Polymer بشكل كبير لتحسين الأداء. وفقًا للنهج المتعدّد الطبقات، أصبح الربط باتجاهَين الآن اختياريًا، مع أنّ الإعداد التلقائي هو عمليات الربط باتجاه واحد. بالإضافة إلى ذلك، تمّ توضيح أنواع المواقع المنشورة، وأصبح تغيير الموقع الآن يُطلق حدثًا لمساعدة العناصر من المكتبات المختلفة على التواصل بسهولة أكبر.

تم تبسيط عملية ربط البيانات

واجهة Shadow DOM أكثر بساطة

إنّ تقنية Shadow DOM polyfill هي إنجاز هندسي رائع. تم تصميمه ليكون شاملاً ومتوافقًا مع المواصفات، وهو أمر مهم لاختبار العناصر الأساسية للنظام الأساسي بدقة، ولكنّه يتسبب في حدوث عدد من نقاط الاختناق في الأداء للميزات التي لا يستخدمها Polymer.

سيعتمد الإصدار التالي من Polymer منهجًا مختلفًا، باستخدام طبقة على غرار العنصر البديل الذي يضيف polyfills فقط لما يحتاجه Polymer.

تقنية shadowdom في العناصر النائبة أسرع بكثير

وسيظلّ الpolyfill الحالي متاحًا لمكوّنات الويب العامة غير المستندة إلى Polymer.

الانتقال إلى webcomponents.org

بالحديث عن polyfills، سيتم نقلها أيضًا إلى مكان جديد. في الوقت الحالي، لا يفهم العديد من المطوّرين العلاقة بين Polymer وWeb Components. يعتقد البعض أنّه يجب استخدام كلّ أدوات Polymer لاستخدام Web Components، ولكن في الواقع، ما عليك سوى استخدام أدوات الملء.

لتوضيح هذا الاختلاف بشكل أكبر، يتم نقل مكونات الpolyfill إلى webcomponents.org، وتم الآن إعادة تسميتها إلى webcomponents.js.

نقل مكونات الpolyfill إلى webcomponents.org

تم اتخاذ هذا الإجراء لمساعدة مؤلفي المكتبات الآخرين في الاستفادة من وحدات الملء بدون أي التباس. سيواصل فريق Polymer المساهمة في polyfills، ولكن نأمل أن يؤدي هذا التغيير إلى جعله موردًا مشترَكًا للمنتدى.

النتائج

ما هي نتائج كل هذه التغييرات؟

السرعة

أصبح إطار عمل Polymer أسرع 5 مرات في Chrome، وأسرع 8 مرات في Safari.

أصبح Polymer أسرع الآن بـ 8 مرات في Safari

حجم الملف

تم أيضًا تصغير حجم الملف بنسبة %87، من 123 كيلوبايت إلى 15 كيلوبايت (6 كيلوبايت مضغوط بتنسيق gzip).

حجم البوليمر أصغر الآن بنسبة% 87

خارطة الطريق

ستتمّ إجراء بعض التغييرات الأساسية في واجهة برمجة التطبيقات في الإصدار التالي، ما يُشير إليه رقم الإصدار الجديد (0.8)، ولكن يريد الفريق توضيح أنّ هذه التغييرات ليست إعادة كتابة. من المفترض أن يكون نقل مشروعك الحالي من الإصدار 0.5 من Polymer إلى الإصدار 0.8 أمرًا بسيطًا إلى حدٍ ما.

وقد وضع فريق Polymer أيضًا خارطة طريق لمنح المطوّرين المزيد من الوضوح حول الإصدارات القادمة.

خطة عمل Polymer، الإصدار التجريبي في الربع الأول، الإصدار 1.0 في الربع الثاني

تتوفّر الآن معاينة الإصدار 0.8 كفرع على GitHub (على الرغم من أنّه لا يزال يتم تطويره بشكل نشط جدًا ولا تتوفّر له مستندات). من المخطّط طرح الإصدار التجريبي الرسمي 0.9 في الربع الأول من العام 2015، وطرح الإصدار 1.0 في وقت ما من الربع الثاني.

انتهاء التجربة

مع كل التغييرات الأخيرة في Polymer، يضع الفريق الذي يقف وراءه الأساس ليصبح Web Components جزءًا لا يتجزأ من حِزمة كل مطوّر. إذا كنت حديث العهد باستخدام Web Components، هذا هو الوقت المناسب للاطّلاع على هذه التقنيات التحويلية والتعرّف عليها. إذا كنت تعمل حاليًا مع المكوّنات (وPolymer)، يبدو المستقبل مشرقًا حقًا. يمكنك متابعة مدوّنة Polymer للاطّلاع على آخر الأخبار، والاشتراك في القائمة البريدية الخاصة بها لطرح الأسئلة أو الملاحظات. مع أطيب التحيّات،