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ä

Älä kerjää liikaa asiakkaidesi huomiota

Kanta-asiakkaasi haluavat varmasti kuulla sinusta, mutta ei välttämättä ihan joka päivä. Tarjouksien ja uutiskirjeen vastaanottajat kannattaisi pitää erillään kanta-asiakas rekisteristä!

Lukaseppa

Keskittyminen takaisin 60 sekunnissa!

Refocus your mind! Joskus kaaoksesta pääsee helpotukseen kun malttaa minuutin ajan keskittää huomionsa takaisin nykyhetkeen.

Lukaseppa

Kuinka valmistautua harjoitteluun

Harjoittelu tulee olemaan enemmän sen harjoittelun tapaista kuin siihen kouluttautuminen on. Siihen kannattaa siis malttaa panostaa!

Lukaseppa