Nauka angulara przed wyjsciem 2.0

0

Czesc, zastanawiam sie nad kupnem kursu o angularze. Mocno zastanawia mnie fakt, czy warto sie go w ogole uczyc skoro w 2016 roku ma wyjsc juz mocno oczekiwany anuglar w wersji 2.0. A jak na razie z wstepnych informacji wynika, ze podobny do swojego poprzednika to on nie bedzie. Zastanawiam sie czy firmy od razu pojda na taki uklad jesli chodzi o aplikacje internetowe, bo mysle ze ciagle angular w wersji 1.0 bedzie dobrym rozwiazaniem dla malych projektow.

0

Przede wszystkim z racji tej "niepodobności" to nikt nie rzuci projektów w 1.0 i nie będzie przepisywał od drzazgi projektów do wersji 2.0 - a przecież te projekty żyją i trzeba je rozwijać/utrzymywać. Jeszcze długo znajomość 1.0 będzie przydatna i pożądana.

Znajomość 2.0 będzie przydatna w nowych projektach (ale sporo firm/osób myślę, że pomimo wydania wersji 2.0 nowości będzie i tak tworzyć w 1.0 z powodów zbliżonych do wyżej wymienionych - mało osób go zna = droższy w utrzymaniu , nowa wersja to nowe bugi, na które być może trzeba będzie czekać, aż zostaną poprawione, mniej dostępnych gotowców, itd.).

0

Najlepiej zrobisz jak w ogóle darujesz sobie psucie sieci Angularem... Polecam przeczytać http://www.webkrytyk.pl/krytyka/my-truth-about-angular-js/

0

Co w takim razie polecasz?

0

Ja tam bardzo sobie chwalę angulara. Myślę, że 80-90% tego czego nauczysz się w 1.4+ użyjesz w 2.0 więc to nie jest czas stracony :)

0

A co myślicie o Meteorze? Ponoć warty uwagi.

https://www.meteor.com/

0

jest jeszcze Ember.js

0

Nikt odpowiedzialny nie przejdzie w najbliższym czasie (2 lata?) na Angulara 2.0, bo wpakowano kupę kasy w produkty oparte o wersję 1.x, w rozwój teamów i organizację pracy, a sporo korporacji dopiero wchodzi w Angulara 1.x, nawet nie myśląc o, co by nie mówić, nadal niestabilnej dwójce. Poczekajmy, aż wyjdzie ze statusu "developer preview", a wtedy można na trzeźwo ocenić.

Nie miałem do czynienia z Angularem 2.0, ale sądząc po tym co pokazali na ng-conf, to z obecnego kodu zostanie głównie ten niezwiązany mocno z frameworkiem (np. serwisy).

Najlepiej zrobisz jak w ogóle darujesz sobie psucie sieci Angularem...

Nie rozumiem skąd twoja ogromna niechęć do tego frameworku. Może nie jest to idealne rozwiązanie (sam napisałem na tym forum dość długiego posta odnośnie jego wad), ale z mojej strony mocno to skróciło development w teamie i pozwoliło na szybsze zmiany w projekcie. Dla mnie to jest duża korzyść.

A co myślicie o Meteorze? Ponoć warty uwagi.

Wart uwagi, dobrze sprawdza się w aplikacjach realtime. Aktualnie używam w połączeniu z Reactem i jestem zadowolony. We Wrocławiu jest garść firm, która użyła go na produkcji z sukcesem. Ale ogółem mało popularny póki co, niektórym nie podoba się wysoki poziom abstrakcji (pomimo tego że w każdej chwili można zejść niżej że tak powiem) i wolą node.js z hapi lub sails. Zależy, czego oczekujesz od frameworku.

0

TL;DR: Angular jest skomplikowany, trudny w nauce, niespójny, a jego architektura to ravioli code. Czyli niby obiektówka (dlatego nie spaghetti, tylko ravioli) niby ładnie, ale tak dużo tych obiektów, że aż robi się burdel. I dlatego wolę Reacta.

Uwaga: wszystko, co piszę o Angularze piszę o Angularze jedynce. z tego co widziałem w dwójce ma być to uproszczone

  • deklarowanie modułów nie jako natywne obiekty JavaScript, ale na zasadzie pseudo-jquerowego chainingu:
angular.module('nazwa', ['modul1', 'modul2']).directive(.function () {...}...)

Taki kod trudniej się parsuje i trudniej poddaje statycznej analizie, więc będzie automatycznie mniejsze wsparcie narzędzi programistycznych. Nawet WebStorm, najlepsze obecnie IDE do JavaScriptu kompletnie nie rozumie Angulara 1.*. Nawet nie działa przenoszenie do deklaracji.

