Łukasz Spandel – Atena – JavaScript rośnie w siłę – najnowsze trendy w tworzeniu dynamicznych aplikacji internetowych
1. www.atena.pl
Łukasz Spandel
JAVASCRIPT ROŚNIE W SIŁĘ
Atena Usługi Informatyczne i Finansowe S.A.
2. Co chcę przekazać ?
www.atena.pl
1 JavaScript jest językiem z przyszłością
2 Jest czymś więcej niż ładnymi animacjami w przeglądarce
Zapotrzebowanie na programistów jest duże (488 ofert, C#
3
400, PHP 306, JAVA 612)
4 Można tworzyć złożoną logikę biznesową w JS
Firmy informatyczne muszą być świadome zapotrzebowania
5
na kompetencje związane z JavaScriptem
2
Atena Usługi Informatyczne i Finansowe S.A.
3. Popularność
www.atena.pl
Źródło: Raport z sierpnia 2012, bazujący na danych z github i StackOverflow
http://redmonk.com/sogrady/2012/09/12/language-rankings-9-12/
3
Atena Usługi Informatyczne i Finansowe S.A.
4. Zarzuty
www.atena.pl
1 Prymitywny
2 Kłopotliwy w utrzymaniu
3 Kłopotliwy w szukaniu błędów
4 Różnice pomiędzy przeglądarkami
5 Niebezpieczny
6 Asynchroniczny
4
Atena Usługi Informatyczne i Finansowe S.A.
5. Rzeczywistość
www.atena.pl
Nie ma klas i dziedziczenia, są prototypy i metody konstrukcyjne
1
Organizowanie kodu w biblioteki,
2
namespace’y, moduły, pakiety
3 Chrome, Firebug, Firefly, WebStorm, VisualStudio2012
4 jQuery ukrywa przed nami różnice w przeglądarkach
Świadomość niebezpieczeństwa, krytyczny kod wykonywany po
5 stronie serwera
Pozwala wykonywanie zadań w tle
6
5
Atena Usługi Informatyczne i Finansowe S.A.
7. Najpowszechniejszy język programowania
www.atena.pl
1 Aplikacje internetowe, w tym tzw. Single Page Sites
2 Aplikacje mobilne (iOS, Android, Windows Phone)
3 Aplikacje desktopowe (Windows 8)
4 Aplikacje serwerowe bazujące na Node.JS
Funkcje MapReduce w bazach NoSql (MongoDb, CouchDb, Hadoop,
5 Azure)
6 Aplikacje w telewizorach (SmartTV, GoogleTV)
7 Aplikacje Office 2013
7
Atena Usługi Informatyczne i Finansowe S.A.
8. Główni rywale
www.atena.pl
CoffeScript TypeScript Dart
■ Zarządzanie należnościami
Kompilowany do JavaScriptu ■ Kompilowany do JavaScriptu ■ Język stworzony od nowa,
■ iUpraszcza składnie poprzez
procesem windykacji ■ Składnia prawie niezmieniona podobny składniowo do JS
■ Zarządzanie strategią firmy
usunięcie nawiasów, średników, ■ Wprowadza silne typowanie ■ Posiada własną VM, niezgodną z
■ itp..
Model obiegu dokumentów ■ Rozszerza JavaScript o klasy i JavaScriptem
■ Zarządzanieklasy i sprzedaży
Wprowadza siecią dziedziczenie dziedziczenie, wraz z interfejsami ■ Można go kompilować do JS
■ Organizacja biura zarządzania jest
Istnieje relatywnie długo czas i ■ Młody projekt, nie do zastosowań ■ Posiada wiele funkcji
stabilny
projektami produkcyjnych nowoczesnego języka
■ Architektura korporacyjna programowania m.in.: silne
■ IT Governance typowanie, klasy i dziedziczenie,
typy generyczne, kolekcje.
■ Posiada manager pakietów
pozwalający importować
potrzebne biblioteki
■ Młody projekt, nie do zastosowań
produkcyjnych
8
Atena Usługi Informatyczne i Finansowe S.A.
9. Trendy w aplikacjach internetowych
www.atena.pl
Dynamiczne aplikacje typu „Single
Page Site”. Logika prezentacji jest
renderowana po stronie klienta.
Aplikacje budowane na podobieństwo
Aplikacje renderowane po
serwerowych, z wykorzystaniem
stronie serwera
powszechnie znanych praktyk.
Tworzenie abstrakcji nad
mechanizmem trwałego zapisu
danych(Ajax, Webstorage, WebSql)
9
Atena Usługi Informatyczne i Finansowe S.A.
10. Trendy w aplikacjach mobilnych
www.atena.pl
Tworzenie aplikacji w technologii HTML5, JavaScript i opakowywanie
ich w kontenery będące aplikacjami natywnymi dla każdego systemu
operacyjnego z osobna. Kontener dostarcza jedno wspólne API
dostępu do natywnych metod systemów operacyjnych różnych firm.
10
Atena Usługi Informatyczne i Finansowe S.A.
11. Node.JS, ExpressJS, TowerJS, RailwayJS, Socket.IO
www.atena.pl
■ Node.JS jest platformą do pisania aplikacji po stronie
serwera. Pozwala napisać prosty serwer http w kilku
Aplikacje serwerowe linijkach kodu.
■ ExpressJS, TowerJS, RailwayJS są frameworkami
pozwalającymi tworzyć aplikacje MVC
■ Socket.IO pozwala na łatwą implementację
komunikacji w czasie rzeczywistym
11
Atena Usługi Informatyczne i Finansowe S.A.
12. Npm
www.atena.pl
■ Pozwala zarządzać zależnościami zadeklarowanymi
w projekcie
Repozytorium pakietów
■ Umożliwia odseparowanie własnego kodu od
zewnętrznych bibliotek
■ W repozytorium znajduje się duża ilość open
source’owych projektów
12
Atena Usługi Informatyczne i Finansowe S.A.
13. Modernizer
www.atena.pl
■ Bardzo mała biblioteka składająca się z testów
sprawdzających dostępność poszczególnych funkcji
Możliwości przeglądarki w przeglądarce
13
Atena Usługi Informatyczne i Finansowe S.A.
14. PhoneGap
www.atena.pl
■ Pozwala na stworzenie aplikacji w HTML5 i JS, która
będzie mogła być instalowana na różnych systemach
Aplikacje mobilne mobilnych.
■
14
Atena Usługi Informatyczne i Finansowe S.A.
15. qUnit, Jasmine, Swarm
www.atena.pl
■ qUnit pozwala na pisanie prostych testów
jednostkowych
Testowanie i jakość kodu
■ Jasmine pozwala na pisanie testów behawioralnych
■ Swarm jest systemem rozproszonego testowania
aplikacji pod różnymi przeglądarkami w procesie
continuous integration
15
Atena Usługi Informatyczne i Finansowe S.A.
16. RequireJS(Asynchronous Module Definition)
www.atena.pl
Dynamiczne ładowanie ■ RequireJS pozwala na definiowanie zapotrzebowania
w kodzie na konkretne pakiety funkcjonalności,
zależności zwane modułami. W momencie gdy brakuje
zależności, są one pobierane dynamicznie.
16
Atena Usługi Informatyczne i Finansowe S.A.
17. ExtJS, Backbone.JS, Spine, Ember.JS, WinJS,
Wakanda
www.atena.pl
■ WinJS służy do tworzenia aplikacji pod windows 8 na desktopy i
Frameworki po stronie klienta wkrótce na telefony. Współpracuje z API WIN RT. Może
bezpośrednio wywoływać kod C# zawarty w aplikacji.
■ ExtJS jest komercyjnym frameworkiem MVC. Posiada obszerną
bazę kontrolek i dokumentację.
■ Backbone.JS i Spine to mocno rozbudowane typowe
frameworki MVC o podobnej architekturze. Backbone jest
starszy i bardziej dopracowany. Obydwa posiadają dużą
społeczność. Spine jest napisany w CoffeScript
■ Wakanda to cały stos do tworzenia aplikacji pisanych w całości
w JavaScript. Posiada własny framework, serwer, edytor i
narzędzia do graficznego modelowania aplikacji.
17
Atena Usługi Informatyczne i Finansowe S.A.
18. AngularJS, KnockoutJS
www.atena.pl
■ AngularJS jest stworzonym przez Google dobrze przemyślanym
Pojedynek gigantów frameworkiem MVC. Pozwala definiować własne tagi html które
po uruchomieniu strony są renderowane z pomocą szablonów.
Posiada dwukierunkowe bindowanie danych, dependency
injection oraz przestrzenie zmiennych związane ze strukturą
widoku. Mocno rozwijany.
■ KnockoutJS wspierany przez Microsoft framework MVVM,
domyślnie dołączany do nowych projektów MVC4 w VS2012.
Skupia się jedynie na prezentacji i dwu kierunkowym
bindowaniu danych.
18
Atena Usługi Informatyczne i Finansowe S.A.
19. www.atena.pl
dziękuję za
UWAGĘ
19
Atena Usługi Informatyczne i Finansowe S.A.