AngularJS

AngularJS
Logo AngularJS
Logo programu
Autor Google
Pierwsze wydanie 2010
Język programowania JavaScript
Rodzaj biblioteka programistyczna
Licencja MIT
Strona internetowa

AngularJSotwarty framework oparty na języku JavaScript, wspierany i firmowany przez Google, wspomagający tworzenie i rozwój aplikacji internetowych na pojedynczej stronie[1]. Zadaniem biblioteki jest wdrożenie wzorca Model-View-Controller (MVC) do aplikacji internetowych, aby ułatwić ich rozwój i testowanie.

Biblioteka wczytuje plik HTML zawierający dodatkowe specyficzne dla tej biblioteki tagi. Podążając za instrukcjami wydawanymi przez owe znaczniki, biblioteka przypisuje wejściowe i wyjściowe elementy strony do modelu, zapisanego jako zestaw zmiennych języka JavaScript. Wartości tych zmiennych można ustawić ręcznie lub pobrać z otrzymywanego statycznie lub dynamicznie źródła JSON-a.

AngularJS nie należy mylić z Angularem, wydawanym również przez Google od 2016 roku. Jest to zupełnie nowa wersja, niekompatybilna z AngularJS, bez prostej możliwości migracji istniejących projektów[2].

Projekt nie jest już utrzymywany.

Filozofia Angular

AngularJS został stworzony z przekonaniem, że programowanie deklaratywne powinno być używane do budowy interfejsów i łączenia komponentów oprogramowania, podczas gdy programowanie imperatywne znajduje zastosowanie w logice biznesowej[1]. Framework przystosowuje i rozszerza możliwości tradycyjnego HTML-a do lepszej obsługi dynamicznych treści, co umożliwia automatyczną synchronizację pomiędzy modelem i widokiem. W ten sposób Angular ogranicza manipulacje w DOM-ie i ułatwia testowanie.

Cele twórców:

  • Oddzielenie manipulacji w DOM-ie od logiki aplikacji. Ułatwia to testowanie kodu.
  • Ukazanie testowania kodu jako tak samo ważnego, jak pisanie kodu. Testowanie kodu jest dramatycznie ograniczane przez jego złą strukturę.
  • Oddzielenie warstwy klienckiej aplikacji od warstwy serwerowej. Umożliwia to pracę równoczesną i ułatwia pracę zespołową.
  • Pokazanie twórcom oprogramowania całej ścieżki: od projektowania interfejsu, poprzez pisanie logiki biznesowej, aż do testowania.

Angular korzysta z wzorca MVC i promuje utrzymywanie słabych zależności (loose coupling) pomiędzy warstwą logiki, prezentacji i danych. Angular wprowadza tradycyjne serwerowe technologie, takie jak kontrolery zależne od widoku do aplikacji klienckich. W wyniku takiego działania, można w łatwy sposób uprościć back-endową część aplikacji, odchudzając cały projekt.

Dwukierunkowe wiązanie danych (two-way binding)

Dwukierunkowe wiązanie danych w AngularJS jest jego najważniejszą funkcją, która redukuje ilość kodu napisanego w trakcie uwalniania backendu serwera z odpowiedzialności za szablony. Szablony są stworzone w prostym HTML-u zgodnie z danymi zawartymi w zakresie (scope) zdefiniowanym przez model. Serwis $scope w Angular wyłapuje zmiany w modelu i modyfikuje HTML w widoku poprzez kontroler. Podobnie, wszelkie zmiany w widoku widać w modelu. To pozwala ominąć potrzebę aktywnego manipulowania DOM-u i ułatwia samodzielne i szybkie tworzenie aplikacji internetowych. Angular wyłapuje zmiany w modelach przez porównanie wartości z wartościami zgromadzonymi we wcześniejszym procesie dirty-checking; w przeciwieństwie do Ember.js i Backbone.js, które czekają na zdarzenia zmiany wartości modelu.

Wtyczka do Chrome

W lipcu 2012 roku zespół programistów zajmujący się rozwojem Angulara stworzył wtyczkę do przeglądarki Google Chrome o nazwie Batarang[3]. Wtyczka ułatwia debugowanie aplikacji internetowych stworzonych w oparciu o bibliotekę AngularJS oraz mierzenie wydajności i wskazywanie problematycznych miejsc w kodzie[4].

Historia rozwoju

AngularJS został stworzony w 2009 roku przez Miško Hevery’ego i Adama Abronsa jako część własnego startupu. Po zawieszeniu prac postanowiono, że Angular zostanie wydany jako otwarta biblioteka. Abrons opuścił projekt, jednak Hevery, który obecnie pracuje w Google, zajmuje się nadal rozwojem projektu, wraz z innymi pracownikami Google, Igorem Minárem i Vojta Jína.

W 2014 roku ogłoszono prace nad AngularJS 2.0, który miał być zupełnie nową, niekompatybilną wstecz wersją frameworka[5]. Wyszła ona ostatecznie we wrześniu 2016 pod nazwą Angular (dla podkreślenia braku kompatybilności oraz ścieżki aktualizacji do nowej wersji)[6].

31 grudnia 2021 roku, po sześciomiesięcznym przedłużeniu z powodu pandemii Covid-19, ogłoszono koniec wspierania projektu, czyli tzw. End of Life (EOL)[7]. Oznacza to, że zespół programistów nie będzie już wspierał tej technologii. Oprogramowanie oparte na AngularJS nadal będzie działać, ale technologia nie dostanie żadnych nowych poprawek, nawet dla krytycznych problemów i kwestii bezpieczeństwa. Dlatego też wiele firm rozważa migrację do nowszej technologii – Angular (bez JS w nazwie)[8].

Przypisy

  1. a b What Is Angular?. docs.angularjs.org. [dostęp 2016-04-07]. (ang.).
  2. Angular Docs: Upgrading from AngularJS [online], angular.io [dostęp 2018-03-29].
  3. Batarang homepage.
  4. Angular: Introducing the AngularJS Batarang [online], blog.angularjs.org [dostęp 2017-11-16] [zarchiwizowane z adresu 2018-02-02].
  5. A sneak peek at the radically new Angular 2.0 – JAXenter, „JAXenter”, 28 października 2014 [dostęp 2018-03-29] (ang.).
  6. Branding Guidelines for Angular and AngularJS [online], blog.angularjs.org [dostęp 2018-03-29] (ang.).
  7. AngularJS reaches end of life. InfoWorld, 2022-01-08. [dostęp 2022-08-15].
  8. AngularJS upgrade: Why 2023 is the time for migrating and how to do it [online], Pretius, 17 listopada 2022 [dostęp 2023-01-09] (ang.).