Armini blogi - tammmatTLU/suvepraktika_tiim2 GitHub Wiki

Esmaspäev - 09.06.2025

Ülevaade: Täna oli tarkvaraarenduse projekti arenduse esimene päev. Hommikul kohale tulles on motivatsiooni laes, kuid päeva jooksul oli kerge langus. Isiklikult tunnen, et projekti arenduse osa on kindlasti suur väljakutsumus, sest siiani pole kogemust, kuidas üles seada sellist backendi, mida meil just vaja on ja PHP kogemus on täiesti puudulik. Kindlasti oleks võinud semestri jooksul ennast kurssi viia, kuid ei tahtnud teisi aineid unarusse jätta ja ei teadnud, et meie backEnd tuleb PHP-s. Enne selle teada saamist olin päris lootusrikas, et saab kasutada kas JAVA või C#. Õnneks on meil abiks Peter, kellelt on võimalik selle kahe nädala jooksul nii mõndagi õppida.

Tänane arendus: Täna sain tänu Jaagup-ile ja Peter-ile rohkem aru meie arenduse realiseerimise poolest. Täna ei olnud minu kõige produktiivsem päev, aega/ressursse läks rohkem arusaamise peale, et oleksin võimeline järgmistel päevadel olema väärtuslik tiimikaaslane enda meeskonnale. Loodan, et minust oli ka juba täna aruteludes kasu, kuid kindlasti tahaks järgmistel päevadel rohkem panustada. Päeva lõpuks saime meeskonnaga kirja SCRUM-i kasutades jirat ja anmdebaasi muudatused sisse viia.

Edasine: Homme on plaanis alustada individuaalsete ülesannetega. Samuti homne eesmärk ( vähemalt isiklik ) on docker selgeks saada ja kasutusele võtta.

Teisipäev - 10.06.2025

Tänane arendus: Tänane päev oli üpris huvitav. Päeva esimesel poolel, oli mul suur rõhk symfony framework dokumentatsiooni lugemisel ja andmebaasi tegemisel. Kuna meil on ka greeny serveris MariaDB andmebaas, siis otsustasin alguses proovida sellega ühendada, kuid see läks suht kiiresti luhta ( loodan, et Tanel Toova käest vastu näppe ei saa greeny-s ukerdamise eest :) ). Peale seda sai siht selgeks ja sai andmebaas püsti pandud postgresql-is. Symfony dokumentatsiooni lugedes, leidus seal ka andmebaasi jaoks eraldi ORM, mille abil sai läbi terminali üpris lihtsalt tabelid, atribuudid ja relation-id luua. Pärastlõuna läks üpriski aegaselt. Sain meie backEnd-ile lisatud API dokumentatsioon, et lähitulevikus oleks kergem hakata frontEnd-i siduma backEnd-i ja andmebaasiga. Lisaks vaatasin ka API otspunktide tegemist symfony dokumentatsioonist, mis suures pildis on meil YAML abil püsti pandud. Kuna sellega tegeles täna Martin, siis pealelõunat selgitas ta ka mulle seda, kuidas dokumentatsioon sai realiseeritud.
Täna ei jõudnud otseselt palju ära tehtud, kuid usun ( ja tunnen ), et vaatamata sellele, oli tänane päev siiski produktiive kogu tiimi poolt. Kindlasti sai palju asju kinnitatud tänu uute asjade õppimisele ning paljud komponendid arenduse juures hakkavad vaikselt kokku loksuma.

Edasine: Homme on plaanis Docker tööle saada, et saaksime kõik ühele järjele. Samuti vaja andmebaasi luua testandmed, arvatavasti kasutame selle jaoks seeder-it. Veel oleks vaja teha juurde API otspunkte, kuna hetkel on meil ainult GET-id.

Kolmapäev - 11.06.2025

