Nagu eelmise postituse lõpus mainitud, sain ma kolmanda praktikanädala lõpus endale esimest korda ülesande, mis oli oma olemuselt midagi enamat kui pisidetailide muutmine või vigade parandamine. Ülesanne, mille sain, ei olnud iseenesest eriti mahukas ning peale ühte täitmise käigus saadud eksprompt koolitust ka keerukas, kuid osutus palju tülikamaks kui algselt plaanitud ning võttis aega terve nädala. Ülesande kirjeldus oli lihtne: rakenduses on kokku 7 vormi, kus on vaja valida näiteks tehingupartneriks mingisugune isik. Isiku otsimine käis tema koodi (isikukood, registrikood vms) järgi ning koodi kõrval kuvati valitud isiku nime, kuid taheti, et otsida saaks nii koodi kui nime järgi, kusjuures nime järgi saaks otsida vaid juriidilisi isikuid.

Ülesande sooritamiseks tuli kõigepealt välja vahetada kasutusel olev otsinguteenus - enne otsis rakenduse backend isikuid lokaalselt, kuid vahepeal ehitati eraldiseisev otsinguteenus, mis toetas isikute otsimist nii nime kui koodi järgi. Kõigepealt tekkis probleem otsinguteenuse tulemuste deserialiseerimisel - isiku interface'il puudus implementatsioon, mida deserialiseerimiseks vaja läheb. Pakkusin lahendusena välja uue implementatsiooni loomist ning andmete ümber map'imist (erinevatest allikatest tulnud andmete väljade nimetused ei olnud ühtlased), kuid minuga samas toas viibiv senior developer soovitas maja peal ringi uurida, kuidas teised selle probleemi lahendanud on. Peale paaritunnist uurimist (peale oma maja inimeste võeti ühendust isegi teiste firmadega, kes selle projektiga seotud on) selgus, et ma olin selle teenuse esimene reaalne kasutaja ning lõpuks läks kasutusse ikkagi minu välja pakutud lahendus.

Seejärel tuli luua vastav UI komponent ning muuta kohendada olemasolevaid vorme. Enam-vähem töötava lahenduse sain ma valmis juba järgmisel päeval, kuid seejärel sai ühest pisiprobleemist alguse täielik paketimajanduse põrgu: koodi järgi otsingu lahtril oli vaja, et valitud valiku ning soovituste puhul kuvatav tekst oleks erinev, vastavalt kood ja nimi. Selle jaoks oli juba eelmine arendaja kasutanud ühte property't, mis aga ei töötanud ning selgus, et seda lihtsalt ei eksisteerinud. Peale järjekordset maja peal ringi jooksmist jõudsin välja 3. korrusele Hansu juurde, kellega koos selgus, et yarn.lock fail oli ühe kasutusel olnud dependency "lukustanud" vale versiooni peale. Veelgi imelikum oli see, et antud property oli olemas varasemates versioonides ja ka hilisemates, aga just selles versioonis ei olnud. Uuendasime paketi õige versiooni peale, aga seda tehes lagunes kogu rakendus ära mingil täiesti kummalisel põhjusel, mille debugimine võttis aega veel ligi kaks tundi ning mille lõplikuks lahenduseks oli lihtsalt mitme paketi veel uuemale versioonile uuendamine.

Seejärel tekkis mul mitmeid erinevaid probleeme kahe tekstivälja sünkroonis hoidmisega ning mingi hetk leidsin end taas viis korrust altpoolt Hansu juurest, kes tegi mulle tunniajase Reduxi koolituse ning selgitas mulle, et minu kodukootud loogika eksisteerib juba paremal kujul kasutusel olevas teegis (redux-form). Antud ülesanne kummitab mind teatud mõttes ka peale valmimist. Mõned päevad hiljem avastasin, et pakett, mille uuendamine varasemalt kogu rakenduse ära lõhkus, oli end ise õige versiooni peale uuendanud ning seekord ei läinud katki mitte midagi. Nädal hiljem sain aga teada, et otsinguteenus, mis mul kasutusele kästi võtta, eemaldatakse lähiajal üldse kasutuselt.

Praktikaperioodi neljanda nädala lõpus teatati, et lähiajal on tulekul rakenduse prelive tarne, hiljuti vahetati välja kogu autentimise mehhanism, mis tekitas rakenduses suures koguses erinevaid vigu ja kolleeg, kes sellega tegeles, jõudis enne puhkusele minekut ära parandada vaid osa neist. Plaan, mis loodi, nägi ette, et rakendusesiseste vigade parandamisega tegelen mina ning rakendustevaheliste liidestustega tegeleb minu toas olev senior dev. Vigade parandamiseks anti mulle kaks nädalat ning erinevas raskus- ja suurusjärgus vigu, mis mulle ette anti, oli ligikaudu kümme. Nendest suutsin ma esimese nädala jooksul ära lahendada peaaegu kõik ning teise nädala alguses sain ma valmis ka ülejäänutega.

Viienda nädala alguses osalesin esimest korda koosolekul, kus tuli hinnata tehtud ning tehtava töö mahtu, et teatada kliendile projekti järgmise faasi aja- ja rahakulu. Koosolekult jäi mulje, et kolleegid, sealhulgas valdkonnajuht, on minu senise tööga vägagi rahul. Nädala lõpus teatati mulle, et ülejärgmise (7.) nädala alguses viiakse mind üle mingisuguse teise projekti peale, aga ma sain oma ülesannetega oodatust varem valmis, toimus üleminek juba 6. nädala teisipäeval ning vähemalt praeguse seisuga on minu roll selle projekti juures suurem kui eelmise.