Koodilla on väliä

Automaailmassa on sanonta, että jokainen auto maksetaan vähintään kahteen kertaan – ensimmäisen kerran liikkeessä ja toisen kerran korjaamoissa. WordPress -sivustojen osalta sanonta voisi olla, että jokainen WP-sivusto koodataan vähintään kahteen kertaan – ensimmäisen kerran projektin aikana ja toisen kerran julkaisun jälkeen. Nostan tästä esimerkiksi kaksi tänä vuonna julkaisemaamme WordPress -sivustoa.

Sivusto A julkaistiin alkuvuodesta.

  • ~ 878 000 riviä koodia julkaisupäivänä
  • ~ 100 000 koodiriviä lisää julkaisun jälkeen
  • ~ 2 700 tiedostoon on kohdistunut vähintään yhden koodirivin muutos

Sivusto B julkaistiin kesän kynnyksellä.

  • 1 489 872 riviä koodia julkaisupäivänä
  • ~ 153 000 koodiriviä lisää julkaisun jälkeen
  • ~ 3 000 tiedostoon on kohdistunut vähintään yhden koodirivin muutos.

Näihin lukemiin ei ole laskettu muutoksia itse WordPressissä, johon on myöskin tullut useampi päivitys sitten viime kevään.

Sivustojen muutostahti on siis ollut kovaa varsinkin, kun ottaa huomioon, että sivustot on jo julkaistu. Haluttu toiminnallisuus ja ulkoasu on siis jo tehty, joten mistä nämä muutokset ovat oikein tulleet? Osa muutoksista on tullut teknisen tukihenkilön näppäimistöltä bugikorjauksina, osa asiakkaan toivomuksen mukaisina kehitystöinä ja loput lisäosien päivitysten myötä.

Verkkosivuston voidaan siis sanoa olevan lähes jatkuvassa muutosten virrassa huolimatta siitä, että sivusto on jo ns. ”kasassa”. Tämä on totta erityisesti WordPress-sivustojen osalta, sillä tietoturvan vuoksi lisäosat, teema ja WordPress on tärkeää pitää ajantasalla vaikka mitään muuta ei tehtäisikään. Se, kuinka hyvin sivusto kestää tässä koodimuutosten virrassa hajoamatta, riippuu pitkälti teknisen toteutuksen laadusta. Tilannetta voisi verrata talon rakentamiseen. ”Kasassa” oleva talo voidaan saada aikaan huonollakin rakennustekniikalla, mutta viimeistään syysmyrskyt ja talven pakkaset paljastavat pysyykö talo oikeasti kasassa.

Kannattaako mädäntyneitä hirsiä enää maalata?

Teknisen toteutuksen laatu voi vaihdella hyvin paljon eri WordPress-sivustojen välillä vaikka toiminnallisuudet tai ulkoasu muistuttaisivatkin toisiaan. Kaikki tiet voivat hyvinkin viedä Roomaan, mutta on sitä maailmaa Rooman jälkeenkin. Huonolaatuisten WordPress-sivustojen osalta tämä ”maailma Rooman jälkeen” voi pahimmillaan tarkoittaa työlästä ylläpitoa ja mahdotonta jatkokehittämistä. Jos tällaiselle sivustolle pitää syystä tai toisesta etsiä uusia kehittäjiä, voi olla, että käsiä ei hirveästi nouse.

Tilannetta voisi verrata autoon, jossa on kiiltävä maalipinta, mutta ruosteinen runko ja vaihdelaatikko, johon ei saa kolmosta isompaa vaihdetta silmään. Tällaisten autojen huolto ja ylläpito vaatii joko todellista rakkautta lajiin tai sitten isoa kukkaroa.

Jos joka kerta koodikannan esilleoton yhteydessä joutuu kysymään itseltään, onko tässä kenenkään kannalta mitään järkeä, vastaus on yleensä kielteinen. Rakennustyömailla todettiin aikoinaan, että ”hyvä siitä tulee ku sen maalaa”. Jos hirsistä tullaan kuitenkin läpi pelkällä lusikalla, ei maalaaminenkaan hirveästi enää auta. Tällöin sivuston uudelleenkirjoitus on pitkässä juoksussa se järkevin vaihtoehto sekä teknisen ylläpitäjän että sivuston omistajan kannalta. Näin voidaan varmistaa hyvät tulevaisuuden näkymät sekä tietoturvan että jatkokehittämisen suhteen.

