Chrome Dev Summit 2014 – Polymer – „State of the Union”

Polymer i komponenty sieciowe to obecnie bardzo popularne tematy, a ponieważ ekosystem ewoluuje bardzo szybko, deweloperzy mogą mieć trudności z dotrzymywaniem na bieżąco najnowszych informacji.

W swoim przemówieniu na Chrome Dev Summit Matt McNulty, menedżer ds. inżynierii w zespole Polymer, wyjaśnił, czym jest Polymer, i opisał plan rozwoju wersji Polymer 1.0.

Co to jest Polymer?

Po pierwsze: czym dokładnie jest Polymer?

Polymer to biblioteka, która pomaga w tworzeniu elementów i aplikacji z komponentów internetowych. Komponenty sieciowe to nowoczesny zestaw nowych standardów, które pozwalają programistom rozszerzać słownik HTML o własne elementy niestandardowe.

Polymer pomaga programistom szybciej tworzyć aplikacje

Komponenty sieciowe są zaprojektowane jako nowe podstawowe elementy przeglądarki, dlatego są bardzo wydajne, ale też bardzo niskie, a ich obsługa wymaga trochę kodu.

Polymer sprawia, że komponenty sieciowe są jeszcze bardziej wyraziste

Polymer ułatwia pracę z komponentami internetowymi, uzupełniając składnię o „cukr”. Ogranicza ilość powtarzalnego kodu, który trzeba napisać, i dodaje styl deklaratywny, dzięki czemu tworzenie komponentów sieciowych jest tak proste, jak pisanie kodu HTML.

Eksperyment z polimerami

Zaczęliśmy od eksperymentu Polymer, aby sprawdzić, czy uda nam się spełnić standardy komponentów sieciowych i uzyskać opinie od programistów, jeszcze zanim te technologie zostaną wprowadzone we wszystkich przeglądarkach. W miarę jak coraz więcej programistów zaczęło korzystać z narzędzia Polymer, przestał on być tylko polyfill. Zamiast tego stała się prawdziwa biblioteka pełna funkcji zwiększających produktywność (wiązania danych, narzędzia do obserwowania zmian atrybutów, automatyczne znajdowanie węzłów itp.). Wszystkie eksperymenty dają wyniki. Jak udało nam się je zrealizować?

Karta raportu Polymer wymaga ulepszenia

Wielu programistów stwierdziło, że podoba im się ekspresja i wydajność pracy z komponentami sieciowymi w aplikacji Polymer, ale są też zaniepokojeni wydajnością i ogólną złożonością.

Podkreśla naturalne napięcie, które towarzyszyła mu platforma Polymer od początku. To eksperyment mający pchnąć w rozwój platformy internetowej, ale także stworzyć coś, na którym mogą polegać programiści.

Nadchodzące zmiany

Zespół Polymer dokładnie przyjrzał się każdej funkcji biblioteki w celu opracowania prostszej, gotowej do wykorzystania w środowisku wersji produkcyjnej, której deweloperzy będą mogli bez obaw używać.

Warstwy

Polimer został zmodyfikowany na serię warstw. Podstawowe funkcje działają szybko i sprawnie, a bardziej zaawansowane funkcje będą opcjonalne. W większości przypadków ich główne funkcje powinny zaspokajać potrzeby deweloperów.

Polimer został refaktoryzowany na warstwy

Uproszczone wiązanie danych

System wiązania danych Polymer został również znacząco zoptymalizowany pod kątem wydajności. Zgodnie z podejściem warstwowym wiązanie dwukierunkowe jest teraz dozwolone (domyślnie jest to wiązanie jednokierunkowe). Dodatkowo opublikowane typy właściwości zostały określone jako jawne, a zmiana właściwości wywoła teraz zdarzenie ułatwiające komunikację między elementami z różnych bibliotek.

Uprościliśmy wiązanie danych

Leaner Shadow DOM

Polyfill Shadow DOM to niezwykłe osiągnięcie. Został zaprojektowany tak, aby był kompleksowy i zgodny ze specyfikacjami, co jest ważne dla dokładnego testowania podstawowej platformy, ale niestety powoduje wiele wąskich gardeł w wydajności funkcji, których Polymer nie używa.

W następnej wersji Polymer wykorzystamy warstwę w stylu podkładu kołowego, która wypełnia wyłącznie materiały polimerowe.

Funkcja Shim shadowdom jest znacznie szybsza

Istniejący kod polyfill będzie działać w przypadku ogólnych komponentów sieciowych niepochodzących z polimeru.

Przechodzenie na webcomponents.org

A skoro już mowa o kodach polyfill, te też mają nowe miejsce. Obecnie wielu programistów nie jest pewnych, jaki jest związek między Polymerem a komponentami sieciowymi. Niektórzy sądzą, że do korzystania z komponentów sieciowych trzeba zużywać całą ilość polimeru, podczas gdy w rzeczywistości są to tylko elementy polyfill.

Aby uściślić to rozróżnienie, przenosimy elementy polyfill na stronę webcomponents.org, a jej nazwa została zmieniona na webcomponents.js.

Elementy polyfill pojawiają się na stronie webcomponents.org

Ta zmiana ma pomóc innym twórcom w bibliotece korzystać z kodu polyfill bez obaw. Zespół Polymer będzie nadal współpracował nad tworzeniem kodu polyfill, ale mamy nadzieję, że dzięki tej zmianie staną się one bardziej udostępnionym materiałem dla społeczności.

Wyniki

Jakie są skutki tych wszystkich zmian?

Szybkość

W Chrome przeglądarka Polymer jest teraz 5 razy szybsza, a w Safari 8-krotnie przyspiesza.

Polymer działa teraz 8 razy szybciej w przeglądarce Safari

Rozmiar pliku

Rozmiar pliku został zmniejszony o 87%, ze 123 KB do 15 kB (6 kB w formacie gzip).

Polimer jest teraz o 87% mniejszy

Harmonogram

W następnej wersji wprowadzimy pewne zmiany w interfejsie API, które będą oznaczone nowym numerem wersji (0.8), ale zespół chce wyraźnie zaznaczyć, że nie jest to przeredagowana wersja. Przeniesienie bieżącego projektu z wersji Polymer 0,5 na 0,8 powinno być dość proste.

Zespół Polymer przygotował też harmonogram, który pozwoli deweloperom lepiej zorientować się w nadchodzących wersjach.

Harmonogram rozwoju technologii Polymer, wersja beta w I kwartale, 1.0 w II kwartale

Wersja przedpremierowa w wersji 0.8 jest obecnie dostępna jako gałąź na GitHubie (chociaż jest wciąż bardzo aktywnie rozwijana i nie ma jej dokumentacji). Oficjalna wersja beta wersji 0.9 jest planowana na pierwszy kwartał 2015 r., a wersję 1.0 planujemy wprowadzić w drugim kwartale.

Eksperyment się zakończył

Po ostatnich zmianach w narzędziu Polymer zespół odpowiedzialny za tę technologię buduje podstawy komponentów sieciowych, aby stały się integralną częścią stosu wszystkich programistów. Jeśli dopiero zaczynasz korzystać z Komponentów sieciowych, to doskonała okazja, aby przyjrzeć się rewolucyjnym technologiom. Jeśli pracujesz już z komponentami (i technologią Polymer), przyszłość wygląda naprawdę obiecująco. Na blogu Polymer znajdziesz najświeższe informacje. Jeśli chcesz mieć jakieś pytania lub komentarze, zarejestruj się na listę adresową tej usługi. Powodzenia!