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.
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 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ć?
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.
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.
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.
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
.
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.
Rozmiar pliku
Rozmiar pliku został zmniejszony o 87%, ze 123 KB do 15 kB (6 kB w formacie gzip).
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.
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!