Temat: Framework JS
Michał W.:
Hej, hej..
Od jakiegoś czasu borykam się z pewnym problemem, aż dzisiaj wieczorem (a w zasadzie w nocy już..) postanowiłem napisać do was na forum o poradę (do bardziej doświadczonych osób).
Dobra rada na przyszłość. Zwyczajnie zacznij kopać w internecie, wyciągnij kilka popularnych rozwiązań i je wypróbuj.
Pytając na forum dostaniesz przekrój przez wszystkie fw (od tych dobrych po te złe) i całą masę opinii. I sprzeczkę na 5 stron.
To jak wejść na forum o sprzęcie i zapytać która karta graficzna jest najlepsza :-)
Pracuje w firmię wraz z kilkoma backendowcami.. Moją zaletą jest to, że jestem jedyny frontendowiec, więc mogę sam sobie wybierać biblioteki, funkcje, frameworki css ect co potrzebuje.. Minusem jednak to, że nie mam nie raz kogo się poradzić jak mam problem.. A o to mój problem:
Pamiętaj tylko że nie zawsze będziesz jedynym. Co oznacza że kiedyś przyjdzie ktoś inny i będzie przejmował od Ciebie część obowiązków. I pasuje żeby nie popełnił samobójstwa i żebyście w ogóle kogoś znaleźli. Co oznacza że raczej trzeba sięgać po rozwiązania sprawdzone, popularne i znane. I trzymać się dobrych praktyk.
Ostatnio dużo mówi się o Frameworkach JS: (angular js, ember.js, backbone i jeszcze kilka). Zastanawiam się nad nauką jednego z nich.
Poszukujesz coś co się nazywa TODO MVC tylko jeszcze o tym nie wiesz.
http://todomvc.com/
można sobie porównać realizację prostej aplikacji "to do" z użyciem różnych fw.
Jednak przeważnie przy wszystkich poradnikach, tutorialach i innych dziwnych stronach gdzie mówią o tym Frameworkach stopuje na routingu (gdyż jest on generowany w plikach js).. A przy pracy z backendowcami (w phalconie) to oni wszystko sobie generują, a ja zmienne ładnie oskryptowuję i wysyłam formy..
Źle do tego podchodzicie. Zadaj sobie pytanie co chcecie uzyskać. Przykładowo robimy coś takiego:
http://example.com/sklep/koszyk
Ja osobiście spodziewam się w tym momencie że ów koszyk sklepu będzie aplikacją. Jako całość. I spodziewam się że "chłopcy z backendu" wystawią mi jakieś API do którego będę mógł się odwoływać kiedy chcę np zwiększyć ilość produktów o 1 albo wygenerować płatność itp.
Znowu jeżeli CAŁA strona jest aplikacją (albo zbiorem aplikacji) i ma własny routing to backend powinien się w zasadzie ograniczyć do jakiegoś restowego API i tyle. I jedno z drugim nie powinno mieć wiele wspólnego.
Jeżeli chodzi o zmianę adresów api to rozwiązanie jest proste. Niech Ci wystawią JSON składający się z nazwy adresu i jego wartości. Wrzuć go sobie do aplikacji i używaj tego obiektu do przekazywania adresów.
Backend powinien Ci tylko wystawić główne widoki.
Dlatego zastanawiam się czy w ogóle jakiś framework jest mi potrzebny. Jak tak to w jaki sposób moge go użyć w codziennej pracy (chodzi mi o połączenie wytycznych i narzuconych standardów przez phalcona)...
Tak, jest potrzebny. Nie tylko tobie ale tym co przyjdą po Tobie. I żeby Twoja praca była uporządkowana. I żeby każda kolejna strona czy aplikacja nie wyglądała jak "dzieło sztuki" którego nikt nie rozumie oprócz Ciebie.
Jak chodzi o aplikację, które piszemy w pracy to przeważnie są 'kombajny'.. duże portale, zapleczówki itd. dlatego dość bardzo zależy mi na wydajności oraz na wygodzie pracy.. bo po napisaniu 80..90.. funkcji w jquery czasem mam problem odnaleźć funkcji, której potrzebuję albo przypomnieć sobie o co mi chodziło..
Dzięki wielkie za pomoc i porady!
Dobierając framework pamiętaj o jednej trudności. JavaScript się nie indexuje. Google go sobie nie wykona. Więc to co nie jest wygenerowane na starcie nie będzie widoczne dla Google. Dlatego właśnie frameworki js-owe stosuje się tam gdzie seo ma drugorzędne znaczenie. Albo wykonuje się z ich użyciem konkretne elementy witryny.
Z FW które wymieniłeś osobiście polecam Angulara. Z paru prostych przyczyn. Po pierwsze nie wymyśla nie wiadomo czego tylko traktuje się jako naturalne rozszerzenie HTML. Z jakiegoś powodu inne frameworki z ich pomysłami sprawiają że czuje się jakbym wbijał gwoździa czołem. Po drugie szybko idzie się nauczyć jego podstaw. Po trzecie jest elastyczny. Bardzo elastyczny. I pozwala zrobić naprawdę bogate aplikacje w relatywnie krótkim czasie. Jest to bardzo dojrzałe rozwiązanie.