---
# System prepended metadata

title: Elokuu ja loman jälkeinen hidas lähtö
tags: [ICT-toimeksiantoprojekti]

---

# Elokuu ja loman jälkeinen hidas lähtö
Kesälomalta palattuani elokuun alussa kehitystyön jatkaminen lähti käyntiin hieman verkkaisesti ja hajanaisesti. Tosin nyt syynä ei ollut enää ajan puute. Aloitin työt loman jälkeen työkoneen vaihtamisoperaatiolla, jota aloittelin jo ennen lomaani jo hieman. Tässä ei muuten mitään ihmeellistätai aikaa vievää olisi, mutta kun kyseessä oli samalla MacBookista vaihtaminen Windows koneeseen. Tämä toi omat haasteensa kun Windows pohjaisten koneiden käyttö on vielä hyvin uutta Valamiksella, eikä kaikki samat työkalut suorilta tahtoneet toimia ilman asioiden selvittelyä.

Kun sitten uusi koneeni alkoi olla siinä kunnossa että pystyin sillä jo jotain tekemään, aloitin projektissani seuraavan vaiheen. Tehtävänä olisi seuraavaksi ennen lomaa luomani Rest-applikaation integroiminen jo olemassa olevaan työkaluun. Haastavinta tästä tekee se, että applikaationi on tehty käyttäen Javaa, ja työkalu on taas Kotlinia. Kotlin kielenä on minulle aivan uusi, mutta se on hyvin samantyyppinen kuin Java. Näin ajattelinkin projektin olevan hyvä tilaisuus opetella kyseistä kieltä. Alkuun suoritinkin applikaation kääntämisen käyttäen Intellij IDEAn automaattista kääntämisominaisuutta. Tosin kääntäjä ei selvästikään täysin ymmärtänyt applikaatiota, ja sen automaattinen kääntäminen aiheutti paljon virheitä. Seuraavaksi sain toisen kehittäjän avukseni käymään läpi virheitä, tosin hänkään ei Kotlinia osannut joten olimme täysin IDEAn virheilmoitusten varassa. Lopulta saimmekin kaikki sen antamat virheet kuitattua, mutta testattuani applikaatiota se ei toiminut alkuunkaan kuten pitäisi, vaikka se ei virheitä synnyttänytkään. Kehitysympäristöni ei edes tunnistanut sen olemassa oloa laisinkaan. Tämän jälkeen tuli vielä kahden viikon tauko projektille.

Tauon jälkeen juttelin tiiminvetäjämme kanssa projektin tilanteesta, sillä arvelin hänen osaavan auttaa applikaation kääntämisessä, sillä hän on toinen alkuperäisen työkalun kehittäjistä. Hällä ei kuitenkaan tietotaitoa paljoa enempää ole kuin minullakaan Rest Apien tekemisestä vaikka Kotlinia jokseenkin osaakin. Hän kuitenkin mainitsi Kotlin- ja Java-kielien yhteensopivuudesta, josta sain idean kokeilla integroida applikaatio uudelleen työkaluun kääntämättä sitä ollenkaan. Applikaation sai kun saikin helposti liitettyä projektiin ilman virheitä, mutta sen toimiminen kuten aiempinkin vaati hieman selvittelyä. Muutaman tunnin projektia pyöritellessäni löysin kuitenkin keinon jolla applikaation sai itsenäisesti toimimaan. Se täytyi eriyttää työkalussa omaksi komponentikseen sen ollessa eri ohjelmointikielellä tehty kuin itse työkalu. Lisäksi osa applikaation konfiguraatioista puuttuivat vielä kokonaan. Nämä hoksasin vertaamalla työkaluprojektin konfiguraatiotiedostoja testiapplikaatioon, jolloin huomasin vielä puuttuvat asiat. Viimeisenä ongelmana löysin vielä yhden pienen syntaksivirheen, jonka jälkeen applikaatio alkoi toimimaan. Opetuksena tästä jäi käteen se, että joskus koko ohjelman toimiminen voi olla kiinni yhdestä ylimääräisestä välilyönnistä. Tämä selvitystyö sujui nopeasti kun samankaltaisia ongelmia jouduimme ratkomaan jo testiapplikaation kanssa. 

Seuraavaksi jäljellä oli vielä opiskella ja toteuttaa tapa, jolla eri ohjelmointikielet saisi toimimaan yhteen. En tiedä oliko tämän hankaluus miten paljon johtuvaa pitkästä tauosta kun viimeksi olen kunnolla koodausta tehnyt, ja miten paljon ympäripyöreästä dokumentaatiosta joka ei vastannut aivan suoraan kyseiseen projektiin. Hain tietoa kuitenkin Intellij:n omilta sivuilta ja sen mukaan yhteys vaikutti hyvinkin simppeliltä. Loppujen lopuksi meni useampi tunti että sain yhteyden toimimaan, ja Rest-applikaation kutsumaan työkalun Kotlin-funktioita. Nyt yksinkertaistettuna kun käyttäjä painaa työkalun käynnistys painiketta UI-portletilla, se kutsuu "GET"-tyyppisellä Http-pyynnöllä Rest-applikaatiota, joka puolestaan kutsuu työkalun käynnistysfunktiota. Toistaiseksi kuitenkin estin työkalun käynnistymisen, ja sen sijaan funktio palauttaa Rest-applikaatiolle String-muotoisen tekstivastauksen, joka lähettää sen eteenpäin UI-portlettiin käyttäjän nähtäväksi. Näin ollen olen saanut aikaiseksi perus käynnistys logiikan työkalun käyttöä varten.

Tämän ajanjakson haasteita olisi voinut ehkäistä paremmalla ja selkeämmällä suunnittelulla joko projektin alussa tai kehitystyön aikana. Jos käytettävä kieli esimerkiksi olisi alunperin suunniteltu olevan Java, en olisi käyttänyt aikaani yrittää sitä edes kääntymään ollenkaan. Jos taas kieli olisi päätetty olevan Kotlin, olisi sen käyttäminen kannattanut aloittaa jo testivaiheessa. En tätä kuitenkaan aiemmin osannut ajatella, kun ei ymmärrys ja kokonaiskuva projektista riittäneet. Olen vain mennyt osio ja ongelma kerrallaan eteenpäin, ilman pitempää selkeää suunnitelmaa.
Nyt kun miettii, olisi sen Kotlin-versionkin varmaan voinut saada toimimaan, jos olisin yrittänyt hieman kovemmin. Ehkäpä projektin venyminen ja siitä nouseva lievä epätoivo painaa jo, ja haluaa vaan päästä mahdollisimman helpolla etenemään.

#### Käytetty työaika tällä ajanjaksolla (1-22.8.):

![](https://i.imgur.com/sQ0mutT.png)

#### Koko projektin työaika tähän mennessä:

![](https://i.imgur.com/qrooI7a.png)

###### tags: `ICT-toimeksiantoprojekti`