Chrome Dev Summit 2014 - Polymer - State of the Union

پلیمر و اجزای وب اخیراً موضوعات بسیار داغی هستند و از آنجایی که این اکوسیستم به سرعت در حال تکامل است، اغلب برای توسعه دهندگان می تواند دشوار باشد که در جریان آخرین تغییرات قرار بگیرند.

مت مک‌نالتی، مدیر مهندسی تیم پلیمر، در سخنرانی خود در Chrome Dev Summit، توضیح داد که پلیمر چیست و همچنین نقشه راه پلیمر 1.0 را تشریح کرد.

پلیمر چیست؟

اول اینکه دقیقاً پلیمر چیست؟

Polymer کتابخانه ای است که به شما کمک می کند عناصر و برنامه ها را از اجزای وب بسازید. کامپوننت های وب مجموعه ای پیشرفته از استانداردهای جدید هستند که به توسعه دهندگان اجازه می دهد واژگان HTML را با عناصر سفارشی خود گسترش دهند.

پلیمر به توسعه دهندگان کمک می کند تا برنامه ها را سریعتر بسازند

از آنجایی که Web Components به گونه‌ای طراحی شده‌اند که یک نسخه اولیه جدید برای مرورگر باشد، به این معنی است که آنها بسیار قدرتمند هستند اما سطح بسیار پایینی نیز دارند و کار با آنها به مقدار کمی کد نیاز دارد.

پلیمر کامپوننت های وب را شیرین تر می کند

پلیمر کار با اجزای وب را با "قند کردن" نحو ساده تر می کند. این مقدار کد دیگ بخار مورد نیاز برای نوشتن را کاهش می‌دهد و یک سبک توضیحی اضافه می‌کند، بنابراین ایجاد مؤلفه‌های وب به آسانی نوشتن HTML است.

آزمایش پلیمر

پلیمر به‌عنوان آزمایشی آغاز شد تا ببینیم آیا می‌توانیم استانداردهای مؤلفه وب را چند برابر کنیم و قبل از عرضه این فناوری‌ها در همه مرورگرها، از توسعه‌دهندگان بازخورد دریافت کنیم. همانطور که توسعه دهندگان بیشتری شروع به استفاده از Polymer کردند، از پلیمر فقط به یک کتابخانه واقعی پر از ویژگی های بهره وری (پیوند داده، ناظران تغییر ویژگی، یافتن خودکار گره و غیره) تغییر کرد. اما همه آزمایش‌ها نتایجی دارند، پس چگونه این کار را انجام دادیم؟

کارنامه پلیمری نیاز به بهبود دارد

در حالی که بسیاری از توسعه دهندگان گفتند که از بیان و بهره وری حاصل از کار با مؤلفه های وب در پلیمر خوششان می آید، آنها همچنین نگرانی هایی را در مورد عملکرد و پیچیدگی کلی ابراز کردند.

این یک تنش طبیعی است که پلیمر در تمام طول این مدت داشته است: آزمایشی باشد برای پیشبرد پلت فرم وب، اما همچنین ایجاد چیزی ارزشمند برای تولید که توسعه دهندگان بتوانند به آن وابسته باشند.

تغییرات آتی

تیم Polymer نگاهی دقیق به تمام ویژگی‌های کتابخانه انداخته است و هدف آن این است که نسخه‌ای کم‌کم‌تر و آماده تولید که توسعه‌دهندگان بتوانند از استفاده از آن مطمئن باشند.

لایه های

پلیمر به یک سری لایه بازسازی شده است. ویژگی‌های اصلی سریع و نازک هستند، در حالی که ویژگی‌های پیشرفته‌تر انتخاب می‌شوند. برای اکثر موارد استفاده، ویژگی های اصلی باید نیازهای توسعه دهندگان را پوشش دهند.

پلیمر به صورت لایه‌ای بازسازی شده است

اتصال داده های ساده شده

سیستم اتصال داده پلیمر نیز به طور قابل توجهی برای عملکرد بهینه شده است. پس از رویکرد لایه‌ای، اتصال دوطرفه اکنون انتخاب شده است، که پیش‌فرض اتصالات یک‌طرفه است. همچنین، انواع ویژگی های منتشر شده صریح شده اند و یک تغییر ویژگی اکنون یک رویداد را فعال می کند تا به عناصر کتابخانه های مختلف کمک کند تا راحت تر با هم ارتباط برقرار کنند.

