Käsitys kauniista koodista kehittyy

Eihän tyylikäs ihminen kirjoita kauppalistaankaan ”(5 – 4) * (852 ^ 0) banaania”, hyvänen aika nyt.

Java-kurssini etenee hitaasti mutta varmasti. Tekemistä on kurssiohjelman mukaan ilmeisesti 14 viikoksi, ja tuskin etenen tätä nopeammin itsekään. Kurssi on siis aika laaja (itse asiassa 10 op yliopistonoppia). Vauhdikasta edistymistä kuitenkin tapahtuu koko ajan!

Huomaan nimittäin toisinaan, että oma koodini on kömpelöä ja rumaa. Ihan aluksi pääasia oli, että koodi toimii, eikä estetiikalla ollut väliä. En nimittäin ajatellut, että koodi edes voi olla hyvännäköistä. Nyt kuitenkin tutkin mallivastauksia yhä enemmän ja enemmän siitä näkökulmasta, kuinka homma ratkaistaisiin tyylikkäästi ja yksinkertaisesti.

Minusta koodi on sitä kauniimpi, mitä lyhyemmin jokin asia on ilmaistu. En usko, että olen kauneuskäsitykseni kanssa yksin. Vertaan tätä koko ajan matematiikkaan, jota koodista onkin iso osa. Saman luvunhan voi ilmaista lukemattomilla tavoilla, esimerkiksi nämä ovat kaikki sama luku:

  • 25
  • 24 + 7 – 6
  • 5 * 5
  • 625 ^ 0,5

Mutta jos vaikka poikaystävä käskisi minun ostaa 625 ^ 0,5 porkkanaa, joutuisin tekemään enemmän ajatustyötä tuodakseni kotiin oikean määrän porkkanoita kuin jos käsky olisi tyylikäs: ”Tuo 25 porkkanaa.”

Sama pätee nähdäkseni koodiin. Esimerkiksi kun piti yrittää saada Fibbonaccin lukujono tulostettua ja tehtyä sillä kaikenlaista pyöritystä, minulla oli aluksi koodissa hirveä määrä muuttujia ja tosi pitkiä tulostusrivejä ja kaikkea sellaista. Halusin kuitenkin sitten siistiä sen, ja siinä meni hetki. Kaunis koodiajattelu nimittäin vaatii näköjään vähän harjoitusta ja aika vahvaa rutiinia siitä, mikä on mahdollista ja mikä kannattaa mitenkin toteuttaa. Sotkua näköjään tulee, jos ajattelee monivaiheisesti. Oman ajattelun siistiminen jälkeenpäin tuntuu hassulta ja saa välillä tuntemaan itsen aika hölmöksi (”Miksen heti tajunnut että tämä oli näin lyhyesti sanottavissa?!”).

Siksikö vastaavaa muuten sanotaan matematiikassakin sieventämiseksi? Siis että tehdään yhtälöistä (tai koodista) sievää ja siistiä? Kyllä varmaan! Apua, kyllähän tässä maailma laajenee taas ja sanat tuntuvat merkityksellisemmiltä kuin aiemmin!

Minulle siis kehittyy hiljalleen myös tyylitajua! Hyvä juttu.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

This site uses Akismet to reduce spam. Learn how your comment data is processed.