Koodarit kirjoittavat surkeaa koodia

Omaan kokemukseeni perustuen olen samaa mieltä otsikon kanssa. Koodarit kirjoittavat surkeaa koodia, paikoitellen todella surkeaa!

 

Työssäni olen eri tilanteissa joutunut tekemisiin kymmenien eri koodareiden kirjoittaman koodin kanssa. Osaa koodista olen lukenut tarkemmin ja osaa vain katselmoinut. Näiden tilanteiden seurauksena voi hyvinkin vetää johtopäätöksen, että hyvää koodia kirjoittaa keskimäärin yksi 10-20 koodarista eli 5-10%. Muiden koodi on surkeaa, paikoin täyttä kuraa. En tarkoita surkealla koodilla sitä, ettei se toimisi. Jokainen koodarihan osaa kirjoittaa toimivaa koodia, ei hän muuten olisi koodari. Toimivakin koodi on vain valitettavan usein surkeaa.


Surkealla koodilla tarkoitan koodia, jossa muun muassa

  • on tehty bugiriskiä lisääviä ratkaisuja (eli purkkaratkaisuja),
  • koodin uudelleenkäyttö on minimaalista tai koodia ei käytetä ollenkaan uudelleen tai
  • koodista on tehty keinotekoisesti uudelleenkäytettävää,
  • ei ole ajateltu koodin lukijaa ja
  • on tyystin unohdettu, että koodin kanssa joutuu tekemisiin myöhemminkin.

Onko surkea koodi koodareiden vika?

Ei! Vaikka he sitä kirjoittavatkin niin ei se ole heidän vikansa. Eihän koodareilta (tai yleensäkään keneltäkään) voi odottaa, että he osaavat jotain mitä heille ei ole opetettu tai mitä he eivät ole opetelleet. Kouluissa ja kursseilla ohjelmoinnista opetetaan tekniikkaa idealla ”pääasia, että se toimii”. Näiden oppien pohjalta kirjoitin itsekin todella surkeaa koodia ennen kuin havahduin asiaan. Moni ei havahdu asiaan koko uransa aikana.


Hyvä koodi

Eräs hyvän koodin tunnusmerkki on uudelleenkäytettävyys. Monessa paikassa toitotetaan, että kirjoittakaa uudelleenkäytettävää koodia. Miten uudelleenkäytettävää koodia kirjoitetaan, sitä ei sitten kerrotakaan. Todella usein näkee koodareiden toistavan samaa koodia eri paikoissa, kun pienellä vaivalla koodista olisi saanut tehtyä uudelleenkäytettävää ja olisi pärjätty yhdellä koodinpätkällä. Samalla riski bugeihin olisi vähentynyt huomattavasti.

 

Toinen hyvän koodin tunnusmerkki on luettavuus. Otetaan yksinkertainen esimerkki. Katso alla olevaa kuvaa (aukeaa suureksi klikkaamalla). Katso sitten tätä blogitekstiä. Kumpaa on helpompi lukea? Sama ero on hyvällä ja surkealla koodilla. Toki koodin luettavuus on vain yksi ylläpidettävyyttä parantava asia, mutta erittäin tärkeä.

 

Korjataan tilanne

Edellä kuvatut kaksi asiaa ovat vain osa hyvän koodin tunnusmerkeistä. Olen luonut koodareille suunnatun

Koodi kuntoon -haasteen, jossa opetan koodarit kirjoittamaan hyvää koodia ja käyn läpi loput hyvän koodin tunnusmerkeistä. Haasteen tavoitteena on parantaa koodareiden tuottaman koodin laatua siten, että sitä voidaan hyvällä omalla tunnolla kutsua kaikilta osin hyväksi koodiksi. Haasteessa herätellään osallistujia koodin kirjoitustavan tärkeyteen sekä opetetaan heille hyvän koodin ja koodin ylläpidettävyyden kannalta tärkeimmät asiat.

 

 

Kooditerveisin

 

Jarkko

Write a comment

Comments: 1
  • #1

    Rebbecca Titcomb (Wednesday, 01 February 2017 17:49)


    Everyone loves it when individuals come together and share ideas. Great website, continue the good work!