Tänane arendus: Terve tänane päev läks andmebaasi testandmete panemise jaoks. Selleks otsustasime kasutada seederit millega siis mina tegelesin. Esimesed 2 tundi olid üpris kiired ja tegusad, kuid siis hakkasid tulema näpuvigadest errorid. Nende errorite parandamine läks välja päeva lõpuni, põhilised errorid olid "case mismatch" ja reference errorid, mida siis pidi entity-tes ja seeder failides parandama. Päeva lõpu poole, aitas mind 90% hädast välja AI. Siiani on läinud hästi, et iga päev olen jõudnud ära teha selle mida ette võtsin ja midagi pole pidanud homse varna jääma.

Edasine: Homme on plaanis teha API otspunktid, et saaks hakata andmeid frontEndi saatma. Kindlasti peab külma närviga ka üle vaatama andmed mis andmebaasi läksid, sest peale seedimist oli serotoniin laes ja kõik tundus õige, isegi kui tegelt ei olnud :). Lisaks on vaja API otspunktide dokumentatsioonile seletused, et seda oleks lihtsam lugema.

Neljapäev - 12.06.2025

(Eilne blogi oli mul ära kadunud, arvatavasti ei salvestanud see ära (loe: Armin ei salvestanud seda väsinud peaga ära). Selle pärast ka kolmapäevane blogi nii kidur, sest kirjutasin seda päev hiljem.

Tänane arendus: Kuna eile sai andmebaas testandmeid täis, siis täna tuli välja, et ikkagist läks midagi nässu (Nii palju siis sellest, et midagi ei jää homse varna). Symfony laseb teha Tabeleid ja atribuute terminalis ja genereerib ise entity-d ja repositooriumid, ning nende sisse ka kõik vajaminevad kirjed ja ühendused, kuid mina (kilplane) lisasin atribuute tehes juurde ka ID (tegin kilplase tööd), mis tekitas sellise olukorra, et andmebaasi läks nt: ruum_id_id :( Sellest tulenevalt, läks ka tänane päev puhtalt andmebaasi purge-imise (lihstalt entityd ja repository-d kustutada ja uuesti teha) peale ja uuesti üles ehitamise peale, kus pidin ka andmebaasi paari tabelit muutma, ning seoses sellega ka seeder faile. Põhiline mure, mis oli ka eile, et symfony ei lisanud relationshipe tehes entity-le suurt tähte, mis tekitas jällegist "case mismatch" error-i. Kuna seekord oli meie projekt ka üleval dockeris, siis mul tekitas päris palju segadust, kus ja kuidas ma saan nüüd enda plähmerdise korda teha. Kuna dockeri failidesse sain andmebaasi muudatusi teha siis, kui backend töötas, Kuid kui läksin dockeri failidesse terminalis, siis otsustas see kokku joosta :). Lõpuks sain aru, et pean docker-compose failist ära võtma need commandid mida ma tahtsin eraldi jooksutada.
Ja üldse selleks et ma saaksin hakata andmebaasi uuesti üles seadma, pidin minema varasema commiti peale, sest edasistes oli jälle midagi juthunud. Kuid ikkagist, täna läks selle peale kõvasti vähem aega kui eile, sest midagi juba oli teada, ja põhivigade otsimine oli kergem.
Lisaks sain päeva lõpuks rohkem aru kuidas API otspunkte hakata tegema, alguses näitas tühjasid bracketeid, selgus, et pean array_map kasutama, kui kasutan symfony ORM (ise sql lauset kirjutades seda probleemi pole).

Edasine: NÜÜD siis homme tahaks hakata tegelema API dokumentatsiooni ja otspunktidega, sest siiani on tunne, et olen natukene meie tiimi frontEndi alt vedanud enda plähmerdistega. Põhipingutus on nendel otspunktidel mida saaks ka juba homme kasutada ja läbi proovida. Kindlasti peab ka üle vaatama tabelite vahel olevad seoses ( sest 3 on kohtu seadus :) )

