يعتبر البوليمر ومكوّنات الويب من المواضيع الأكثر إثارة للاهتمام في الآونة الأخيرة، ونظرًا للتطور السريع الذي تشهده هذه المنظومة المتكاملة، قد يكون من الصعب على المطوّرين في أغلب الأحيان مواكبة آخر التغييرات.
في حديثه في مؤتمر Chrome Dev Summit، شرح مات ماكنولتي، المدير الهندسي لفريق Polymer، ماهية البوليمر، ووضّح أيضًا خارطة طريق تطوير البوليمر 1.0.
ما هو البوليمر؟
أولهما، ما هو البوليمر بالضبط؟
Polymer هي مكتبة تساعدك على إنشاء عناصر وتطبيقات من مكونات الويب. مكوّنات الويب هي مجموعة متطورة من المعايير الجديدة التي تتيح للمطورين توسيع مفردات HTML باستخدام العناصر المخصصة الخاصة بهم.
نظرًا لتصميم مكونات الويب لتكون أساسًا جديدًا للمتصفح، فهذا يعني أنها قوية جدًا ولكنها أيضًا على مستوى منخفض جدًا وأن العمل معها يتطلب قدرًا معقولاً من التعليمات البرمجية.
يسهّل البوليمر عمل مكونات الويب عن طريق "تحسين" بناء الجملة. يقلل من كمية التعليمة البرمجية النموذجية التي تحتاج إلى كتابتها، ويضيف نمطًا تعريفيًا بحيث لا يقل إنشاء مكونات الويب سهولة عن كتابة HTML.
تجربة البوليمر
بدأ البوليمر كتجربة لمعرفة ما إذا كان بإمكاننا تعبئة معايير مكوّن الويب والحصول على ملاحظات من المطورين قبل أن يتم شحن هذه التقنيات في جميع المتصفحات. ومع بدء زيادة عدد مطوّري البرامج في استخدام البوليمر، تغيّر الوضع من مجرد تعبئة polyfill إلى مكتبة فعلية مليئة بميزات الإنتاجية (ربط البيانات، ومراقبو تغيير السمات، والبحث التلقائي عن العُقد، وما إلى ذلك). ولكن جميع التجارب لها نتائج، فكيف تم إنجازها؟
على الرغم من أنّ العديد من المطوّرين قالوا إنّهم يحبّون إمكانات التعبير والإنتاجية عند استخدام مكوّنات الويب في Polymer، غير أنّهم عبّروا أيضًا عن قلقهم بشأن الأداء والتعقيد بشكل عام.
وهو يسلّط الضوء على التوتر الطبيعي الذي واجهته شركة Polymer طوال الوقت، وهو عبارة عن تجربة لدفع منصة الويب إلى الأمام، وفي الوقت نفسه تقديم شيء جدير بالإنتاج يمكن للمطوّرين الاعتماد عليه.
التغييرات القادمة
ألقى فريق البوليمر نظرة متعمقة على كل ميزة من ميزات المكتبة بهدف طرح إصدار أقل حجمًا وجاهزًا للإنتاج يمكن للمطوّرين أن يشعروا بالثقة في استخدامه.
الطبقات
لقد تمت إعادة تصنيف البوليمر في سلسلة من الطبقات. الميزات الأساسية سريعة ومحدودة، بينما سيتم تفعيل الميزات الأكثر تقدّمًا. في معظم حالات الاستخدام، يجب أن تلبي الميزات الأساسية احتياجات المطوّرين.
ربط البيانات المبسّط
كما تم تحسين نظام ربط البيانات في البوليمر بشكل كبير من أجل تحقيق الأداء المطلوب. ووفقًا للنهج المتعدّد الطبقات، تمّ الآن تفعيل الربط الثنائي، وأصبح الإعداد التلقائي هو عمليات الربط الأحادية الاتجاه. بالإضافة إلى ذلك، تم توضيح أنواع السمات المنشورة بشكل واضح، ويؤدي تغيير السمة الآن إلى تنشيط حدث لمساعدة العناصر من المكتبات المختلفة في التواصل بسهولة أكبر.
عناصر Leaner Shadow DOM
يعد عنصر polyfill Shadow DOM إنجازًا مذهلاً في الهندسة. وقد صُمم ليكون شاملاً ومتوافقًا مع المواصفات، وهو أمر مهم لاختبار النظام الأساسي بدقة، إلا أنه للأسف قدم عددًا من معوقات الأداء للميزات التي لا يستخدمها البوليمر.
سيتخذ الإصدار التالي من البوليمر نهجًا مختلفًا، حيث يستخدم طبقة بنمط الرقائق التي توفر ما يحتاجه البوليمر فقط.
سيتم تفعيل رموز polyfill الحالية لمكوّنات الويب العامة وغير البوليمرية.
جارٍ الانتقال إلى webcomponents.org
بالحديث عن رموز polyfill، فإن هذه العناصر لها منزل جديد أيضًا. في الوقت الحالي، يشعر العديد من المطوّرين بالارتباك بشأن العلاقة بين البوليمر ومكوّنات الويب. يعتقد البعض أنه يجب عليك استخدام البوليمر بالكامل لاستخدام مكونات الويب، في حين أنك في الواقع تحتاج فقط إلى رموز polyfill.
لتوضيح هذا التمييز بشكل أكبر، يتم نقل رموز polyfill إلى webcomponents.org وإعادة تسميتها الآن إلى webcomponents.js
.
تم تصميم هذا النقل لمساعدة مؤلفي المكتبة الآخرين على الاستفادة من رموز polyfills دون أي لبس. سيستمر فريق البوليمر في المساهمة في أشكال polyfill، ولكن الأمل في أن هذا التغيير يجعلهم موردًا مشتركًا للمجتمع.
النتائج
إذًا، ما هي النتائج من كل هذه التغييرات؟
السرعة
أصبح استخدام البوليمر الآن أسرع بـ 5 مرات على متصفِّح Chrome، بينما تمت زيادة السرعة بمقدار 8 أضعاف على Safari.
حجم الملف
كما تم تقليل حجم الملف بنسبة 87%، من 123 كيلوبايت إلى 15 كيلوبايت (6 كيلوبايت مضغوطًا بتنسيق gzip).
خارطة الطريق
ستكون هناك بعض التغييرات التي قد تؤدي إلى أعطال واجهة برمجة التطبيقات في الإصدار التالي، ويشار إليها برقم الإصدار الجديد (0.8)، لكن الفريق يريد توضيح أن هذا ليس إعادة كتابة. ينبغي أن يكون نقل مشروعك الحالي من البوليمر 0.5 إلى 0.8 بسيطًا إلى حد ما.
وضع فريق البوليمر أيضًا خارطة طريق لمنح المطورين مزيدًا من الوضوح حول الإصدارات القادمة.
تتوفر معاينة الإصدار 0.8 الآن كفرع على GitHub (على الرغم من أنه لا يزال قيد التطوير بنشاط ويفتقر إلى الوثائق). وتم التخطيط لإصدار الإصدار 0.9 الرسمي للربع الأول من عام 2015، بينما سيتم طرح الإصدار 1.0 في وقت ما خلال الربع الثاني.
انتهت التجربة
مع كل التغييرات الحديثة في Polymer، يضع الفريق وراءه الأساس الذي ترتكز عليه مكوّنات الويب لتصبح جزءًا لا يتجزأ من حزمة كل مطوّر. إذا كنت مستخدمًا جديدًا لمكونات الويب، فالآن هو الوقت المناسب لإلقاء نظرة والتعرف على هذه التقنيات التحويلية. إذا كنت تعمل بالفعل باستخدام المكونات (والبوليمر)، فإن المستقبل يبدو مشرقًا بالفعل. ابق على اطّلاع على مدونة Polymer لمعرفة آخر الأخبار، واشترِك في القائمة البريدية لبوليمر إذا كانت لديك أي أسئلة أو تعليقات. نتمنّى لك تجربة ممتعة في الاختراق.