InfoShare to jedna z największych i najpopularniejszych w Polsce konferencji poświęconych branży IT i nowych mediów. W tym roku już po raz drugi mam przyjemność brać w niej udział jako prelegent. W ramach TechStage opowiem o AngularJS 2, następcy AngularJS 1.x.

Angular 1.x

Angular 1.x stał się najpopularniejszym frameworkiem front-endowym. W zeszłym roku zdecydowaliśmy, że zaczniemy go stosować w niektórych nowych projektach Goyello. Mamy więc już pewne doświadczenie, którym możemy się podzielić. Jednocześnie przyglądamy się bacznie nowej wersji tego frameworka.

Absolutny przełom

Bardzo łatwo jest zacząć pracę w Angularze 1.x. Prezentacja, dane i logika aplikacji są w tym frameworku wyraźnie od siebie oddzielone. Doceniają to szczególnie deweloperzy back-endowi, tacy jak ja. Cechą, która cieszy się największym uznaniem, jest dwukierunkowe wiązanie danych (ang. two-way data binding). Wstrzykiwanie zależności (ang. dependency injection) umożliwia lepszą modularyzję kodu i poprawia jego testowalność. Dyrektywy są doskonałym sposobem na tworzenie komponentów wielokrotnego użytku. Wszystko to sprawia, że użytkownicy zakochali się w Angularze od pierwszego wejrzenia.

Nie wszystko złoto, co się świeci

Niewątpliwie Angular 1.x jest świetnym frameworkiem. Jednocześnie jednak jest on bardzo trudny do opanowania. Skomplikowane API i mnogość koncepcji wprowadzonych od czasu stworzenia tego frameworka sprawia, że ciężko jest zrozumieć, a co za tym idzie efektywnie używać Angulara.

Początki Angulara 1.x to 2009 rok, nie jest to więc narzędzie nowe. Dziś zbiera ono coraz więcej krytycznych ocen, głównie za sprawą cech, które przyczyniły się do jego popularności.

W pierwszej chwili dwukierunkowe wiązanie danych wydaje się doskonałym rozwiązaniem. Jednak negatywnie wpływa ono na wydajność aplikacji, a dodatkowo utrudnia debugowanie i wyszukiwanie błędów. Ponadto, wydajność aplikacji znacznie spada wraz ze wzrostem liczby obiektów na stronach.

To prawda, dyrektywy to świetny pomysł. Ale ile czasu zajęło Wam ich opanowanie? Próbowaliście zrozumieć ich API? Restrict, ograniczanie zasięgu (ang. scope), link (pre-link, post-link), compile, transclusion, komunikacja między dyrektywami – to wszystko utrudnia życie deweloperom.

Zespół odpowiedzialny za rozwój Angulara 1.x jest świadomy problemów, jakie napotykają użytkownicy tego frameworka. Podjęto więc decyzję, że jego następca zostanie stworzony praktycznie od zera.

Co nowego w Angularze 2?

Angular 2 bazuje na najnowszych standardach webowych, jak Web Components i ECMAScript 6. Przeglądarki nie wspierają jeszcze wielu z nich. Można ich jednak używać dzięki tzw. polyfillom.

Angular 2 to nowe otwarcie: żadnych kontrolerów, obiekt definiujacy dyrektywy (DDO), $scope, angular.module czy dwukierunkowego wiązania danych.

Nowa wersja frameworka powinna być łatwiejsza do opanowania, dzięki prostszym i bardziej zwięzłym założeniom, jak chociażby architektura oparta na komponentach. Domyślna modułowość Angulara 2 pozwoli na łatwiejsze tworzenie złożonych aplikacji. Dodatkowo powinien on być znacznie szybszy od poprzednika. Osiągnięto to poprzez całkowicie przepisanie sposobu wiązania danych oraz wykrywania zmian.

Angular 2 jest w fazie tworzenia, ale wiele nowości w nim zawartych już podano do publicznej wiadomości. Podczas mojej prezentacji, zatytułowanej “Angular 2: Hello, World!”, opowiem o podstawowych założeniach nowego frameworka. Słuchacze będą również mieli okazję zobaczyć fragmenty kodu stworzonego przy użyciu Angulara 2 w wersji deweloperskiej.

Development Manager and Java Developer at Aspire Systems Poland. Open source enthusiast, team leader, teacher, blogger and Twitter user @kolorobot