מפגש הפסגה של מפתחי Chrome לשנת 2014 - פולימר - מצב האיחוד

לאחרונה, Polymer ורכיבי אינטרנט הם נושאים חמים מאוד, ומכיוון שסביבת העבודה הזו מתפתחת במהירות, לפעמים קשה למפתחים לעמוד בקצב של כל השינויים האחרונים.

בנאום שלו בכנס Chrome Dev Summit, Matt McNulty, מנהל ההנדסה של צוות Polymer, הסביר מהו Polymer ותיאר את תוכנית העבודה להשקת Polymer 1.0.

מהו Polymer?

קודם כול, מהו Polymer בדיוק?

Polymer היא ספרייה שבעזרתה אפשר ליצור רכיבים ואפליקציות מרכיבי אינטרנט. רכיבי אינטרנט הם קבוצה מתקדמת של תקנים חדשים שמאפשרים למפתחים להרחיב את אוצר המילים של HTML באמצעות רכיבים מותאמים אישית משלהם.

Polymer עוזר למפתחים ליצור אפליקציות מהר יותר

רכיבי ה-Web Components תוכננו להיות רכיבים פרימיטיביים חדשים לדפדפן, כלומר הם חזקים מאוד אבל גם ברמה נמוכה מאוד, ועבודה איתם דורשת הרבה קוד.

Polymer משפר את רכיבי האינטרנט

באמצעות Polymer קל יותר לעבוד עם רכיבי אינטרנט, כי הוא 'משפר' את התחביר. הוא מפחית את כמות הקוד הסטנדרטי שצריך לכתוב, ומוסיף סגנון דקלרטיבי, כך שיצירת רכיבי אינטרנט היא קלה כמו כתיבת HTML.

הניסוי של Polymer

