29.10.2013

Node.js ja web-kehityksen uusi aalto

Web-kehityksessä front-end koodauksella tarkoitetaan selainohjelman kehittämistä, jota tehdään pääasiassa HTML-, CSS- ja JavaScript-kielillä. Ennen tätä päivää koko front-end kehitystä on pidetty jossain määrin triviaalina asiana, jonka kuka tahansa pystyy parsimaan kasaan. NCZOnline postasi aiheesta kirjoituksen, joka oli juuri niinkuin me olemme kokeneet.
nodejs-kehitys

JavaScriptin kehityksen myötä selainsovellusten toiminnallisuudet ovat kasvaneet. Samaan aikaan Applen pioneerityö käyttäjäkokemuksen puolesta on levinnyt myös muihin palveluihin ja nyt hyvät front-end kehittäjät ovat suuremmassa huudossa kuin koskaan.

Käyttöliittymän kaksi kerrosta

arkkitehtuuri ilman node.js

Aiemmin front-end koodaajat ovat pääosin toimineet selaimen sisällä tai kevyttä scriptiä luoden php:lla tai jsp:llä ja muilla vastaavilla tekniikoilla. Käyttöliittymän toteuttaminen on kuitenkin vaatinut logiikan kirjoittamista niin selain- kuin serveripäähän. Front-end koodaaja on hoitanut selaimen pään, mutta serveripään käyttöliittymälogiikka on ollut harmaalla vyöhykkeellä.

Toisaalta serveri-koodaaja ei sinne haluaisi koskea, eivätkä heidän ratkaisunsa ole usein optimaalisia front-endin kannalta. Fronttikoodaaja taas ei ole osannut serveripään tekniikoita ja ohjelmointia yleisesti riittävästi järkevän lopputuloksen saamiseksi.

Node.js ratkaisee yhtälön

node.js-pohjainen verkkopalvelun arkkitehtuuri

Noden lähtökohta kuulostaa pahalta; ”kirjoittaa palvelinkoodia JavaScriptillä”. WTF – huutaa serverimiesten kuoro. Mutta siitä Nodessa ei ole kyse, Node.js on työkalupakin uusin jakoavain jolla luodaan ns. front-end palvelimia. Idea on nerokas – nyt fronttikoodaaja voi toteuttaa sekä selaimen että serverin renderoivän käyttöliittymäsovelluksen JavaScriptillä.

Serveripään kaverit taas keskittyvät siihen minkä he osaavat parhaiten: ”miten toteuttaa käyttöliittymän tarvitsemat toiminnallisuudet skaalautuvasti, virhesietoisesti jne.”

REST API tarjoaa yhteisen kielen kommunikoida

Back-end tarjoaa vain frontin haluamat toiminnallisuudet REST API:n ylitse esim. JSON-muotoisena. Back-end kehittäjän ei tarvitse miettiä miten navigaatio toteutetaan, onko käyttöliittymässä jQueryä, päivittääkö sivu vain osan tiedoista vai koko sivun. Heidän tarvitsee vain miettiä paras mahdollinen CRUD toteutus.

JavaScript kasvoi miehen kenkiin

Aiemmin JavaScript on ollut hieman lapsipuolen asemassa ohjelmointikielenä. Siksi Node.js:n käyttö voi joskus aiheuttaa vastustusta, mutta oikein käytettynä Node auttaa erottamaan serveripään UI-kerroksen ”oikeasta” back-endin business-
logiikasta ja laajemman verkkopalvelun arkkitehtuurissa siinä vain on järkeä.

Johtopäätökset

Node.js on tullut jäädäkseen. Node vapauttaa tuotekehitysvaiheessa fronttikoodaajan tekemään sitä missä he ovat parhaimmillaan. Back-end koodaajat saavat keskittyä siihen missä he ovat hyviä ja REST API välissä liittää molemmat yhteen kauniisti ja päätelaiteriippumattomasti. Tähän tarkoitukseen node.js:ää ovat käyttäneet niin eBay kuin LinkedIn sekä monet muut isot yritykset.

 

Lue NCZOnlinen kirjoitus täältä.