Czym jest AngularJS?

Ostatania modyfikacja: 15 grudnia 2016, kategoria: Kurs angular

Ze względu na brak informacji w polskim internecie na temat świetnej biblioteki jaką jest AngularJS, postanowiłem spróbować własnych sił i napisać takowy. Jest to pierwsza seria wpisów w stylu kursu jaką umieszczę na tym blogu. Zaletą kursu jest to, że skupia odpowiednią ilość danych w jednym miejscu, a przede wszystkim odpowiednie wpisy są ułożone w logiczną całość.

Szybki rozwój frontendu

Kilka lat temu dobry frontendowiec musiał umieć stworzyć ładnie wyglądający szablon. Była to osoba w dużej mierze zajmująca się graficznym projektem strony. W momencie gdy szablon był gotowy, do akcji wkraczał np. programista PHP. Dodawał on odpowiedni kod, dodając do witryny całą funkcjonalność.

W ostatnim czasie frontend rozwinął się bardzo silnie. Internet przejął bardzo duży fragment rynku handlowego i usługowego. Dzisiaj biznes, który nie istnieje w internecie, nie istnieje wcale. Dzięki temu narodziło się wiele gałęzi biznesu zajmującymi się aplikacjami internetowymi, pozycjonowaniem i wirtualną reklamą.

Rozwój aplikacji internetowych wymusił rozwój technologii, w których są one tworzone. Pojawił się nowe języki programowania lepsze od języka PHP, w których tworzone są serwisy obsługujące miliony klientów dziennie. Ciekawe jest to, że niesamowicie rozwinął także się sam JvaScript.

Ewolucja JavaScriptu

Kiedy uczyłem się programować w szkole podstawowej, język skryptowy JavaScript kojarzony był tylko z niepotrzebnymi komponentami dołączanymi do stron WWW. Jeżeli drogi czytelniku sięgnąłbyś do książek powiedzmy z 2003 roku, w połowie z nich JavaScript opisywany byłby jak wirus i najgorsze zło, którego trzeba unikać.

Wielu ekspertów twierdziło, że JavaScript nie ma racji bytu ponieważ wykonywany jest po stronie przeglądarki, co za tym idzie użytkownik może wyłączyć jego obsługę. Co za tym idzie niemożliwym było wykorzystanie JavaScriptu to żadnych poważnych zadań. Ostatecznie język ten wykorzystywany był np. w połączeniu z AJAXem w celu asynchronicznego wyczytywania danych.

Aktualnie JavaScript jest numerem jeden w budowaniu warstwy klienckiej wszelakich aplikacji internetowych. Ponieważ pisanie w czystym JavaScripcie było złożone i generowało dużą ilość kodu, zaczęły się rozwijać platformy programistyczne mające na celu przyśpieszyć ten proces. Powstało ich całkiem sporo i są ciągle rozwijane a jednym z nich jest AngularJS.

Platforma programistyczna AngularJS

AngularJS to platforma programistyczna języka JavaScript rozwijana przez firmę Google. Angular jest całkiem darmowy także do zastosowań komercyjnych. Cechuje go wszystko to co wszelkie inne platformy programistyczne. Bardzo szybko da się w nim napisać skomplikowaną na pozór aplikację – występuje w nim dwustronne bindowanie wartości zmiennych. AngularJS dobrze sprawdza się także w rozdzieleniu logiki aplikacji od warstwy prezentacji. Stosując go backend nie zajmuje się generowaniem kodu HTML tylko dostarczeniem surowych danych np. za pomocą REST.

AngularJS służy do tworzenia stron SPA (single page applications). Oznacza to, że pierwsze żądanie i pierwsze wejście do aplikacji internetowej powinno dostarczyć wszelkie wymagane pliki arkusza stylów oraz szablonu. Reszta danych wczytywana jest asynchronicznie z backendu w zależności od kontekstu i dynamicznie prezentowana.

Gdzie nie używać AngularJS

AngularJS powinien być przede wszystkim wykorzystywany podczas tworzenia zaawansowanych aplikacji, w których ważniejsze jest zapewnienie dużej ilości funkcji i logiki niż statycznych stron z dużą ilością tekstu. Musisz wiedzieć o tym, że wyrażenia Angularowe służące do wyświetlania danych nie są przetwarzane przez przeglądarki internetowe, dlatego pozycjonowanie aplikacji Angularowych jest wręcz niemożliwe bez dodatkowych sztuczek i bibliotek.

