Angular - o co chodzi

2017-01-06 09:49
Błękitny Szczur
0

Do czego wlasciwie sluzy angilar? Zalozmy ze pisze sobie aplikacje asp.net mvc i w widokach chcialbym uzyc angulara. Czy angular zastapi mi w jquery , js i inne podobne rzeczy?

Pozostało 580 znaków

2017-01-06 09:58
0

Angular nie zastąpi JQuery. Zasadnicza różnica: JQuery to biblioteka, a Angular to Framework. Zupełnie inne rzeczy.


Pokaż pozostałe 5 komentarzy
To, że ktoś nazwał bibliotekę frameworkiem, nie zmienia faktu, że to nadal biblioteka. - somekind 2017-01-06 16:41
framework zbior biblotek. Jedna bibloteka tez moze byc frameworkiem. I to jest oficjalna nazwa log4net... Autorzy sami tak nazwali - fasadin 2017-01-06 19:22
Czy framework to zbiór bibliotek? Nie wiem. Ale czy wczoraj (albo całkiem niedawno) nie było gdzieś na tym forum dyskusji o tym czym różni się framework od biblioteki? Ktoś pisał, że bibliotekę dodajesz do projektu i używasz jej kiedy chcesz i jak chcesz. W przypadku frameworka masz określoną strukturę aplikacji i mechanizm jej działania i ty się do tego dostosowujesz. Jak dla mnie takie wytłumaczenie jest OK. - some_ONE 2017-01-06 19:43
@fasadin, framework to coś, co narzuca archiekturę i woła Twój kod. Biblioteka to coś, co sam wołasz ze swojego kodu. - somekind 2017-01-06 20:46
@some_ONE: tak, wczoraj w wątku o Springu dokładnie to samo tłumaczyłem. Jestem zaskoczony, że ludzie tego nie wiedzą. - somekind 2017-01-06 20:47

Pozostało 580 znaków

2017-01-06 10:43
0

Angular to framework, który ułatwia chować content :D
Załóżmy, że masz stronę HTML z pierdyliardem zdjęć. Odpalasz przeglądare, wchodzisz na tą stronę i ta stronka się ładuje pierdyliard lat, bo ma dużo contentu w postaci tychże zdjęć.
Przy pomocy Angulara przedstawisz tylko te zdjęcia (linki do zdjęć), które akurat chcesz widzieć, a resztę zostawiasz w spokoju do momentu ich wywołania. To poprawia działanie przeglądarki, komputer nie dyszy i ogólnie marnujesz mniej prądu :)


Panie Żurawiecki, projektowanie to nie jest sprzedawanie pietruszki. Do widzenia Panu.
WTF? Chcesz powiedzieć, że Angular służy do stronicowania zawartości? :D - some_ONE 2017-01-06 13:01
kurde, muszę się nauczyć precyzyjniej formułować wypowiedzi :/ - trojanus 2017-01-06 15:11
No pewnie tak, bo to co opisałeś to można zrobić w zwykłym JS, albo i nawet w ogóle bez jego użycia :P - some_ONE 2017-01-06 15:12

Pozostało 580 znaków

2017-01-06 14:09
2

Kilka powodów:

  1. Odciążanie serverów, redukcja trafficu przez konsumowanie REST'a
    Normalny schemat przeciętnej stronki bez resta wygląda tak:
    Użytkownik wysyła zapytanie -> Strona robi swoją magie, generuje HTML'a -> Zwraca odpowiedź w postaci całej strony z nagłówkami itd.
    ---Nie ma w tym nic złego, klasyczna stronka. Jednak każde zapytanie usera powoduje generowanie całej stronki z html i zjada dużo zasobów
    W przypadku angulara, stronka konsumuje REST, więc wygląda to tak:
    Użytkownik wysyła zapytanie po raz pierwszy -> Stronka zwraca HTML'a z angularem -> Angular wysyła zapytanie rest'owe i go dostaje -> kolejne zapytanie -> znowu dostaje REST'a a nie całego HTML'a
    ---Nowe komputery są bardzo silne, nawet telefony. Za pierwszym razem najpewniej będzie się ładowało najwolniej użytkownikowi gdyż dostanie on dużą część aplikacji od servera odrazu "na raz". Jednak kazde jego zapytanie nie będzie skutkowało tym że server zwraca całego html'a , a resta czyli w skrócie taki pliczek tekstowy z samymi czystymi danymi ( przykład: http://jsonapi.org/examples/ ) , a potem po stronie użytkownika te dane są generowane i to nie jest tak że cała strona jest zmieniana, tylko ta część o którą użytkownik prosił, więc server jest odciązony.
  2. Oddzielanie front-endu i back-endu
    REST może być robiony w php/python/java/c#/cokolwiek, i front-enda nie obchodzi w czym jest robiony, jedyne co go obchodzi to gdzie "wystawiane" są informacje przez REST'a. Czyli front-end w tym wypadku może robić wersje wizualną strony której back-end był napisany w javie bez pracy z javą
  3. Przyjemniejszy user experience
    Animacje, przejścia, zazwyczaj płynniejsze ładowanie ( patrz punkt 1) , generalnie konkurencja rośnie. W przypadku stron angularowych itd. użytkownik ma wrażenie że dostaje "aplikacje" a nie strone. Jak odpalasz program to nie przeładowywuje się on z każdym kliknięciem tylko zmienia część kontentu zazwyczaj, tak samo ze stronami w angularze

