Mitä väliä koodin kirjoitustavalla on?

Kouluissa ja erinäisillä ohjelmoinnin kursseilla opetetaan, miten tietyllä kielellä tai tekniikalla ohjelmoidaan. Lisäksi saatetaan, huom. saatetaan, käydä läpi joitain hyviä käytäntöjä kyseiseen kieleen tai tekniikkaan liittyen. Harvassa paikassa kehotetaan kiinnittämään huomiota koodin kirjoitustapaan eli koodin laatuun.

Oho!

Keskustelin erään yrityksen johtavan arkkitehdin kanssa aiheesta ja kysyin, onko heillä yrityksessä käytössä koodikäsikirja, joka opastaa kirjoittamaan hyvää, helposti ylläpidettävää koodia? Vastaus oli: "ei ole, mutta kyllähän kaikki tietää, miten sellaista koodia kirjoitetaan". Pyysin, että katsoisimme jonkin heidän tuottaman ohjelmiston koodia, jotta näemme, pitääkö hänen "kyllähän kaikki tietää"-oletuksensa paikkansa. Heti ensimmäisessä avaamassamme luokassa koodi oli kirjoitettu aivan miten sattuu eikä kyseisen koodin ylläpidettävyydestä voinut juuri kehuja antaa. Koodi oli kyllä toimivaa eli ohjelmisto toimi eikä kyseisessä kohtaa koodia ollut bugeja. Mutta tapa, jolla koodi oli kirjoitettu... sitä koodaria en pitäisi kovin kummoisena koodarina.

Koodauskisa

Seuraavassa hieman esimerkkiä. Koodarit Marjaana ja Simeoni päättävät ottaa pienen koodauskisan. Heidän tehtävänään oli tehdä hakutoiminto peliin, jossa järjestetään ja kisataan autokisoja eri kaupungeissa. Simeoni on koodasi kovasti ja sai aikaiseksi seuraavanlaisen koodin pätkän:

Marjaana koodasi myös kovasti ja hänen tuotoksensa näyttää seuraavalta:

Kumman koodista pääset nopeammin perille? Kumman koodista lähtisit mieluummin etsimään bugia (esim. hakusanalla haku ei toimi) tai jatkaisit kehitystyötä? Kumpaa pidät parempana koodarina?

Ja voittaja on...

Koodauskisan voittaja on... Marjaana. Hänen koodinsa on huomattavasti laadukkaampaa. Osaatko perustella miksi? Kirjoita vastauksesi tuossa hieman alempana olevaan kommentit-osioon.

Kooditerveisin

 

Jarkko

Parempi koodari™ -valmentaja

Write a comment

Comments: 1
  • #1

    Nerissa Seely (Saturday, 04 February 2017 23:22)


    Pretty! This has been a really wonderful post. Thank you for supplying these details.