Kesälomakauden jälkeen ensimmäiseksi blogiksi ajattelimme tarjoilla läpileikkauksen koodarin työpäivästä. Minkälainen on Riihikoodarin normaali työpäivä asiakasprojektissa, mitä tekniikoita ja työvälineitä päivän aikana käytettiin. Mukavia lukuhetkiä!
Päivä ohjelmistotalon ohjelmistokehittäjänä lähti liikenteeseen totuttuun tapaan lyhyellä Daily-palaverilla tiimin kesken, jossa käytiin läpi päivän kuulumiset töiden osalta, mahdolliset työn etenemistä estävät blokit ja ehdittiinpä kartoittaa vähän myös itse kunkin tulevan viikonlopun suunnitelmia ja kertoa pari hyvää vitsiä.
Dailyn jälkeen aloin selvittelemään erästä bugia, joka aiheutti asiakkaan sivustolla näytettävän hakulistauksen muutamille riveille väärän numeerisen arvon. Arvo olisi pitänyt täsmätä hakulistauksesta eteenpäin siirryttäessä tulevalla sivulla olevan vastaavan arvon kanssa. Aloin tutkimaan jälkimmäisen sivun laskentalogiikkaa, ja sen selvittyä aloin katsomaan miten se vastaisi hakulistauksessa tapahtuvaa laskentaa. Ilmeni, että hakulistauksen laskennassa oli käytetty hieman vanhempaa koodia (ennen sotia), jota debuggaillessani päädyin lopulta tietokannan SQL näkymään, jonne kaikki arvon laskemisen logiikka oli sisällytetty (ja josta tuleekin mieleeni vanha sanonta: ”kaikki tiet vievät SQL näkymään"). Näkymän luonnissa oli yhdistetty tietokantatauluja ja funktioita niin maan perusteellisesti ja lisäksi sitä kutsuttiin useammasta paikasta, joten katsoin parhaimmaksi kysäistä mielipidettä yhdeltä tiimimme Senior Developereista. Herra Senior työskenteli tänään etänä, joten otimme Teams-palaverin ja pistin ruutua jakoon samalla kun kävimme yhdessä läpi SQL näkymään tehtävät muutokset. Onnistuinpa vielä lopuksi nakittamaan näkymän päivityksen hänelle.
Tämän sprintin tikettini olivatkin tämän jälkeen jo hyvällä mallilla, joten kysäisin Product Ownerilta olisiko hänellä jotain nostoa seuraavan sprintin tehtävistä tai backlogilta, jonka parissa voisin jatkaa. Päätimme, että voisin ottaa työn alle rajapintatiketin, jossa asiakas halusi muutoksia meiltä lähtevään sanomaan. Päällisin puolin tehtävä vaikutti helpolta, sillä muutokset koskivat vain muutaman arvon muuttamista JSON-sanomassa. Tehtäväksi oli määritelty myös kohdepalvelimen muutos, sillä asiakas oli valmistelemassa uudempaa rajapintatoteutusta sinne. Hommasta muodostuikin iltapäiväkahviin saakka kestänyt taistelu, sillä uusi palvelin ei suostunut ottamaan sanomaamme vastaan, ei sitten millään, mitenkään eikä varsinkaan väkisin. Asia liittyi jotenkin SSL protokollaan, josta virhekin tuli, mutta ratkaisu antoi odotuttaa itseään. Ahkera kuukkelointi kuitenkin tuotti lopulta tulosta ja kun vaihdoin sovelluksemme tietoturvaprotokollaksi System.Net.SecurityProtocolType.Tls12, niin homma lähti odotetusti rokkaamaan ja tämä koodari pääsi ansaitulle kahvitauolle puhumaan henkeviä ja pelaamaan muutaman erän pöytälätkää.
Loppupäivä menikin iframe-ongelmaa selvitellessä. Asiakas näytti omalla sivustollaan iframessa yhtä websovelluksemme sivuista, ja koska sivun sisältö voi muuttua dynaamisesti myös korkeussuunnassa, lähetämme kulloistakin korkeustietoa Iframelle JavaScriptillä. Tämä korkeustieto pitää vaan myös ottaa talteen JavaScriptillä iframen päässä, jolloin iframen korkeus saadaan säätymään automaagisesti. Nyt kuitenkaan homma ei tuntunut pelittävän, ja iframe pysyi itsepäisesti aina samankokoisena, jolloin osa sisällöstä leikkautui ikävännäköisesti pois. Skypettelin asiakkaan kanssa, ja lopulta löysimme vastaanottavan pään koodin seassa seikkailevan typon, ja homma saatiin ratkaistua juuri sopivasti ennen kotiin lähtöä.
Päivän aikana käytetyt tärkeimmät työkalut:
Microsoft Visual Studio Professional 2019, SQL Server ja SQL Management Studio, Google Chrome ja Chrome Developer Tools
Päivän aikana käytetyt tärkeimmät teknologiat:
C#, .NET, JavaScript, SQL
2024
Lokakuu (2)
Kesäkuu (1)
Toukokuu (2)
Huhtikuu (1)
2023
Joulukuu (4)
Lokakuu (4)
Syyskuu (3)
Elokuu (1)
Heinäkuu (1)
Helmikuu (1)
2022
Joulukuu (3)
Syyskuu (2)
Kesäkuu (3)
Toukokuu (3)
Maaliskuu (3)
Tammikuu (1)
2021
Joulukuu (3)
Marraskuu (2)
Toukokuu (3)
Helmikuu (1)
2020
Elokuu (1)
Toukokuu (1)
Huhtikuu (1)
Maaliskuu (1)
Helmikuu (1)
2019
Joulukuu (2)
Marraskuu (1)
Lokakuu (1)
Syyskuu (1)
Huhtikuu (3)
Helmikuu (3)
2018
Joulukuu (2)
Marraskuu (1)
Lokakuu (1)
Syyskuu (5)
Elokuu (1)
Kesäkuu (2)
Toukokuu (2)
Huhtikuu (1)
Maaliskuu (1)
2017
Joulukuu (3)
Toukokuu (2)
2016
Joulukuu (1)
Marraskuu (2)
Syyskuu (1)