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

רוב דודסון
רוב דודסון

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

בהרצאה שערך ב-Chrome Dev Summit, הסביר מאט מק'נולטי, מנהל ההנדסה של צוות Polymer, מה זה Polymer ומפרט את מפת הדרכים של Polymer 1.0.

מה זה פולימר?

הראשונה, מה זה בדיוק פולימר?

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

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

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

פולימר ממתיקים את רכיבי האינטרנט

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

ניסוי הפולימר

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

דרוש שיפור בכרטיס הדוח של פולימר

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

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

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

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

שכבות

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

ארגון הפולימר ארגון מחדש לשכבות

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

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

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

DOM של צל צר

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

במהדורה הבאה של הפולימר ייעשה שימוש בגישה שונה, תוך שימוש בשכבה בסגנון shim שמכסה רק את הפולימר הנדרש.

הצללית של Shim מהירה יותר

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

מתבצעת העברה אל webcomponents.org

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

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

Polyfills עוברים אל webcomponents.org

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

תוצאות

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

מהירות

ב-Chrome, Polymer מהיר פי 5 וב-Safari יש מהירות גבוהה פי 8.

Polymer מהיר פי 8 ב-Safari

גודל הקובץ

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

גודל הפולימר קטן עכשיו ב-87%

מפת דרכים

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

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

מפת דרכים של פולימרים, בטא ברבעון 1, 1.0 ברבעון 2

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

הניסוי נגמר

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