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

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

في حديثه في مؤتمر Chrome Dev Summit، أوضح مات ماكنوتي، المدير الهندسي لفريق البوليمر، ماهية البوليمر، وشرح أيضًا خطة تطوير البوليمر 1.0.

ما هو البوليمر؟

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

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

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

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

يجعل البوليمر مكونات الويب أفضل

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

تجربة البوليمر

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

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

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

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

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

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

الطبقات

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

تمت إعادة هيكلة البوليمر إلى طبقات.

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

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

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

نموذج العناصر في المستند (DOM) لتظليل التظليل

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

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

"تظليل الظلام" أسرع بكثير

ستظل تقنية polyfill الحالية مفعّلة لمكوّنات الويب العامة غير البوليمرية.

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

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

لتوضيح هذا التمييز، يتم نقل رموز polyfills إلى webcomponents.org وقد تمت إعادة تسميتها إلى webcomponents.js.

نقل Polyfills إلى webcomponents.org

تهدف هذه الخطوة إلى مساعدة مؤلفي المكتبة الآخرين في الاستفادة من رموز polyfills بدون أي التباس. سيستمر فريق البوليمر في المساهمة في هذه الأشكال البرمجية، ولكن نأمل أن يجعل هذا التغيير من الموارد التي يمكن مشاركتها في المجتمع.

النتائج

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

السرعة

على Chrome، أصبح Polymer الآن أسرع بمقدار 5 مرات، وعلى Safari ازدادت سرعة بمقدار 8 أضعاف.

Polymer الآن أسرع بمقدار 8 مرات في Safari

حجم الملف

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

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

خارطة الطريق

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

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

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

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

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

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