Tymczasem React nie robi takich jaj, i rozumienie Reacta przez Webstorma jest dużo większe.

Chociaż z tego co patrzyłem Angular 2 ma wreszcie być bardziej natywny i będzie można korzystać z klas ES6 do deklaracji komponentów. To powinno pewnie rozwiązać problem braku wsparcia przez IDE.

  • burdel w HTMLu. Pisanie JavaScriptu/pseudo JavaScriptu/logiki w HTMLu. Sorry, ale nie. Z dwojga złego już wolę pisać HTML w JavaScripcie(pisząc w Reacie), skoro trzeba już gdzieś mieszać.

  • ileś dziwnych pseudojęzyków i microDSLi, niespójność, nielogiczność, dziwne konwencje (zawsze muszę sprawdzać co oznaczają &, = oraz @ przy deklaracjach zmiennych scope, albo zastanawiam się czy dodając jakiś atrybut do elementu w HTML muszę dać {{wąsy}} czy moze bez wąsów)

  • Javowość objawiająca się używaniem design patternów na pokaz (provider/factory/service? które wybrać w jakiej sytuacji? controller czy link? Pytania może dobre na rozmowe kwalifikacyjną, żeby zagiąć kandydata, ale czy na pewno jest to dobry sposób projektowania frameworka? Kazać ludziom używać od groma rzeczy i zastanawiać się co mają wybrać i kiedy?)

  • Angular jest frameworkiem, czyli albo robisz angular-way albo Angular ci nie pomaga a czasami przeszkadza, i czasami kończysz i tak pisząc haki, które obchodzą ograniczenia Angulara.

  • programując w Angularze musisz wiedzieć masę rzeczy: dyrektywy, serwisy, różne rodzaje scope'ów izolowanych, nieizolowanych, $rootScope, watche (wiedzieć kiedy się odpalają), metody typu $apply (wiedzieć kiedy potrzeba), składnię DSLi w HTML (ng-switch, ng-switch-when, ng-repeat), do czego służą @, = oraz &..., metody typu directive, controller, factory, service, constant, value, filter, config, provider...

Znam Angulara i nauczyłem się ogarniać ten burdel jako tako (i nie neguję jego przydatności) i jeśli muszę zawodowo pisać w nim to piszę - ale osobiście robiąc sobie side project wybrałem Reacta, i póki co jestem zadowolony. Prostszy, bardziej przejrzysty, lepsze komunikaty o błedach, natywne JavaScriptowe obiekty, dobre wsparcie Webstorma, poczucie większej kontroli nad kodem.

0

Fajnie ze jest tyle odpowiedzi bo mam wiecej do zastanowienia. Jednak bede uczyl sie angulara ale w przyszlosci chce ogarnac reacta i node. Jesli chodzi o angulara to polecacie nauke z dokumentacji czy sa jakies tutki fajne?

0

Moglby mi ktos wytlumaczyc na czym dokladnie polega magia $scope? Widac ze dzieki temu deklarujemy jakies swoje zmienne/obiekty/funkcje ale czym to tak dokladnie jest? Jaka jest idea $scope wg. tworcow google?

0

Mogbly mi ktos jeszcze wytlumaczyc do czego stosujemy slowko 'this' w tym kodzie?

var module = angular.module('app', []);
 
module.service('ContactService', function () {
    //to create unique contact id
    var uid = 1;
     
    //contacts array to hold list of all contacts
    var contacts = [{
        id: 0,
        'name': 'Viral',
            'email': '[email protected]',
            'phone': '123-2343-44'
    }];
     
    //save method create a new contact if not already exists
    //else update the existing object
    this.save = function (contact) {
        if (contact.id == null) {
            //if this is new contact, add it in contacts array
            contact.id = uid++;
            contacts.push(contact);
        } else {
            //for existing contact, find this contact using id
            //and update it.
            for (i in contacts) {
                if (contacts[i].id == contact.id) {
                    contacts[i] = contact;
                }
            }
        }
 
    }
 
    //simply search contacts list for given id
    //and returns the contact object if found
    this.get = function (id) {
        for (i in contacts) {
            if (contacts[i].id == id) {
                return contacts[i];
            }
        }
 
    }
     
    //iterate through contacts list and delete 
    //contact if found
    this.delete = function (id) {
        for (i in contacts) {
            if (contacts[i].id == id) {
                contacts.splice(i, 1);
            }
        }
    }
 
    //simply returns the contacts list
    this.list = function () {
        return contacts;
    }
});
 

Chodzi o to, zeby inne serwisy tez mogly korzystac z tych funkcji?

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