JavaScript na serwerze: RingoJS, V8CGI i NodeJS

Ssjs%20teaser

Tagi JavaScript, ssjs, nodejs, v8cgi, ringojs

Zapraszamy na intensywny, dwunastogodzinny DevMeeting na temat wykorzystywania JavaScript po stronie serwera. Podczas warsztatów zaimplementujemy nie tylko naprawdę ambitną funkcjonalność w popularnym NodeJS, ale zaprezentujemy i wykorzystamy alternatywne, nieco mniej znane rozwiązania jak RingoJS i V8CGI.

Implementujemy webowe IDE!

Podczas warsztatów zaimplementujemy rozbudowaną aplikację typu WebBased IDE. Będzie to edytor JavaScript, uzupełniony o obsługę testów jednostkowy dla pisanego kodu, kontrolę wersji (live), zarządzanie plikami projektu oraz obsługę repozytorium git.

Dla kogo?

DevMeeting ten dedykujemy zaawansowanym programistom JavaScript posiadającym duże doświadczenie inżynierskie (wzorce projektowe, zagadnienia server-side, bazy danych). Nie wymagamy znajomości serwerowego JavaScriptu, natomiast sam język nie powinien w żaden sposób ograniczać uczestników. Znajomość domknięć, obiektowości czy prototypów jest niezbędna. Warsztaty polecamy też naprawdę doświadczonym programistom Java (z racji javowej natury RingoJS).

ServerSide JavaScript: czy jest już dojrzałym środowiskiem?

Historia wykorzystywania JavaScript po stronie serwera jest prawie tak długa jak historia samego języka. Dopiero jednak lawinowy wzrost popularności klienckiego JS oraz pojawienie się frameworku NodeJS spopularyzowały rozwiązania SSJS. Słusznie, gdyż język ten ma wiele cech użytecznych w aplikacjach serwerowych:

  • asynchroniczna natura,
  • zdarzeniowe działanie,
  • możliwość użycia tego samego kodu po stronie klienckiej i serwerowej,
  • JSON – najbardziej naturalny i czytelny format wymiany danych, który jest składową samego języka.

Krytykowana niska wydajność JavaScriptu została poprawiona we współczesnych interpreterach. Nierzadko przewyższa prędkością działania stricte serwerowe języki jak choćby Ruby czy Perl. Istotną zaletą może być również sprawna integracja rozwiązań javascriptowych ze środowiskiem Javy.

Technologie SSJS

Serwerowy JavaScript wspierany jest przez różne koncepcyjnie frameworki. Wybór jest uwarunkowany wymaganiami środowiska oraz samą problematyką jaką będzie się zajmował program. W ramach workshopu stworzymy rozproszoną aplikację komunikującą się z kilkoma serwerami. Aby dokonać przeglądu istniejących możliwości każdy z serwerów zbudujemy na bazie innego silnika. Skorzystamy z następujących rozwiązań:

  • NodeJS – najbardziej rozpoznawalna nazwa w świecie serwerowego JavaScriptu, bardzo lekki framework pozwalający na szybkie tworzenie serwerów HTTP lub socketowych. Można go zareklamować zdaniem: “kompletny serwer w kilkanaście linii kodu”.
  • RingoJS – gratka dla programistów Javy, framework oparty o interpreter Rhino. Daje możliwość wykorzystania tysięcy istniejących bibliotek języka Java, dedykowany interfejs do Hibernate, tworzenie servletów, a wszystko to z poziomu JavaScriptu. Do tego łatwy deployment, możliwość skorzystania z Google App Engine.
  • V8CGI – lekki serwer webowy (moduł Apache’a), wykorzystuje natywny, obecnie najszybszy z istniejących interpreter JavaScriptu V8 (stworzony przez Google). Dobry i szybki robotnik, który pozwoli na sprawne połączenie z bazą danych, kompresję ZIP, obsługę XML, dostarczy mechanizm RPC, możliwość generowania obrazów oraz wiele innych operacji typowych dla rozwiązań webowych.

Co jeszcze?

Dwanaście godzin, trzy frameworki i jedna, ale bardzo rozbudowana aplikacja do napisania. Podczas krótkich przerw podyskutujemy o dobrych praktykach javascriptowych, przedstawimy konkretne wzorce dla rozwiązań serwerowych. Z pewnością dotkniemy też tematu wydajności. Przedstawimy również inne rozwiązania serwerowego JavaScript, jak choćby Helma czy GlueScript. W ramach ciekawostki porozmawiamy o dostępie do baz danych z poziomu klienckich aplikacji JavaScript z pominięciem kodu serwerowego.

Warsztaty, które się odbyły

Poznań, 14 maja relacja

  • Img_2310
  • Img_2300
  • Img_2307
  • Img_2306

Wrocław, 21 maja relacja

  • Img_6442
  • Img_6436
  • Img_6452
  • Img_6486

Kraków, 18 czerwca relacja

  • Bildschirmfoto%202011-06-20%20um%2015.39.05
  • Bildschirmfoto%202011-06-20%20um%2015.40.03
  • Bildschirmfoto%202011-06-20%20um%2015.48.06
  • Bildschirmfoto%202011-06-20%20um%2016.07.40

Devmeetings @ facebook

Prowadzący

David de Rosier, rocznik 1977. Programista, szkoleniowiec i pasjonat WEB2.0 oraz nowoczesnych technik programistycznych. Były nauczyciel akademicki, stały współpracownik Software Developers Journal. W latach 2003-2010 zajmował się szkoleniem programistów z technologii MDA (BML, Java, JavaScript) oraz projektowaniem aplikacji bankowych i mobilnych, pracując onsite dla klientów w Azji, Afryce i Europie. Aktualnie freelancer, zajmujący się głównie szkoleniami i konsultingiem z technologii javascriptowych. W wolnych chwilach programuje lub podróżuje. Często jedno i drugie.
David zapewnia, że żadne z waszych pytań, które pojawi się podczas pisania aplikacji, nie pozostanie bez odpowiedzi.

Dyskusja

Aby wziąć udział w dyskusji, musisz się zalogować .
Jeśli nie posiadasz jeszcze konta, prosimy się zarejestrować .