Õhtu: Kuna veits jäi kripeldama, et ei ole jõudnud meie forontEndile veel mingeid korralikke otspunkte luua, siis täna õhta ma vaatasin juba meie andmebaasile ja olemasolevatele otspunktidele kriitiliselt peale ( muidugi veits väsinud peaga, aga ikkagist selgema pilguga kui peale 4 tundi debuggimist ). Tegin juurde otspunktid seadmete leidmiseks ja ühes kindlas ruumis olevate seadmete leidmiseks, et homme saaks alustada nagu hüppelaualt :)

Reede - 13.06.2025

Tänane arendus: Täna siis sain jälle andmeid vaadatud. Korrastasin seedimise faili, et frontEndile oleks algselt redux state salvestatud õigel kujul, suvaliste andmetega. Samuti hakkasin API otspuntkide dokumendatsiooni kirjutama, et iga otspunkti juures oleks olemas miks see on tehtud ja mida sealt kätte saab. Tulevikus kui tulevad POST otspunktid, siis peab meeles hoidma, et dokumentatsiooni kindlasti saaks kirja ka andmekujud mida saatma peab.
Seoses kooli lõpetamisega, pidin täna kahjuks arenduse juurest ära minema 15:00.

Esimene nädal: Esimene nädal oli minu jaoks kuidagi aeglane. Ei ole selline tunne, et ma suutsin panustada piisavalt meie tööse, sest suht tihit sattus midagi üllatavat ette, millest kohe aru ei saanud ja pidi otsima parandusi. Aegajalt tekkis ka olukord, kus nt controllerite tegema hakates, sain aru, et keegi juba tegeleb nendega ja tühja topelt tööd ei tahaks teha. Loodan järgmine nädal rohkem ära teha.

Esmaspäev - 16.06.2025

Tänane arendus: Täna jätkasin error handling tegemistega ja dukumendatsiooni kirjutamisega. Hetke seisuga jäi nii, et dokumentatsioon on seni tehtud API otspunktidele tehtud, kuid need kindlasti vajaksid täiendamist. Juurde peaks lisama POST päringutele näidised. Samuti lisasin täna 3 otspunkti, 2 GET ja 1 POST. Kuna siiani post päringuid php ja symfony-it kasutades, ma ei olnud teinud, siis selle õppimine/vaatamine võttis veidi aega. Lühidalt, oli vaja frontEndile tagastada õige reduxState, mis omakorda enne seeditd. Seedimise failides pidin jälle paar pisikest muudatust tegema, sest reduxState objekt oli for loopist väljas, ja tegi kõik reduxState-id ühe id-ga. Samuti lisasin anmdebaasi reduxSpan-i mida ka vaja frontEndile tagastada. Selleka sai praegu tehtud tavaline GET päring. Andmebaasi ei lähe reduxSpan kirjedesse midagi, see jääb hetkel nii, et frontEnd-st oleks lihstalt võimalik salvestada.
Uuel nädalal enesetunne hea ja on plaan paljugi korda saata, et saaksime kõik koos võiduka lõpuni vastu pidada. Täna andist tunda pidev mõttetöö ja ennelõunat oli aju juba täitsa sült ja ei osanud üldse midagi edasi teha. Pealelõunat oli täis kõhuga juba parem tunne ja sai jätkata tavapäraselt. Kuid kahjuks pealelõunat väsisin natukene kiiremini ära kui enne. Homme üritan teha 3-5min vahesid, kus sirutan jalga ja hingan korraks värsket õhku, kui tunnen, et aju hakkab kokku jooksma.

Edasine: Ütlen ausalt hetkel on edasine suht hägune, pean otspunktide kirjutamise ja loogikaga tegelema. Homme uurin ka jirat ja küsin meeskonnalt, et kust hakata edasist lahti arutama, sest mul endal kerge block praegu ees.

Teisipäev - 17.06.2025