Stąd AngularJS doskonale sprawdza się w sytuacjach takich jak aplikacje bankowe, panele administracyjne, zaawansowane kalkulatory i aplikacje przetwarzające rozbudowane formularze HTML. Totalnie nie sprawdza się natomiast na blogach, serwisach informacyjnych i innych stron z dużą ilością tekstu i artykułów.

Użytkownik Michal napisał:

25 maja 2017


Chyba najlepsza definicja frejmworka z jaka sie spotkalem :)

Zaczalem ostatnio uczyc sie programowania. Zaczalem od htmla i cssa. I nie kumam za bardzo tego cssa :( Czy to znaczy zeby dac sobie spokoj?

Użytkownik bart napisał:

10 sierpnia 2017


Hej Michał,
nie wiem jak wygląda Twoje życie teraz, ale wszystko zależy od twoich własnych chęci. Też na początku miałem podobne problemy w obiektowym świecie. Cały czas uczucie, że mnie to przerasta. Wniosek, przestałem o tym myśleć i pisałem. Setki małych programików, właśne aplikacje, staż i pomoc w aplikacji biznesowej. Po latach co mogę dodać, nie tkwij w jednym języku jak go nie czujesz. Mnie Java zniechęciła do programowania tymi public static final shitami, a jak przesiadłem się na JSa i Pythona to świąt programowania stał się dla mnie domem. Nie zmienia to faktu, że i tak grzebie w Springu no, ale nie zawsze można robić to co się lubi pracując na nie swój rachunek.

Użytkownik Janusz napisał:

02 listopada 2017


Szukałem w Internecie informacji czemu tak się wielu zachwyca biblioteką Angular JS. Swojego czasu moja strona była w wersji single page application. Były to tylko dwie strony html-owskie, których treść była wymieniana czystym Java Scriptem i Ajaxem, a miała kilkadziesiąt podstron. Jednak musiałem przejść na PHP, bo było brak indeksacji. Dobrze, że wreszcie ktoś napisał, gdzie nie warto tego używać. Skoro tyle wiesz o tym frameworku, to może wiesz czy nadaje się ona do animacji na ? Ja na razie używam czystego JS. Gdy chciałem użyć jQuery narzędzi do efektów fade-in, fade-out, to się okazało, że w funkcjach jQuery brakuje potrzebnych mi parametrów. Zamiast studiować wnętrze biblioteki łatwiej mi było napisać samemu skrypt, który miał tylko 50 linijek. Jak jest z szybkością biblioteki. Do przesyłania danych do serwera i z powrotem szybkość jQuery wystarczy, ale do animacji moim zdaniem jest za wolna. A jak Angular JS, czy ma to w ogóle sens?

Użytkownik Karol napisał:

02 listopada 2017


@Janusz
AngularJS posiada wbudowany mechanizm animacji dostarczony przez moduł o nazwie ngAnimate. Wydaje mi się, że bazuje on na jQuery oraz oczywiście mechanizmach udostępnianych przez CSS. ngAnimate doskonale współgra z aplikacją webową napisaną w całości we frameworku AngularJS. Nie ma natomiast żadnego sensu używać animacji oferowanych przez ngAnimate na zwykłych stronach. Do standardowych stron internetowych wciąż niezastąpiony wydaje się być jQuery oraz animacje CSS-owe.
PS. Od pewnego czasu Google razi sobie z indeksowaniem stron AngularJS oraz wszelkich innych renderowanych asynchronicznie. Co nie zmienia faktu, że problem jest z całą resztą wyszukiwarek i np. grabberem Facebooka.

Użytkownik Jakub napisał:

07 lutego 2018


Stawiam swoje pierwsze kroki w świecie programowania i Twój blog jest dla mnie jak kopalnia złota.
Pozdrawiam

Użytkownik Daniel napisał:

27 kwietnia 2018


Hey Michal jezeli masz problemy to napisz do mnie na [email protected] to pomoge Ci zrozumiec cssa za darno

Użytkownik Sylwia napisał:

06 lipca 2018


Hej!
Musze powiedzieć, że ostatnio korzystałam z wielu zasobów internetowych aby rozpracować AngularJS – ale dopiero po zetknięciu się z twoim blogiem i wpisami niebo się rozstąpiło :)
Pozdrawiam i czekam na więcej wpisów!
Bardzo chętnie również o React- cie :)_

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0