Dlaczego wcześniej tego nie było?

  • Bo technologie były w powijakach
  • moc obliczeniowa pc'tów przeciętnych kowalskich była dużo słabsza
  • ludzie się aż tak nie przejmowali UX jak teraz
  • kiedyś było to ogólnie niemożliwe, bo walczono o kompatybilność co było głównie spowodowane sporymi udziałami IE8/9, teraz dużo się zmieniło bo prawie wszyscy używają już najnowszych wersji przeglądarek, i nawet jezeli jest jakaś niekompatybilność to jest ona bardzo mała

Generalnie koncept client-side renderingu nigdzie nie idzie a raczej zostanie na długo. Angular to nie jedyny taki framework który na to pozwoli,są jeszcze inne jak React ( + jakieś dodatki zazwyczaj), no i te niszowe ale nie warto chyba nawet o nich wspominać.

edytowany 1x, ostatnio: zerogravity, 2017-01-06 14:12

Pozostało 580 znaków

2017-01-06 15:05
2
zerogravity napisał(a):

Jednak każde zapytanie usera powoduje generowanie całej stronki z html i

To chyba w PHP, bo normalne technologie i serwery potrafią keszować wyniki żądań i zwracać całe gotowe strony z pamięci.

zjada dużo zasobów

Zasoby to zżerają "nowoczesne frameworki JS". 5 lat temu dało się otworzyć 10 stron w przeglądarce, teraz już nie, bo każda jest tak obsrana animacjami i płynnymi przejściami, że w sumie zżerają wszystkie 4 rdzenie procka.

  1. Oddzielanie front-endu i back-endu
    REST może być robiony w php/python/java/c#/cokolwiek, i front-enda nie obchodzi w czym jest robiony, jedyne co go obchodzi to gdzie "wystawiane" są informacje przez REST'a. Czyli front-end w tym wypadku może robić wersje wizualną strony której back-end był napisany w javie bez pracy z javą

To chyba jak ktoś pisał spaghetti w HTML i PHP, to coś mu teraz Angular oddzielił, bo sensowni programiści oddzielali front-end od back-endu już 10 lat temu.

  1. Przyjemniejszy user experience
    Animacje, przejścia, zazwyczaj płynniejsze ładowanie ( patrz punkt 1) , generalnie konkurencja rośnie. W przypadku stron angularowych itd. użytkownik ma wrażenie że dostaje "aplikacje" a nie strone. Jak odpalasz program to nie przeładowywuje się on z każdym kliknięciem tylko zmienia część kontentu zazwyczaj, tak samo ze stronami w angularze

SPA też istniały już dawno.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Pokaż pozostałe 14 komentarzy
No, jesteś wielki (Ponoć jak się w coś mocno uwierzy to można nawet góry przenieść). Twierdze że są w rodzielaniu aplikacji są dwie warstwy (backend/frontned) i jeżeli jedna warstwa jest zrobiona w angularze, to angular ma coś wspólnego z tymi warstwami. Znaczy w sumie dziwnie czuje się tłumacząc takie "łamigłówki" dorosłemu człowiekowi, ale od samego począku wiadomo że nie o logike ci chodzi a o frustracje. I nie zostałem uznany za niepoważnego przez nikogo wartego uwagi. - zerogravity 2017-01-06 20:59
Skoro Angular istnieje w jednej warstwie, to nie dzieli niczego na warstwy. Proste i logiczne - jak widać, nie dla wszystkich, Ty nasz mały frustracie. ;) - somekind 2017-01-06 21:02
Mamy punkt kulminacyjny bo nigdy nie napisałem że cokolwiek dzieli na warstwy, dałeś sobie poprostu najprzyjemniejszą interpretacje jaką mogłeś dać, poważnie. Tak ogólnie mogłeś dojśc do tego wcześniej gdybyś przeczytał to co napisałem zamiast "tworzyć" moje słowa nie wypowiedziane przezemnie: Napisałem że jednym z powodów używania angulara jest oddzielanie frontendu i backendu - zerogravity 2017-01-06 21:08
Ale można to robić na milion sposobów bez Angulara, więc to nie jest argument. - somekind 2017-01-06 21:34
Autor tematu pytał się do czego służy angular, a to jeden z powodów jego używania :D , pozdrawiam - zerogravity 2017-01-06 21:39

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0