Tänanae arendus: Hommikul vaatasin scriptide tegemist, et saaksime teha testid, kas peale nupule vajutamist saab frontEnd õige tulemuse. Jõudsin ennelõunat valmis teha algse skripti mis suhtles frontendiga aga suur loogikat seal taga ei olnud.
Pärast lõunat sai korda tehtud reduxSpan salvestamine, kus alguses ei saanud backEnd õigesti kätte frontEndist tulevaid andmeid ja ei parsinud neid õigesti. Pärastlõunat sai tegeletud nuppude salvestamisega, mida tegime Martiniga kahekesti. Nuppude salvestamise loogiga tegime nii, et kui kasutaja salvestab nuppude asukohad ekraanil, siis backEnd kontrollib millised on uued nupub, milliste nuppude asukohad muutusid ja millised nupud on nüüd kadunud ekraanilt ning tegeleb vastavalt. Selleks kasutab backend nuppude küljes olevat array-d "reduxState". Võrdlemise tegime nuppude id järgi ja nuppude sisu ( reduxStore ) järgi.
Täna jäime natukene kauemaks peale 16:00, sest olid väikesed jälle väikesed probleemid frontEndist tulnud andmete parsimisega, kuna kasutasime testimiseks enda andmete kuju ja ei vaadanud mis reaalselt frontEndist tuleb.

Kolmapäev - 18.06.2025

Tänanae arendus: Hommikul sai üle vaadatud nuppude salvestamine. Alguses oli võimalik salvestada andmebaasi autoingrementeeritud id järgi, kuid meil oli vajadus muuta see selliseks, et saame id ise luua. Sellega jooksin ka korra puusse, sest ei kontrollinud üle, kui suur id saab olla ( alguses oli lihstalt int ) ning pärast kui mul endal testides tekkis sellega probleeme, siis muutsin selle bigint peale. Samuti sai ka enne lõunat test-skript valmis, millel oli tavaline tulete sisse lülitamise loogika ja ühendus sai POST-iga. FrontEnd saadab buttonTemplateId, mille järgi on võimalik vaadata backendist selle nupu commandi, mida see tegema peaks. Selle järgi tulede skript teeb vastava toimingu, kas tuled sisse või välja (tundmatu command on ka võimalik). Samuti sai jälle ülevaadatud ja õpitud natukene bash skripte, nt kuidas saata argumente ja kuidas neid vastu võtta skripti sees.

Pealelõunat sai hakata välja mõtlema sellist skripti, mis simuleeriks ootamist või aega võtvat tegevust, et ei oleks uuesti võimalik nuppu seni kasutada. Otsustasin selle jaoks kasutada streaming output-i. Tagasi vaadates oleks võinud teha ka pollimise või webSocket-i, kuid läks seekord nii. See võttis omajagu aega ja AI aitas mind päris palju, nii õpetamisel, sest bash skriptid ja php endiselt natukene uus, kui ka vigade leidmisel.

Edasine arendus: Homme on plaanis vaadata üle skriptid ja ka meeskonnale tutvustada lähemalt. Samuti vaadata üle testimise dokumendid. Pealelõuna tahaks suuremas osas panustada reedeseks ettevalmistuseks.
Siiani minu arust üks produktiivsemaid päevi minu poolt, sest ei olnud eelmiste päevade pahna vaja väga palju korda teha. Tunne hea, kuid veidi kardan, et nüüd, alles arenduse lõpus, hakkan vaikselt hoogu sisse saama. Kindlasti järgmisteks töödeks pean kõrvataha panema, et peab algusest peale ikka rohkem olema motiveeritud, sest lõpu poole tehtud töö nägemine on ikka päris hea.
Siiani olen üritanud peale päevast arendust kodus arvutis mitte olla, rohkem värskes õhus olla ja arvuti võtan kätte ainult blogi kirjutamiseks. Seni tundub, et see on päris tõhus olnud. Päeval tundub palju rohkem aega olevat, rohkem saab tehtud ja otseselt järgmise päeva arendust ei sega, kui ikka eelmine õhtu natukene mõtled selle peale. Tänu sellele olen iga päev läinud värske peaga kooli ja arendusse sukeldunud.