Lisäosien runsaus johtaa ongelmien runsauteen

Väittäisin, että yksi syy WordPress-sivustojen vaihtelevaan laatuun on sama kuin niiden suosioon – lisäosat. Sivuston kasausvaiheessa on helppo asentaa sopiva lisäosa, koska se näyttää tekevän sen mitä halutaan. Mutta sivustolla olevat 40+ lisäosaa tarkoittaa yleensä isoja ongelmia useammassa vaiheessa sivuston elinkaarta. Pahimmillaan nämä ongelmat näkyvät siinä, että hallinta lakkaa osittain toimimasta tai huolella työstetty etusivu muuttuu vain isoksi valkoiseksi ruuduksi.

Kehittäjän näkökulmasta lisäosien runsas käyttö siirtää huomion tutusta koodista tuntemattomaan magiikkaan, jossa asioita vain mystisesti tapahtuu. Kaikki on hyvin, kunnes ei enää olekaan eikä tilanteen korjaaminen tapahdu nopeasti. Oikeasti 15 minuutin pikku homma viekin muutaman tunnin, koska korjaus joudutaan kopioimaan useampaan paikkaan, korjauksella on arvaamattomia seurauksia ja näitä seurauksia joudutaan korjaamaan toisella korjauksella, jolla on arvaamattomia seurauksia… Ennen kuin huomataankaan, homma pysyy kasassa enää vain ilmastointiteipin ja nippusiteiden avulla.

Helpoiten teknisen toteutuksen laadusta saakin vihiä vilkaisemalla, miten sivustolla käytetään lisäosia. Vaikka tilanne ei olekaan ihan timosoinimaisen ”Missä lisäosa, siellä ongelma” -kaltaisella tasolla, niin jotain sivuston teknisestä toteutuksesta kertoo se, jos pieninkin ongelma on ratkaistu asentamalla uusi lisäosa.

Koodi on ensisijaisesti ihmisiä varten

Sivuston huono tekninen laatu ei johdu pelkästään lisäosien koodista vaan myös omassa koodissa voi olla parantamisen varaa. Yksi helppo keino tason nostamiseen on käyttää kunnollista koodieditoria ja yhteisiä käytänteitä, kuten WordPressin koodausstandardia. Tällöin koodieditori osaa automaattisesti huomauttaa esimerkiksi jos muuttujia tulostetaan tietoturvattomasti tai jos koodissa on selkeä virhe.

Koodausstandardi ottaa myös kantaa siihen, miten asioita nimetään. Tämä saattaa kuulostaa mitättömältä seikalta, mutta se oikeasti helpottaa koodin ymmärtämistä. Jokainen voi miettiä kumpi seuraavista lauseista on nopeammin luettavissa:

kooDauSSTaNdArdIEN NoUdAttAMiNeN TUo leVeämMäT HaRtIat sIvusTON YLLäpIToOn: mUuTOS- Ja kORjauStyöt eIVäT oLE VAiN YhDen tAikUrIKoODARIN tAKana VAan kukA TaHANSa Wp-kooDArI saA SIVUstOn KOODIkannASta SuhTEElLisEn PieNellä vaIValLA KoPIn.
Koodausstandardien noudattaminen tuo leveämmät hartiat sivuston ylläpitoon: muutos- ja korjaustyöt eivät ole vain yhden taikurikoodarin takana vaan kuka tahansa WP-koodari saa sivuston koodikannasta suhteellisen pienellä vaivalla kopin.

Kehittäjä voi helpostikin käyttää työajastaan yli puolet olemassa olevan koodin lukemiseen ja ymmärtämiseen, joten koodin luettavuudella todellakin on väliä. Siinä missä käyttöliittymät osataan jo tehdä ihmisiä varten, koodi vielä valitettavan usein kirjoitetaan koneita varten. Se maksaa aikaa ja rahaa, sillä hidas luettavuus tarkoittaa hitaita ja virhealttiimpia muutostöitä.

Toimiva verkkosivusto on siis muutakin kuin vain ulkoasun ja toiminnallisuuksien summa. Koodilla on väliä. Ja koodilla viittaan siis koko teknisen toteutuksen laatuun alkaen valituista lisäosista aina siihen, miten koodi on kirjoitettu.

Sauli Rajala

Työskentelen Valu Digitalissa WordPress-asiantuntijana. Löydät minut myös Twitteristä @ratsala

JÄTÄ KOMMENTTI