Polymer התחיל כניסוי כדי לבדוק אם נוכל להשתמש ב-polyfill לתקני Web Component ולקבל משוב ממפתחים לפני שהטכנולוגיות האלה יושקו בכל הדפדפנים. ככל שיותר מפתחים התחילו להשתמש ב-Polymer, הוא השתנה מ-polyfills בלבד לספרייה מלאה בתכונות יעילות (קישור נתונים, מעקב אחרי שינויים במאפיינים, איתור אוטומטי של צמתים וכו'). אבל לכל ניסוי יש תוצאות, אז מה היו התוצאות שלנו?

דוח הבדיקה של Polymer זקוק לשיפור

מפתחים רבים אמרו שהם אהבו את היכולת להביע את עצמם ואת העלייה ביעילות של העבודה עם רכיבי אינטרנט ב-Polymer, אבל הם גם הביעו חששות לגבי הביצועים והמורכבות הכוללת.

ההחלטה הזו מדגישה את המתח הטבעי שהיה תמיד ב-Polymer: להיות ניסוי שמקדם את פלטפורמת האינטרנט, אבל גם ליצור משהו שראוי לייצור ושהמפתחים יכולים להסתמך עליו.

בקרוב יהיו שינויים

צוות Polymer בחן לעומק כל תכונה בספרייה במטרה ליצור גרסת ספרייה יעילה יותר ומוכנה לייצור, שמפתחים יוכלו להשתמש בה בביטחון.

שכבות

Polymer עובר תהליך של טיוב קוד והפיכתו לסדרה של שכבות. התכונות המרכזיות הן מהירות ופשוטה, והתכונות המתקדמות יותר יהיו אופציונליות. ברוב התרחישים לדוגמה, התכונות הבסיסיות אמורות לענות על הצרכים של המפתחים.

Polymer עובר פיתוח מחדש לשכבות

קישור נתונים פשוט

גם מערכת קישור הנתונים של Polymer עברה אופטימיזציה משמעותית לשיפור הביצועים. בהתאם לגישה של שכבות, קישור דו-כיווני הוא עכשיו אופציונלי, והקישורים שמוגדרים כברירת מחדל הם קישורים חד-כיווניים. בנוסף, סוגי הנכסים שפורסמו הועברו לסטטוס מפורש, ושינוי בנכס מפעיל עכשיו אירוע כדי לעזור לאלמנטים מספריות שונות לתקשר בקלות רבה יותר.

קישור הנתונים פשוט יותר

Shadow DOM מצומצם יותר

ה-polyfill של Shadow DOM הוא הישג הנדסי מדהים. הוא תוכנן להיות מקיף ותואמת למפרט, וזה חשוב לבדיקת הרכיב הבסיסי של הפלטפורמה בצורה יסודית. עם זאת, הוא גורם למספר צווארי בקבוק בביצועים של תכונות ש-Polymer לא משתמש בהן.

במהדורה הבאה של Polymer נשתמש בגישה שונה, עם שכבת shim שמבצעת פוליפילינג רק למה ש-Polymer צריך.

ה-shadowdom של Shim מהיר הרבה יותר

ה-polyfill הקיים ימשיך לפעול ברכיבי אינטרנט כלליים שאינם של Polymer.

מעבר אל webcomponents.org

דרך אגב, גם ל-polyfills יהיה בית חדש. בשלב זה, מפתחים רבים מבלבלים בין Polymer לבין Web Components. יש אנשים שחושבים שצריך להשתמש בכל Polymer כדי להשתמש ברכיבי אינטרנט, אבל בפועל צריך רק את ה-polyfills.

כדי להבהיר את ההבדל הזה, אנחנו מעבירים את ה-polyfills אל webcomponents.org, והשם שלהם השתנה ל-webcomponents.js.

העברת פוליפילים אל webcomponents.org

המהלך הזה נועד לעזור לכותבי ספריות אחרים ליהנות מהפוליפילים בלי בלבול. צוות Polymer ימשיך לתרום ל-polyfills, אבל אנחנו מקווים שהשינוי הזה יהפוך אותם למשאב משותף יותר לקהילה.

תוצאות

אז מהן התוצאות של כל השינויים האלה?

מהירות

ב-Chrome, Polymer מהיר עכשיו פי 5, וב-Safari חלה האצהרה של פי 8.

Polymer מהיר פי 8 יותר ב-Safari

גודל הקובץ

גודל הקובץ גם הצטמצם ב-87%, מ-123KB ל-15KB (6KB בפורמט GZIP).

קובץ ה-Polymer קטן עכשיו ב-87%

תוכנית עבודה

בגרסה הבאה יהיו שינויים משמעותיים ב-API, שיסומנו במספר הגרסה החדש (0.8), אבל הצוות רוצה להבהיר שזו לא כתיבה מחדש. המעבר של הפרויקט הנוכחי מ-Polymer 0.5 ל-0.8 אמור להיות פשוט למדי.

צוות Polymer גם פרסם תוכנית עבודה כדי לספק למפתחים יותר מידע על הגרסאות הבאות.

תוכנית ניהול למוצר Polymer, גרסה בטא ברבעון 1 וגרסה 1.0 ברבעון 2

גרסת ה-preview 0.8 זמינה עכשיו כענף ב-GitHub (אבל היא עדיין בפיתוח פעיל מאוד וחסר בה מסמכי עזרה). גרסת הבטא הרשמית 0.9 מתוכננת לרבעון הראשון של 2015, וגרסת 1.0 תופץ מתישהו ברבעון השני.

הניסוי הסתיים

בעקבות כל השינויים האחרונים ב-Polymer, הצוות שמאחוריו מנח את היסודות כדי שרכיבי ה-Web יהיו חלק בלתי נפרד מסטאק של כל מפתח. אם זו הפעם הראשונה שאתם משתמשים ברכיבי אינטרנט, זה הזמן להתעמק בטכנולוגיות המהפכניות האלה. אם אתם כבר עובדים עם רכיבים (ו-Polymer), העתיד נראה מבטיח. כדאי לעקוב אחרי העדכונים האחרונים בבלוג של Polymer ולהירשם לרשימת התפוצה של Polymer כדי לשלוח שאלות או תגובות. בהצלחה!