Blog (39)
Komentarze (405)
Recenzje (0)

Webpack typescript, komponenty i  angular 1.5 - raport z frontu

@molexorWebpack typescript, komponenty i angular 1.5 - raport z frontu11.11.2016 17:14

Podczas tworzenia wpisu nie powstał żaden nowy framework JS Świat programowania frontendowego zmienia się w zatrważającym tempie. To, co było modne tydzień temu, dziś już trąci myszką, jest zdeprecjonowane i zastąpione przez coś nowego. Rozwój standardu Ecma, środowisko Node, czy narzędzia budowania, to tylko niektóre przykłady.

Nie zawsze trzeba ślepo podążać za trendami. Jeśli chcemy dostarczyć jakąś aplikacje w rozsądnym czasie, może warto skorzystać ze sprawdzonych i dojrzałych rozwiązań zamiast sięgać po obiecujące,jednak jeszcze nie dojrzałe nowości. Z drugiej storny nie można trzymać się standardów z przed 10 lat. Gdzie jest złoty środek?

Tak właśnie zaczęła się historia próby odpowiedzi na podstawowe pytania, jakie można mieć rozpoczynając projekt frontendowy.

Właściwie o czym trzeba dziś pomyśleć zaczynając taki projekt?

Mi przychodzą do głowy następujące rzeczy:

  • Jak ma wyglądać kompatybilność z przeglądarkami?
  • Jaki framework frontendowy wybrać?
  • Jaki standard nazewnictwa przyjąć?
  • Jakiej wersji JS użyć?
  • Jaki stystem budowania?
  • Jak testowac aplikacjie?

Sporo. Nie prawda?

Zacznijmy od kompatybilności z przeglądarkami - to dobry punkt wyjścia, który pociągnie za sobą kolejne decyzje. Problemem oczywiście jak od lat jest IE. Na szczęście udział użytkowników IE starszych niż wersja 10 spada, i osobiście zakładam kompatybilność z tą właśnie wersją.

Nawet stosunkowo wysoki poziom(biorąc także pod uwagę korporacje) - IE10 nie pozwala nam mieć w kodzie wynikowym najnowszej wersji standardu ECMA(JS) . Pociąga to za sobą taką rzecz: pliki JS powinny być zgodne z ECMA 5.

Nie poddawajmy się jednak tak łatwo. Pisanie w ECMA5 nie jest dziś konieczne. Możemy pisać lepiej,szybciej i efektywniej. Będziemy niestety nasz kod po napisaniu TRANSPILOWAĆ do wersji 5. Służy do tego na przykład narzędzie babel.js.

Dalszą konsekwencją jest to, że musimy mieć jakiś skrypt, narzędzie, które za nas wykona proces transpilacji. Takie narzędzie pozwoli nam także lepiej zarządzać całym procesem budowania aplikacji. Tak, tak. Obecne projekty frontendowe mają swój proces budowania.

Jak wspominałem, w świecie frontendu wszystko bardzo szybko się zmienia. Jakiś czas temu, szukając automatyzacji, postawiłbym na Grunt JS, następnie Bower Js. Obecnie w projektach używam Webpack-a. Czy tak będzie także jutro? Nie wiem.

Webpack oferuje nam dość prosty w konfiguracji mechanizm budowania projektu, oraz dodaje ciekawe "smaczki" do naszego projektu. Niewątpliwa zaletą jest także integracja z przeglądarką i automatyczne przebudowywanie projektu. Warto wiec poświęcić trochę czasu na konfigurację i zdecydować się właśnie na ten system.

Stwierdziłem chwilę wcześniej, że nasz kod trzeba TRANSPILOWAĆ. Czyli zmienić standard z NOWSZEGO na starszy. Tu trzeba by się zastanowić, co oznacza "NOWSZY". W moim wypadku, zamiast decydować się na nowy standard, postanowiłem wybrać trzecią opcje. Typescript. Język ten daje nam możliwość korzystania z nowoczesnych standardów JS, jednocześnie dodając silne typowanie do naszego kodu. Co więcej, użycie Typescriptu niejako zachęca do pisania kodu bardziej obiektowego, który w mojej ocenie lepiej nadaje się do testowania. Typescript zdaje się zachęcać do porządkowania kodu.

Podsumujmy nasze dotychczasowe rozważania. Zdecydowaliśmy że nasz kod wynikowy powinien być zgodny z ES5. Chcemy także budować nasz projekt, w czym pomóc nam ma narzędzie webpack. Chcemy aby nasz kod był nowoczesny , dlatego zdecydowaliśmy sie na Typescripta.

Czas na kolejną trudną decyzję. Framework. Jest z czego wybierać.

NIe kupuję towaru z niskim numerem seryjnym

Zgodnie z powyższą maksymom, zdecydowałbym się na sprawdzone w bojach rozwiązanie. Mowa o angularze 1. Leciwy już ( jak na standardy frontedowe) framework daje nam sporą bazę dodatków, dzięki czemu dostarczymy "wartość biznesową" szybciej.

Wersja 1.5 przyniosła bardzo istotną zmianę - podejście komponentowe. Technicznie nie wiele: troche konwencji, trochę smaczków, jednak zmiana w podejściu do projektowania aplikacji, daje nam możliwość nowego, świeżego podejścia do frameworka. Aby podejście komponentowe zadziałało w pełni będziemy też potrzebować routera. Angular 1 miał pewien problem z routowaniem do komponentów. Rozwiązaniem tego problemuy wydaje sie UI-router.

Angular 1.5 pozwala także, na łatwe testowanie wykorzystując Jasmine, karmę, oraz bibliotekę angular-mocks.

Podsumujmy odpowiedzi:

  • Jak ma wyglądać kompatybilność z przeglądarkami? ( >=IE10 )
  • Jaki framework frontendowy wybrać?(Angular 1.5 + ui router 1.0 i podejście komponentowe)
  • Jaki standard nazewnictwa przyjąć? (Typescript MS naming convention)
  • Jakiej wersji JS użyć? (Typescript 2.0)
  • Jaki stystem budowania?(Webpack)
  • Jak testowac aplikacjie? (Karma + Jasmine + angular-mocks)

Mamy odpowiedzi na wszystkie nasze pytania. Czas na zebranie tego w solidną konfiguracje, implementację i przygotowanie startera dla projektu.

...

Strasznie głupio byłoby w tym miejscu uciąć wpis. Prawda? Z drugiej strony jednak omówienie wszystkiego zajmie nam chwilkę.

Dla niecierpliwych: https://github.com/bunny1985/typescript_webpack_angular1_seed

Do następnego spotkania, lub do zobaczenia na guithubie :)

Wybrane dla Ciebie
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.