اتصال داده ها ساده شده است

Leaner Shadow DOM

Shadow DOM polyfill یک شاهکار مهندسی شگفت انگیز است. این به گونه ای طراحی شده است که جامع و مطابق با مشخصات باشد، که برای آزمایش کامل پلتفرم اولیه مهم است، اما متأسفانه تعدادی گلوگاه عملکرد را برای ویژگی هایی که پلیمر از آنها استفاده نمی کند، معرفی می کند.

نسخه بعدی پلیمر رویکرد متفاوتی را در پیش خواهد گرفت و از یک لایه شیم سبک استفاده می کند که تنها چیزی که پلیمر نیاز دارد را چند برابر می کند.

سایه شیم بسیار سریعتر است

پلی پر موجود برای اجزای وب عمومی و غیر پلیمری زنده خواهد ماند.

انتقال به webcomponents.org

در مورد پلی‌فیل‌ها، آن‌ها نیز خانه جدیدی پیدا می‌کنند. در حال حاضر بسیاری از توسعه دهندگان در مورد رابطه بین پلیمر و اجزای وب سردرگم هستند. برخی فکر می کنند که برای استفاده از Web Component ها باید از تمام Polymer استفاده کنید، در حالی که در واقع، شما فقط به polyfills نیاز دارید.

برای شفاف‌تر کردن این تمایز، polyfills به webcomponents.org منتقل می‌شوند و اکنون به webcomponents.js تغییر نام داده‌اند.

Polyfills در حال انتقال به webcomponents.org

این حرکت برای کمک به سایر نویسندگان کتابخانه طراحی شده است تا بدون هیچ گونه سردرگمی از مزایای polyfills استفاده کنند. تیم پلیمر به کمک به پلی‌فیل‌ها ادامه خواهد داد، اما امید این است که این تغییر آن‌ها را به منبعی مشترک برای جامعه تبدیل کند.

نتایج

بنابراین نتایج حاصل از این همه تغییرات چیست؟

سرعت

در Chrome، پلیمر اکنون 5 برابر سریعتر است و در Safari سرعت 8 برابر افزایش یافته است.

پلیمر اکنون در سافاری 8 برابر سریعتر است

حجم فایل

اندازه فایل نیز 87 درصد کاهش یافته است، از 123 کیلوبایت به 15 کیلوبایت (6 کیلوبایت gzip شده).

پلیمر اکنون 87 درصد کوچکتر شده است

نقشه راه

برخی تغییرات API در نسخه بعدی وجود خواهد داشت که با شماره نسخه جدید (0.8) مشخص می شود، اما تیم می خواهد روشن کند که این یک بازنویسی نیست. انتقال پروژه فعلی خود از پلیمر 0.5 به 0.8 باید نسبتاً بی اهمیت باشد.

تیم Polymer همچنین یک نقشه راه برای ارائه شفافیت بیشتر به توسعه دهندگان در مورد نسخه های آینده ترسیم کرده است.

نقشه راه پلیمری، بتا در q1، 1.0 در q2

پیش‌نمایش 0.8 اکنون به‌عنوان یک شعبه در GitHub در دسترس است (اگرچه هنوز به طور فعال در حال توسعه است و فاقد مستندات است). نسخه بتای رسمی 0.9 برای سه ماهه اول 2015 برنامه ریزی شده است و نسخه 1.0 در سه ماهه دوم رخ می دهد.

آزمایش به پایان رسید

با تمام تغییرات اخیر در Polymer، تیم پشت آن در حال ایجاد زمینه ای برای تبدیل Web Components به بخشی جدایی ناپذیر از پشته هر توسعه دهنده است. اگر با Web Components تازه کار هستید، اکنون زمان خوبی است که نگاهی بیندازید و با این فناوری های تحول آفرین آشنا شوید. اگر در حال حاضر با قطعات (و پلیمر) کار می کنید، آینده واقعاً روشن به نظر می رسد. برای همه آخرین به روز رسانی ها، وبلاگ پلیمر را زیر نظر داشته باشید و برای سوالات یا نظرات در لیست پستی پلیمر ثبت نام کنید. هک مبارک!