AngularJS

framework do tworzenia aplikacji webowych

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.

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

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 edytuj

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) edytuj

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 edytuj

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 edytuj

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 edytuj

  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.).