Vihreä koodi ei ole rakettitiedettä

14.03.2024 08:54:17
Ilmeeni vihreällä koodilla ja ilman

Meillä oli koodikötinöissä Exoven perustaja ja nykyinen kasvujohtaja Janne Kalliola keskustelemassa vihreästä koodista (Nauhoite löytyy tämän linkin takaa tubesta). Vihreä koodi ja Janne itse ovat molemmat tulleet minulle tutuiksi Koodia Suomesta Ry toiminnan kautta. Molemmat olemme yhdistyksen hallituksessa ja vihreä koodi on isona osana agendaamme yhdistyksenä. Yhtenä konkreettisena tekona tiedon jakamisen lisäksi yhdistys on lanseerannut hiilineutraaliusmerkin, jonka avulla on mahdollista esittää organisaation hiilineutrauliuden edistämisen tahtotilaa. Tähän merkkiin vaaditaankin hiilijalanjäljen laskentaa, minimointia ja kompensointia.

Kaikilla ei ole kuitenkaan paukkuja ajallisesti tai rahallisesti lähteä tekemään suuria tekoja ekologisuuden, vihreämmän koodaamisen tai hiilineutraaliuden kanssa. Tai siltä se voi ainakin tuntua! Vihreä koodi on yllättävän suoraviivainen asia. Varastan nyt tähän Jannen esityksestä konkreettisia nostoja joita on hyvä lähteä peilaamaan omaan toimintaan. Ensimmäinen iso askel (tämäkin Jannelta varastettu) on jo aiheeseen liittyvän tiedon selvittäminen ja vaikkapa tämän blogin lukeminen!

Mihin kiinnittää erityisesti huomiota

Mutkia suoristaen koodin elinkaari jakautuu kolmeen osaan:

  1. Kehitystyö
  2. Testaaminen ja julkaiseminen
  3. Koodin käyttäminen

Näistä viimeiseen kohdistuu lähes kaikki hiilijalanjälkeä lisäävä etenkin jos käyttäjiä on paljon. Jos softaa käyttää vain sinä ja mummosi ei merkitys ole näin suuri. Yleensä koodituotoksilla on tavoite päästä useampien ihmisten käsiin. Tämän vuoksi softan käyttämiseen liittyvät ratkaisut ovat suurimmassa avainasemassa.

Mitä huomioida softan käytön osalta

Tässäkin tapauksessa päästään vaikutuksia jakamaan ihanasti kolmeen osaan:

  1. Käyttäjän päätelaite (kännykkä, tietokone ja muut)
  2. Verkko
  3. Palvelimet

Jos käyttäjän laite huutaa punaisena (etenkin jos kyseessä on akullinen laite) voi kooditekele toimia hitaasti ja imeä akun laitteelta tyhjäksi vauhdilla. Ei kovinkaan optimaalista myöskään käyttäjäkokemuksen kannalta. Vältetään siis tilanteita missä käyttäjän laite joutuu tekemään tarpeettoman paljon töitä.

Jos käyttäjän verkko imee dataa täyttä kaistaa (etenkin mobiiliyhteydellä) on verkkoliikenteeseen kulutetut resurssit todella korkeat. Suuret tietomäärät voi lisäksi aiheuttaa tarpeetonta hitautta käyttökokemukseen.

Jos palvelimet huutavat hunajaa aina kun softaa joku käyttää vie tällöin sovellus palvelinpuolella paljon resursseja. Palvelimet on kuitenkin suunniteltu pyörimään vaikka täydellä teholla ja pitkiä aikoja! Siltikään vaikkapa erinäisiä synkronointeja ei kannata tehdä tarpeettoman raskaasti vaikkapa "Tee aina täysi varmuuskopio" tyyppisesti.

Ei kai se ihan noin suoraan mene?

Se menee tutkitusti jopa näinkin suoraan. Beira Interiorin yliopistolla Portugalissa tehtiin tutkimusta jossa todettiin olevan erittäin vahva tai vahva korrelaatio suoritusajan ja sähkönkulutuksen välillä. Muistinkulutuksen ja energiakulutuksen välillä taas ei nähty mitään yhteyttä.

Joten arjessa jo sekuntikellolla pääsee todella hyvin kärryille siitä miten oman sovelluksen vihreys-asiat ovat kunnossa jos koodia jatkokehitetään. Jos tehtiin muutos jonka vaikutus käyttäjäkokemukseen on 5% parannus, mutta suoritusaika kasvaa 100% ei kyseessä ole kovin ekologinen ratkaisu. Tällä tavalla ei ole mahdollista suoraan tietää kuinka paljon sovellus itsessään kuluttaa - mutta voidaan tehdä vertailua sovelluksen kehitysvaihdeiden sisällä kuluttaako se enemmän vai vähemmän sähköä.

  1. Jos sovellus tekee asiansa vähemmässä ajassa on se myös energiatehokkaampaa
  2. Jos liikutetaan vähemmän dataa kuluu vähemmän energiaa tietoverkoissa
  3. Mitä vähemmän tarvitaan palvelimia ja muuta rautaa sovelluksen pyörittämiseen sitä vähemmän siitä tulee päästöjä

Lähtekäämme näillä askeleilla kohti vihreämpiä koodeja! Ja jos haluat aiheesta lisätietoa niin tuolta blogin alusta pääset katsomaan mainittua Jannen koodikötinää aiheesta. On nimittäin näitä käytännön vinkkejäkin nauhalla mukana!

Muita blogeja tältä tyypiltä

Kuinka oppia mitä tahansa

Yrititpä alkaa virkkaamaan, irkkaamaan tai heittämään kärrinpyörää. Toista katsomalla voi yrittää ymmärtää mitä hän tekee ja tehdä perässä. Jos sattuu olemaan hyvä tyyppi niin häneltä voi ihan kysyä, että mitä yrität tehdä ja mitä odotat lopputuloksena

Lukaseppa

Mitä jos palautuisit kesällä

Kesä voi tuntua hyvältä ajalta tehdä tehokkaasti töitä kun puhelin ei kilise niin paljoa, mutta tästä hiljaisuudesta kannattaa ottaa ilo irti ihan levon kannalta!

Lukaseppa

Infonäytöt ja kyselytabletit voi olla nettisivuja

Nykyään web-teknologiat on erityisen käteviä ja kustannustehokkaita kun sen saapi pyörimään tableteilla, kännyköillä, telkkareilla, älyjääkaapeilla ja muulla mistä vaan selain löytyy!

Lukaseppa