Asiakkaamme odottavat IT-ratkaisujen toimittajilta jatkuvasti parempaa tuottavuutta. Väitän, että valitulla ohjelmointikielellä on suurempi vaikutus IT-ratkaisujen toteutuksen tuottavuuteen kuin usein ajatellaan. Miksi näin?

Lean Startup, MVP, DevOps, pilviteknologiat - näitä meiltä kysytään. Miksi? Koska uusilla menetelmillä ja teknologioilla haetaan parempaa tuottavuutta.

CGI Nextissä tarjoamme asiakkaillemme palvelua, ja asiakkaamme odottavat meiltä tuottavuutta. Siksi tuottavuus on myös tärkeimpiä työmme laadun mittareita.

Code Corner – Miksi Node.js on avain parempaan tuottavuuteen?

 

Mitkä ovat sitten tärkeimmät edellytykset hyvälle tuottavuudelle?

1. Koodaaminen tulkattavalla ohjelmointikielellä
Kehittäjien ajasta aivan liikaa menee kääntämiseen, asennuksiin sekä prosessien käynnistelyihin. Tulkattavalla kielellä tehty koodimuutos näkyy sovelluksessa välittömästi, ja kehittäjä voi keskittyä olennaiseen, eli koodin kirjoittamiseen. Tuottavuus nousee huimasti.

2. Tyypittömyys
Kaikissa tilanteissa tyypit eivät tuo lisäarvoa. Esimerkiksi TypeScriptillä tehty toteutus vaatii noin 30 % enemmän koodia verrattuna tyypittömään JavaScript-toteutukseen. Toimivia asioita saa tehtyä hämmästyttävän pienellä koodimäärällä, kun rajapintoja, domainmalleja ja mallien mappayksiä ei tarvitse erikseen määritellä ja ylläpitää.

3. Funktionaalisuus ja tilattomuus
Olio-ohjelmoinnin ongelma on päätöksenteon hajautuminen ja tilallisuus. Tilallisuus on haasteena skaalautuvissa järjestelmissä, ja se myös monimutkaistaa asioita. Tilallinen olio käyttäytyy eri tavalla eri tilanteissa, mikä tekee siitä arvaamattoman.

Tilattomat funktiot sen sijaan ovat luotettavia, koska ne palauttavat aina saman arvon, kun niitä kutsuu samoilla parametreilla. Se tekee myös toteutuksen testaamisen helpoksi.

Olioita voi periä, mikä on kiva juttu, mutta funktioille voi antaa parametreina funktioita ja ne voivat palauttaa funktioita. Hienojakoisia funktioita yhdistelemällä voidaan siis rakentaa uusia toimintoja todella kätevästi. Funktioiden uudelleenkäytettävyys on ylivoimainen verrattuna olioihin. Tämä vähentää koodimäärää ja parantaa koodin luotettavuutta.

 

Väitän, että valitulla ohjelmointikielellä on suurempi vaikutus IT-ratkaisujen toteutuksen tuottavuuteen kuin usein ajatellaan.

 

Rohkeutta päätöksentekoon

Monissa paikoissa mietitään pilvistrategioita ja teknologioita. Fronttipuolella JS-frameworkkeja harva enää kyseenalaistaa, mutta APIen osalta valitettavan usein turvaudutaan perinteisiin Java/.NET -ratkaisuihin.

Itse kannustan valitsemaan Node.js:n API-toteutuksiin. Tässä muutama syy, miksi liputan sen puolesta:

  • Kehittämisen tuottavuus nousee tulkattavuuden ja tyypittömyyden ansiosta.
  • JavaScriptissä yhdistyy mukavasti olio-ohjelmointi ja funktionaalisuus.
  • Frontendin ja backendin toteutus onnistuu samalla ohjelmointikielellä.

 

Kirjoittaja toimii CGI Next -yksikössä asiantuntijana. CGI Nextiin on koottu uudet teknologiat sekä niihin liittyvät asiantuntija- ja design-palvelut.

 


 

Tutustu myös

Kirjoittajasta

Picture of Matti Koljonen

Matti Koljonen

Full Stack -arkkitehti

Toimin CGI Next -yksikössä johtavana arkkitehtina, teknisenä leadina, kehittäjänä ja konsulttina. Olen aikaisemmin työskennellyt myös liiketoiminnan kehitystehtävissä ja liiketoimintojen kehittäminen uusimpien teknologioiden avulla on suurin intohimoni. Kehityshankkeiden johtaminen on minulle luontevaa. Pidän asiakkaiden ja eri toimialojen asiantuntijoiden kanssa työskentelemisestä. Alustatalous, API -arkkitehtuurit, pilvipalvelut, leanisti ...

Comments

Typescript toteutus ei vaadi 30% enemmän koodia kuin Javascript vaan usein reilusti vähemmän. Tyypityshän on TS:ssä kokonaan valinnaista. TS tarjoaa myös enemmän kielen rakenteita käytettäväksi jolloin rivejä tulee vähemmän kun niitä osaa käyttää. Tuottavuus kasvaa IDE:ä käytettäessä siinä että koodin täydennys ja virheenkorjaus toimii paremmin tyypitysten ansiosta. TS korjaa myös monia Javascriptin "hölmöyksiä".

Submitted by Tuomas Piispanen on 05.04.2017

Kiitos kommentista! Tyypitys on aina jakanut mielipiteitä. Oman kokemukseni mukaan rajapinnat lisäävät koodimäärää - arvio 30% perustui omiin kokemuksiini. Toki jos TS:ää käyttää vain osittain niin ero on pienempi. IDE:n virheenkorjauksessa olen nojannut yleensä ESLintiin. TypeScriptillä on toki kannattajansa. Mielenkiintoista nähdä mihin suuntaan asiat kehittyvät!

Kirjoita kommentti

Comment editor

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
Blogi-kommentoinnin ohjeet ja käyttöehdot