{"id":95998,"date":"2025-11-21T09:34:12","date_gmt":"2025-11-21T09:34:12","guid":{"rendered":"https:\/\/www.europesays.com\/fi\/95998\/"},"modified":"2025-11-21T09:34:12","modified_gmt":"2025-11-21T09:34:12","slug":"paakirjoitus-kotikoodari-kohtaa-tekoalyn","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/fi\/95998\/","title":{"rendered":"P\u00e4\u00e4kirjoitus: Kotikoodari kohtaa teko\u00e4lyn"},"content":{"rendered":"<p><a href=\"https:\/\/www.iltalehti.fi\/kirjoittajat\/Pasi Andrejeff\" class=\"article-description-pov-author\" rel=\"nofollow noopener\" target=\"_blank\"><\/p>\n<p>Pasi Andrejeff<\/p>\n<p><img decoding=\"async\" class=\"author-image\" src=\"https:\/\/www.europesays.com\/fi\/wp-content\/uploads\/2025\/11\/be0dff0ffa5d9e792649ad36fedc1de640517db2f358e25a0cbbd8aaf3884c11.png\" alt=\"\"\/><\/a><\/p>\n<p>Olisipa teko\u00e4ly ollut olemassa jo viisi vuotta sitten, toivoo ohjelmointihommiin joutunut toimitusp\u00e4\u00e4llikk\u00f6 Pasi Andrejeff.<\/p>\n<p>T\u00e4n\u00e4\u00e4n klo 10:30<\/p>\n<p class=\"paragraph\">Tein er\u00e4\u00e4seen verkkokauppaan yli kymmenen vuotta sitten pienen ohjelmointiprojektin auttamaan tuotteiden varastonhallinnassa. Silloin k\u00e4yt\u00f6ss\u00e4 oli ohjelmointikielen\u00e4 php ja vanhan koulukunnan tekniikka, jossa ohjelma oli suoraan yhteydess\u00e4 mysql-tietokantaan ilman v\u00e4likerroksia. Toimivaa, mutta brutaalia. Hieman kyseenalaista my\u00f6s tietoturvan kannalta, sill\u00e4 muutama salasana saattoi olla kovakoodattuna koodissa.<\/p>\n<p class=\"paragraph\">Viisi vuotta sitten sain pyynn\u00f6n p\u00e4ivitt\u00e4\u00e4 tuon ohjelman, kun verkkokauppaohjelmisto oli vaihtumassa. Eih\u00e4n se mik\u00e4\u00e4n p\u00e4ivitys ollut, vaan k\u00e4yt\u00e4nn\u00f6ss\u00e4 kokonaan uuden tekeminen. Tiesin, mill\u00e4 \u201dquick and dirty\u201d-tekniikalla olin php-ohjelmani aikanaan v\u00e4s\u00e4nnyt, joten projekti olisi melko aikaa viev\u00e4. Vanhasta ei j\u00e4isi mit\u00e4\u00e4n hy\u00f6dyllist\u00e4 j\u00e4ljelle.<\/p>\n<p class=\"paragraph\">Kysyin kollegalta, miten t\u00e4llainen ohjelma pit\u00e4isi nyky\u00e4\u00e4n tehd\u00e4. Vastaus tuli kuin uudesta maailmasta: erikseen taustaj\u00e4rjestelm\u00e4 (back) ja k\u00e4ytt\u00f6liittym\u00e4 (front), niiden v\u00e4liin rajapinta eli api, ja k\u00e4ytt\u00f6liittym\u00e4\u00e4n joukko uudelleenk\u00e4ytett\u00e4vi\u00e4 React-komponentteja. Melkein kaikki oli minulle uutta.<\/p>\n<p class=\"paragraph\">Tuon kes\u00e4n aikana opiskelin uutta tapaa koodata. Aloin tajuta, miksi t\u00e4llaisessa arkkitehtuurissa on ideaa. Tein ensimm\u00e4iset omat api-rajapintani ja k\u00e4ytt\u00f6liittym\u00e4n Reactilla. Aluksi Reactin ajatusmaailma ei avautunut, mutta onneksi hyvi\u00e4 esimerkkej\u00e4 ja ohjeita l\u00f6ytyi paljon. Hienous alkoi v\u00e4hitellen selvit\u00e4, into kasvoi ja sain aikaan version 0.1 nykyaikaisella tekniikalla rakennetusta ohjelmasta.<\/p>\n<p class=\"paragraph\">Siirryt\u00e4\u00e4n nyt varsinaiseen asiaan.<\/p>\n<p class=\"paragraph\">T\u00e4n\u00e4 vuonna sain pyynn\u00f6n lis\u00e4t\u00e4 ohjelmaan uusia ominaisuuksia. Olen lyk\u00e4nnyt asiaa, sill\u00e4 koko projekti ei ole en\u00e4\u00e4 kovin tuoreessa muistissa, ja dokumentointi on\u2026 no, sit\u00e4 kuuluisaa \u201dcode is self-documenting\u201d-tasoa.<\/p>\n<p class=\"paragraph\">Sitten muistin teko\u00e4lyn. Se muutti nyt kaiken. Olisipa teko\u00e4ly ollut olemassa jo viisi vuotta sitten!<\/p>\n<p class=\"citation\">Teko\u00e4ly ymm\u00e4rsi viidess\u00e4 sekunnissa vanhan ohjelmani rakenteen ja ehdotti j\u00e4rkevi\u00e4 parannuksia ja tapoja tehd\u00e4 muutokset.<\/p>\n<p class=\"paragraph\">Annoin olemassa olevan koodin teko\u00e4lylle ja kysyin, miten teht\u00e4isiin muutos A tai muutos B. Vastaukset olivat niin kattavia, ett\u00e4 jouduin pyyt\u00e4m\u00e4\u00e4n AI:ta etenem\u00e4\u00e4n pala kerrallaan, jotta pysyin itse k\u00e4rryill\u00e4. Teko\u00e4ly ymm\u00e4rsi viidess\u00e4 sekunnissa vanhan ohjelmani rakenteen ja ehdotti j\u00e4rkevi\u00e4 parannuksia ja tapoja tehd\u00e4 muutokset. Ymm\u00e4rsin idean heti.<\/p>\n<p class=\"paragraph\">Teko\u00e4ly s\u00e4\u00e4sti minulta v\u00e4hint\u00e4\u00e4n parin p\u00e4iv\u00e4n ty\u00f6t. Ilman sit\u00e4 olisin viett\u00e4nyt useamman viikonlopun ratkaisua googlaillen. Ajans\u00e4\u00e4st\u00f6 oli huima \u2013 tai toisin p\u00e4in ajateltuna: sain enemm\u00e4n aikaan samalla vaivalla.<\/p>\n<p class=\"paragraph\">T\u00e4m\u00e4 oli minulle konkreettinen tosiel\u00e4m\u00e4n esimerkki teko\u00e4lyn hy\u00f6dyist\u00e4. Niist\u00e4 on puhuttu paljon, mutta nyt osui omaan napaan. Lujaa.<\/p>\n<p class=\"paragraph\">Kotikoodarin el\u00e4m\u00e4 on todella muuttunut. Teko\u00e4ly ei tee meist\u00e4 kaikista koodareita, mutta se tekee meist\u00e4 parempia sellaisia, jos meill\u00e4 on perustaidot.<\/p>\n<p class=\"paragraph\">Bonus: kun alkuun p\u00e4\u00e4stiin, pyysin teko\u00e4lylt\u00e4 ehdotuksia my\u00f6s vaikeampien toimintojen toteutukseen. Arvasit oikein \u2013 viidess\u00e4 minuutissa p\u00e4\u00e4t\u00f6s oli tehty: \u201dTehd\u00e4\u00e4n n\u00e4m\u00e4kin nyt samalla.\u201d Yksin en olisi osannut.<\/p>\n","protected":false},"excerpt":{"rendered":"Pasi Andrejeff Olisipa teko\u00e4ly ollut olemassa jo viisi vuotta sitten, toivoo ohjelmointihommiin joutunut toimitusp\u00e4\u00e4llikk\u00f6 Pasi Andrejeff. T\u00e4n\u00e4\u00e4n klo&hellip;\n","protected":false},"author":2,"featured_media":95999,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84],"tags":[35,9411,33,31,30,537,536,32,91,92,487,149,2466],"class_list":{"0":"post-95998","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-teknologia","8":"tag-24h","9":"tag-digi","10":"tag-fi","11":"tag-finland","12":"tag-finnish","13":"tag-informaatioteknologia-sektori","14":"tag-ohjelmistot","15":"tag-suomi","16":"tag-technology","17":"tag-teknologia","18":"tag-teknologia-yleista","19":"tag-tietojenkasittely-ja-informaatioteknologia","20":"tag-tietokoneet"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@fi\/115587007560852514","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/posts\/95998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/comments?post=95998"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/posts\/95998\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/media\/95999"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/media?parent=95998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/categories?post=95998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/fi\/wp-json\/wp\/v2\/tags?post=95998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}