12

تجربتك مع Polymer ورأيك فيه وفي Web Components

سمعت منذ أكثر من سنة عن Polymer ولكن لم أعره اهتماما كبيرا لأني لم أجد نفسي استعمله بعد، كما أنّه بدى معقدا في البداية

مؤخرا بينما كنت أبحث عن عناصر UI لاستخدامها صادفت عناصر Polymer والتي هي مبنية على material design وقد أعجبتني كثيرا، المشكلة أنّه لا يمكنك استخدامها خارج Polymer

لذا بدأت أفكر في 3 حلول، إما محاولة تقليدها لتعمل بشكل طبيعي وتوفر نفس الخواص الأصلية ولكن هذا سيتطلب بعض الوقت وقد لا يعطي نفس النتائج ولكن لاضرر لدي في القيام بذلك

الحل الثاني كان محاولة التعديل على الملفات وتعديلها بحيث تعمل لوحدها، أيّ UI فحسب بدون خواص Polymer هذا طبعا سيأخذ وقتا كبيرا جدا

الحل الثالث، وهو في الأغلب ما يقوله الجميع (لماذا لا تستخدم polymer كاملة فحسب) المشكلة هي في حجمها الكبير الذي يصل إلى 180kb (متضمنة polyfill للمتصفحات، وبحجم 60kb مضغوظة [Gzipped])

قد أستعين بهذا الحل في الأغلب، ولكن لا أريد أن أشعر كأني مخدوع وأرسل للمستخدم 60kb وأنا لا أستفيد سوى من جزء بسيط منها، لذا أفكر في استخدام كامل مميزاتها، لذا أحاول أن أفكر كيف سأقوم بهذا بالتحديد

أطرح هذا الموضوع لأسمع عن آرائك بشأن هذه المكتبة، وفي حال استخدمتموها من قبل، وكيف كانت التجربة، وهل أفادتكم حقا

وأيضا رأيك بشكل عام في Web components وماهي الأشكال التي ينفع استخدامها فيها، والأشكال التي يجدر بك فقط نسخ الكود فحسب


نحن في القرن الواحد و العشرين

ماذا تعني 60kb أو 180kb ؟

الاحظ في معظم مشاركاتك الانتباه لهذه التفاصيل

لكن الا تعتقد ان التدقيق في مثل هذه الأمور يكون على حساب الصورة الكاملة ؟

نعم أدرك هذا، ولكنك تنظر للأمر من جهة واحدة، حاسوب مكتبي وسرعة انترنت DSL

لديك سرعة انترنت 3g حيث التحميل بطيء

لديك معظم الهواتف الذكية تملك قدرات محدودة، ملف جافاسكربت بحجم 180 كيلوبايت سيشلها تماما، بل إنّه قادر على تعطيل المتصفح أيضا وجعله بطيئا في كل بعض الأحيان

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

في بعض الأحيان الإجابة هي لا، في مواقع مثل مدونات، أو شيء سلعته الأساسية هي الزوار

في بعض الأحيان الإجابة هي نعم، في مواقع مركزة مثل تطبيق ويب، متجر إلكتروني، أو منصة عمل

أيضا أستخدم CDN وتقنيات الضغط حتى أجعل الموقع خفيفا قدر الامكان للمستخدم، وأحاول أن لا أحد نفسي إطلاقا لذا تجدني أبحث عن حلول أخرى تقوم تعطي نفس النتيجة (إذا تطلب مني الأمر عملا إضافيا)

في بعض الأحيان الإجابة هي لا، في مواقع مثل مدونات، أو شيء سلعته الأساسية هي الزوار

في بعض الأحيان الإجابة هي نعم، في مواقع مركزة مثل تطبيق ويب، متجر إلكتروني، أو منصة عمل

انت اجبت على سؤالك.

في حال مشروعك صغير نسبيا او web components بسيطة .. لا حاجة لاستخدام مثل تلك الحلول.

اذا كنت مهتم ب Web components القى نظرة على reactjs

مثال

يستخدم reactjs مع ان التصميم material design

اذا كنت مهتم ب Web components القى نظرة على reactjs

نعم سبق وأشدت على تلك المكتبة في تعليقي في الأسفل، أرى أنها الحل المناسب

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

وبالإضافة إلى ما ذَكر، لماذا أستخدم 180 كيلوبايت في حين يمكنني أن أستخدم 10% منها (وربما أقل)؟ وخصوصًا إن كان استعمالي لها لن يزيد عن 25% من خصائصها (كالعديد من الأمثلة حاليًا).