Neljapäev ja reflekteeriv kokkuvõte - 19.06.2025

Tänane ja reflektsioon: Eks tänane päev läks ootamatult kiirelt ja pikale. Ma ei saanud täna minna õe lõpetamisele ja sõbrale lennujaama vastu, kes austraaliast külla tuli, sest oleksin ennast liiga halvasti tundnud, et jätan meeskonna viimasel ja raskel päeval üksinda. Sain aru, et olen need 2 nädalat omajagu backEnd probleemidega tegelenud ja ütlen ausalt tagasi vaadates ei suuda enda arust välja tuua midagi väga märkimisväärset, mis oleksin korda saatnud. Ainuke asi, mida saan märkimisväärse alla paigutada, on nuppude reduxStore salvestamine, nende uuendamine ja kustutamine andmebaasis.
Kahjuks ei jõudnud ka tegeleda testimisega. Plaanis oli küll sisselogimine, nuppudele vajutused ja teised korduvad tegevused automaattestidega ära kontrollida peale igat muudatust ehk teha regressioontestimine. Hetke seisuga toimus kogu testimine manuaalselt. Kardan, et ma kipun unustama, et mul on ka toetav meeskond ning seetõttu haaran ka kõik tegemata asjad enda kanda. Kui nii mõelda, siis tegelikult oleks backEndi meeskonnasisest koostööd ja töövoogu saanud analüüsida, siis oleks suure tõenäosusega hiljemalt esimese nädala lõpus saanud maha istuda ja asjad läbi arutada. Eks ma pean ka sellest meeskonnaga rääkima. Võimalik, et olen olukorras, kus ainult mulle endale on jäänud selline kasutu tunne, sest 60% oma arendamise ajast lahendasin enda poolt tekitatud probleeme. Eks Github repositooriumis on ka näha, et TypeScript-i on 53% ja php-d on 35%. Tänu sellele ei ole minu jaoks projekti lõpus kõige saavutusrikkam tunne, sest igapäevased eesmärgid enda jaoks, ei saanud täidetud. Kuid olen positiivne, ning proovin õppida kõikidest nendest kogemustest ja siit saab ainult paremini edasi minna.
Olen enda meeskonna üle uhke, et vedasime kaks nädalat ennast siia kohale ja saime enam-vähem töötava rakenduse valmis. Iseendale oskaksin öelda vaid seda, et ei tohi pead norgu lasta ja peab edasi suruma.
Kindlasti õppisin selle praktika jooksul Git-i väga asjalikult kasutama. Enne tundus küll, et Git on lihtsalt vinge versioonihalduse lahendus. Kuid sealt saab ka päeva lõpus ja reflekteerides nii mõndagi kasulikku välja lugeda.
Sain aru iga üksikisiku tähtsusest meeskonnas, sest üksinda kahe nädalaga sellise asjaga poleks hakkama saanud. Iga väike panus loob lõpuks tervikliku pildi ja järsku ongi töötav asi koos.
Eks ma õppisin ka iseennast tundma, kui palju ma reaalselt suudan päevas arvuti taga olla ja koodi vaadata, enne kui seal ekraanil olev kood kõik üheks sulandub. Sain aru, et olla produktiivne, on vaja ka vahepeal puhata ja mõtteid eemale saada mingist projektist või tegevusest, et pärast värksemate mõtetega ja puhanud peaga peale lennata.
Muidugi tänasel kohtumisel kliendiga jõudis kohale, et need scriptid, mis ma tegin, ongi nüüd puhtalt demomise jaoks ja nende alla aja panemine oli kerge viga. Reaalsuses kogu see command, mida käivitatakse, saaks lihstalt exec() käsuga käivitada.

Soovitused: Plaan on vaja hästi läbimõelda. Kasuks ei tule liigne muretsemine.

⚠️ **GitHub.com Fallback** ⚠️