Toimiston linjauksia koodauksesta

Syvän ytimen säännöstö

(taululle kaivertanut Mr White)

#1 Älä muuta rajapintaa.

Luuletko, että pystyt testaamaan ja hallitsemaan rajapintamuutoksen aiheuttamat komplikaatiot yhtään isommassa systeemissä? Et pysty. Et vaan pysty. Älä siis muuta rajapintoja, jos et halua sitä tavaraa ropeliin.

#2 Liiat kerrokset ovat liikaa.

Älä lisää kerroksia kerroksien päälle. Kerrokset (siis layerit) ovat oppikirjaratkaisu lähes kaikkiin digimaailman ongelmiin ja ehkä sen takia niitä syntyy helposti ihan liikaa, kun koodaus ja koodaajat pääsevät valloilleen. Jokaisella ylimääräisellä kerroksella on kustannus, sillä se lisää systeemin entropiaa ja syö CPU:ta. Liiat leijerit vievät pimeälle puolelle.

#3 Etsi yksinkertaisuutta niin löydät kauneuden.

Einstein loihe lausumahan, että kaikesta tulisi tehdä mahdollisimman yksinkertaista, mutta ei sen yksinkertaisempaa. Se viisaus on tämän päivän digimaailmassa vähintään yhtä hyvä ja tärkeä ohjenuora kuin Albertin aikoinakin. Sääntö toimii niin käyttöliittymässä, designissa, arkkitehtuurissa kuin koodauksessakin. Ja kuten kaikessa elämänmenossa, niin yksinkertaisuudessakin on kaksi puolta, Jin ja Jang. Liiallinen yksinkertaisuus on vaarallista, tästä hyvinä menneisyyden esimerkkeinä toimivat Alvar Aallon funkkis ja neukkuajan kerrostalokuutiot.

#4 Jokainen edestakainen matka maksaa.

Vaikka netti on nopea, niin silti jokainen kysely selaimen, palvelimien, kerrosten ja rajapintojen välillä hidastaa systeemiä ja huonontaa käyttäjäkokemusta. Tämä on itsestäänselvyys, joka kuitenkin usein unohtuu koodauksen kiivaassa kumussa ja aikataulujen paineissa. Tuhannet maailman systeemit kyselevät samoja tietoja yhä uudelleen ja uudelleen, koska se on niin helppoa ja koska “tilattomuus” on opetettu jonkinlaiseksi sokkona toimivaksi perusteeksi. Tee oikein ja optimoi kyselymäärät, cachea ja profiloi.

#5 Käytä oikeita työkaluja oikeaan hommaan.

Työkalu- ja teknologiavalinnat voivat olla projektin tärkeimpiä päätöksiä. Ne vaikuttavat tuotteen elinkaareen, elinkaaren aikaisiin kustannuksiiin, kehittäjien saatavuuteen ja rekrytointiin, ylläpidettävyyteen, virhealttiuteen, testattavuuteen ja melkein kaikkeen muuhunkin. Ongelma näissä valinnoissa on tietysti se, että minkään teknologian tulevaisuutta ei voi varmasti tietää. Älä silti jää fatalistisesti sattuman ohjattavaksi vaan tee tietoiset valinnat. Vaikka menneisyys ei ole tulevaisuuden tae, niin hyödynnä jo opittua kokemusta ja viisautta aiemmasta digiasiain historiasta.

#6 Koodin on oltava kaunista.

Kun koodi on kaunista, luettavaa ja ohjeistuksen mukaista, se ammattilaisen jälkeä on.