20 doświadczonych developerów spotkało się, by przebadać kwestie związane z praktycznym zastosowaniem JavaScriptu. Opracowaliśmy 18 tematów, zaimplementowaliśmy 4 różne wersje Twittera oparte o różne technologie ServerSide JavaScript. Prawie 40 godzin kodowania, kilka tysięcy commitów do repozytorium.

Dzielimy się z Wami rezultatami i zapraszamy do dyskusji!

Research

Przeczytaj wyniki, wnioski i podsumowania 20 tematów badawczych związanych z Server Side JavaScriptem.

Hosting dla Node.js

Gdzie wdrażać nasze aplikacje? Sprawdziliśmy kilka najpopularniejszych serwisów hostingowych na których można odpalić projekty Node.js.

Hosting dla RingoJS na Google App Engine

Kilka cennych wskazówek dla wszystkich, którzy zechcą swoje aplikacje RingoJS umieścić w chmurze Google App Engine.

Debugowanie SSJS

Jest wiele sposobów na odrobaczanie backendowych skryptów JS. Proponujemy zapoznać się ich wadami i zaletami.

IDE dla Node.js

Jakie zintegrowane środowiska programistyczne oferują obsługę Node.js? My wiemy i chcemy podzielić się z wami odpowiedzią na to pytanie.

TDD dla Node.js

Dobrodziejstwa test-driven development w aplikacjach Node.js - nasze uwagi na temat modułów organizujących testy jednostkowe.

Build, Continuous integration

Jak wykorzystać mavena w projektach RingoJS, instalacja w kontenerze aplikacji, integracja w trybie ciągłym i inne...

Node.js jako middle-end

Użyliśmy Node.js do stworzenia proxy symulującego przeglądarkę, które generuje i serwuje gotowe drzewo DOM dla starszych (mniej wydajnych) interpreterów JS.

Testy wydajności WebSockets

Wykorzystanie Websocketów w aplikacji javascriptowej jest bardzo kuszące, dlatego też postanowiliśmy sprawdzić stabilność samego protokołu oraz jego implementacji w Node.js

Integracja V8CGI z PHP

Koegzystencja V8CGI i PHP na jednym serwerze to dosyć typowa sytuacja. Jak sprawić aby aplikacja V8CGI mogła się komunikować z PHP (i vice versa) w ramach platformy Apache?

OAuth

Sprawdziliśmy jakie aktualnie mamy możliwości wykorzystania otwartego protokołu uwierzytelniania użytkowników w aplikacjach Node.js

Moduły MySQL dla Node.js

Przebrnęliśmy przez repozytorium npm (zwane Stajnią Augiasza) w poszukiwaniu najlepszych modułów do obsługi MySQL. Oto wyniki naszych poszukiwań.

Moduły MySQL dla RingoJS

Programiści RingoJS mają do wyboru dwa moduły służące do połączenia się z MySQL. Przedstawiamy analizę ich wad oraz zalet.

Testy wydajności modułów MySQL (Node.js i RingoJS)

Porównanie poszczególnych modułów Node.js oraz RingoJS - zbadaliśmy wydajność jaką mogą osiągnąć w komunikacji z bazą MySQL.

Migracja bazy relacyjnej do MongoDB i do CouchDB

Konkluzje dotyczące przemieszczania danych ze świata SQL do krainy baz dokumentowych. Omówienie dobrych praktyk oraz wyniki testów wydajności.

Mappery ORMowe (CouchDB i MongoDB) do RingoJS

Wykorzystanie mapowania obiektowo-relacyjnego w komunikacji z bazami noSQL. Testy porównujące wydajność zróżnicowanych zapytań do bazy SQL oraz noSQL.

Testy wydajności środowisk (CPU oraz I/O)

Analityczne porównanie wydajności rozwiązań opartych na SSJS z wielkimi klasykami - PHP i Javą. Testowaliśmy wykorzystanie procesora oraz operacje wejścia-wyjścia.

Testy wydajności systemów generowania szablonów

Sprawdziliśmy jak wydajny może być SSJS w teście szybkości generowania treści. Porównanie objęło też najpopularniejsze systemy templatkowe pracujące z Java, Ruby, PHP, Python...

Protokoły

Przekrojowa analiza możliwości wykorzystania SSJS jako middleware. Zbadaliśmy przydatność modułów obsługujących protokoły: SMTP, IMAP, XML, XMPP

Pisanie bezpiecznego kodu pod Node.JS

Jak zabezpieczyć nadpisywanie zmiennych globalnych przez moduły, w jaki sposób wykonywać kod w środowisku izolowanym i inne zagadnienia dotyczące bezpieczeństwa.

Zabezpieczanie kodu źródłowego

Omówienie wybranych bibliotek oraz najlepszych praktyk służących do zabezpieczania kodu źródłowego przed dostępem przez osoby niepowołane.

Jak było?

3 dni wypełnione po brzegi kodem, JS’em i czasami aż zbyt gorącymi dyskusjami. Naturalnie w rewelacyjnym towarzystwie :-)

Opinie uczestników

Development

Po dwóch dniach hiperintensywnego R&D przyszedł czas na wykorzystanie rozpoznanych technologii w praktyce. Zbudowaliśmy cztery wersje Twittera w oparciu o zróżnicowane technologie Server Side JavaScript. Ponad to gra GeoIP - jako wisienka na torcie. Zobacz szczegóły implementacji.
Cheesify_logo

Cheesify

V8CGI na Apache’u, CouchDB, szablony EJS

Twiiit_logo

Twiiit

RingoJS na Google App Engine

Devcamp_twitter_logo

Devcamp Twitter

Node.js, MongoDB, Heroku

Cheester_logo

Cheester

Restify, Node.js + Express, Jade

Geoip_logo

GeoIP game

Socket.IO, Node.js + Express, Jade

Co dalej?

SSJS Winter Camp 2011

Nie wziąłeś udziału w SSJS Summer Camp? Nic straconego, szykujemy kolejną, zimową edycję. Jeżeli jesteś zainteresowany udziałem, zostaw swojego maila.


Zapraszamy na DevMeetings.

Tematy poruszone na DevCampie kontynuujemy na DevMeetingach – bezpłatnych warsztatach dla doświadczonych developerów. Zarejestruj się teraz!

Wydajność Node.JS kontra reszta świata

Poznań 03.09.2011

Bazy NoSQL'owe - naturalny storage aplikacji JS

Warszawa 10.09.2011

Middle-End w oparciu o ServerSide JS

Kraków 24.09.2011
Copyright © DevCamp 2011