Język JavaScript, który powstał w 1995 roku, ma niewiarygodną historię. Przez pewien okres czasu był niechętnie stosowany, później był blokowany w przeglądarkach, a dziś jest jednym z najpopularniejszych języków programowania używanych do budowania bibliotek i aplikacji internetowych. Może być wykorzystywany nie tylko po stronie klienta w przeglądarce, ale również po stronie serwera. Jaki zatem framework JavaScript wybrać budując własną aplikację webową ?
W gąszczu wielu rozwiązań początkującym programistom JavaScript może być ciężko wybrać odpowiedni framework do budowy aplikacji internetowej, jej testowania czy implementacji serwera. Poniższe zestawienie obecnie stosowanych bibliotek i framwework’ów JavaScript być może ułatwi wybór odpowiedniego narzędzia.
Budowanie aplikacji w architekturze MVC
Początkowo JavaScript był wykorzystywany jedynie w przeglądarce po stronie klienta, więc nie dziwi fakt, że właśnie tego typu bibliotek jest najwięcej. Ponadto popularny i sprawdzony model budowania aplikacji w architekturze MVC (Model View Controller) sprawdza się w innych językach programowania. Obie przyczyny spowodowały, że framework’ów ułatwiających implementację aplikacji w modelu MVC działajacych po stronie klienta w przeglądarce jest tak dużo:
Implementacja kodu serwera w JavaScript
Budowanie aplikacji po stronie serwera (ang. server-side) w języku JavaScript w znacznej większości sprowadza się do zastosowania sprawdzonego w produkcyjnych rozwiązaniach Node.js wraz z Express. Platforma oparta jest na silniku V8 i wykorzystuje nieblokujące operacje wejścia / wyjścia oraz asynchroniczny mechanizm zdarzeń.
Budowanie kodu po stronie klienta i serwera w JavaScript
Oprócz bibliotek ułatwiających implementacje kodu po stronie klienta, a także platform działających po stronie serwera, są framework’i, które umożliwiają budowanie kodu aplikacji w JavaScript zarówno po stronie klienta jak i po stronie serwera (tzw. full stack JavaScript frameworks):
Użyteczne biblioteki
W wielu aplikacjach internetowych wykorzystuje się również biblioteki ułatwiających kodowanie w JavaScript, umożliwiających dodanie ciekawych efektów animacyjnych czy też pozwalających na dynamicznie zmiany strony i wywoływania żądania AJAX:
Testowanie aplikacji internetowej
Rozwijanie aplikacji wg procesu TDD (ang. Test Driven Development) jest obecnie nie tylko popularne, lecz przede wszystkim wygodne w przypadku większych aplikacji, bowiem zmniejsza liczbę popełnionych błędów w kodzie poprzez ciągłe jego testowanie. Nie inaczej jest w przypadku JavaScript, dla którego istnieje szereg bibliotek do testów:
- QUnit – biblioteka do wykonywania testów jednostkowych w JavaScript
- Jasmine – framework do testowania aplikacji wg procesu BDD (ang. Behavior Driven Development)
- Karma – narzędzie do testów jednostkowych aplikacji w AngularJS
- Protractor – narzędzie do wykonywania testów E2E aplikacji w AngularJS
- Mocha – framework do testów aplikacji Node.js
- PhantomJS – uruchamiana z linii poleceń przeglądarka JavaScript wykorzystywana np. do testów funkcjonalnych