{"id":230071,"date":"2022-11-17T10:05:00","date_gmt":"2022-11-17T07:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230071"},"modified":"2022-11-17T18:57:21","modified_gmt":"2022-11-17T15:57:21","slug":"olio-ohjelmointi-wordpressissae-analyysi-osa-2","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/olio-ohjelmointi-wordpressissae-analyysi-osa-2\/","title":{"rendered":"Olio-ohjelmointi WordPressiss\u00e4: analyysi, osa 2"},"content":{"rendered":"\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/olio-ohjelmointi-wordpressissae-analyysi-osa-1\/\" title=\"T\u00e4m\u00e4n sarjan ensimm\u00e4isess\u00e4 viestiss\u00e4\">T\u00e4m\u00e4n sarjan ensimm\u00e4isess\u00e4 viestiss\u00e4<\/a> puhuin kaikesta siit\u00e4, kuinka halusin k\u00e4sitell\u00e4 johdatusta olio-ohjelmointiin WordPressin yhteydess\u00e4.<\/p>\n<p>Olio-ohjelmointiin on hienoja resursseja, mutta ne voivat k\u00e4ytt\u00e4\u00e4 keksittyj\u00e4 esimerkkej\u00e4 tai ne voivat liikkua liian nopeasti niille, jotka vain haluavat aloittaa.<\/p>\n<p>Jotta n\u00e4in ei tapahdu, uskon, ett\u00e4 OOP:sta puhuminen WordPressiss\u00e4 ankkuroi meid\u00e4t vahvalle pohjalle ja k\u00e4yt\u00e4nn\u00f6n esimerkkien k\u00e4ytt\u00e4minen on aina parempi vaihtoehto kuin yleisten esimerkkien k\u00e4ytt\u00e4minen, jota on vaikea k\u00e4\u00e4nt\u00e4\u00e4 toimialueelle, jossa ty\u00f6skentelemme.<\/p>\n<p>Niille, jotka eiv\u00e4t ole <a href=\"https:\/\/tommcfarlin.com\/register\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">viel\u00e4 liittyneet<\/a> tai jotka eiv\u00e4t ole viel\u00e4 liittyneet, ensimm\u00e4inen viesti osuu seuraaviin aiheisiin:<\/p>\n<ul>\n<li>Olio-analyysi,<\/li>\n<li>Pakollisten kohteiden ja mukavien hankintojen m\u00e4\u00e4ritt\u00e4minen,<\/li>\n<li>Ja miksi se on vaikeaa?<\/li>\n<\/ul>\n<p>Ja sielt\u00e4 t\u00e4m\u00e4 postaus tulee.<\/p>\n<h2>Olio-ohjelmointi: Lis\u00e4\u00e4 analyysia<\/h2>\n<p>Tied\u00e4n: Mit\u00e4 tulee koodin kirjoittamiseen, ensimm\u00e4inen asia, jonka haluamme tehd\u00e4, on istua alas ja alkaa kirjoittaa koodia. Mik\u00e4 sen parempaa kuin saada jotain tapahtumaan ruudulla?<\/p>\n<p>Ja kun teet t\u00e4m\u00e4n itsellesi, se ei ole niin iso juttu, mutta kun kirjoitat koodia, se on:<\/p>\n<ul>\n<li>jota yll\u00e4pit\u00e4\u00e4 joukko ihmisi\u00e4,<\/li>\n<li>Myyt\u00e4v\u00e4n\u00e4,<\/li>\n<li>tai kaikki edell\u00e4 mainitut<\/li>\n<\/ul>\n<p>Se tekee eron. Koska hyv\u00e4 analyysi voi johtaa hyv\u00e4\u00e4n organisointiin, joka voi johtaa hyv\u00e4\u00e4n yll\u00e4pidett\u00e4vyyteen.<\/p>\n<p>Muuten mukulat jotain l\u00e4hetett\u00e4v\u00e4ksi, eik\u00e4 se skaalaudu hyvin tulevien versioiden kanssa. Ja t\u00e4m\u00e4 on asia, josta puhumme syv\u00e4llisesti koko sarjan ajan.<\/p>\n<p>Mutta mik\u00e4 on hyv\u00e4 tapa tiivist\u00e4\u00e4 hyv\u00e4n analyysin tekeminen kolmessa helpossa vaiheessa? T\u00e4m\u00e4 ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 ole luodinkest\u00e4v\u00e4 vastaus, mutta sit\u00e4 yrit\u00e4mme tehd\u00e4 aina, kun ty\u00f6skentelemme projekteissa:<\/p>\n<ol>\n<li>Varmista, ett\u00e4 koodi tekee mit\u00e4 asiakas haluaa,<\/li>\n<li>K\u00e4yt\u00e4 hyvi\u00e4 oliokeskeisi\u00e4 k\u00e4yt\u00e4nt\u00f6j\u00e4,<\/li>\n<li>Tavoittele yll\u00e4pidett\u00e4v\u00e4 muotoilu.<\/li>\n<\/ol>\n<p>Kaikki t\u00e4m\u00e4 kuulostaa teoriassa hyv\u00e4lt\u00e4, mutta ilman sukeltamista syvemm\u00e4lle jokaiseen, mist\u00e4 tied\u00e4mme, teemmek\u00f6 t\u00e4m\u00e4n oikein? Toisin sanoen t\u00e4\u00e4lt\u00e4 l\u00f6yd\u00e4mme usein kirjoja, resursseja ja muita apuohjelmia, jotka tekev\u00e4t paremmaksi olio-ohjelmoijaksi tulemisen vaikeaksi.<\/p>\n<p>Juuri t\u00e4t\u00e4 haluan v\u00e4ltt\u00e4\u00e4, joten aion kaivaa jokaiseen kohtaan hieman syvemm\u00e4lle.<\/p>\n<h3>1 Mit\u00e4 asiakas haluaa<\/h3>\n<p>T\u00e4m\u00e4 voi olla yksi koko projektin haastavimmista kohdista, koska me kehitt\u00e4jin\u00e4 puhumme eri kielt\u00e4 asiakkaan kanssa.<\/p>\n<p>He eiv\u00e4t ainoastaan \u200b\u200bk\u00e4yt\u00e4 usein terminologiaa, jota emme k\u00e4ytt\u00e4isi, vaan he usein ajattelevat, ett\u00e4 se, mit\u00e4 he haluavat n\u00e4yt\u00f6ll\u00e4, on paras tapa toimia. T\u00e4m\u00e4 kuulostaa todella alentuvalta ja v\u00e4\u00e4r\u00e4lt\u00e4 yritt\u00e4\u00e4 korjata niit\u00e4, eik\u00f6 niin?<\/p>\n<p>Tarkoitan, ett\u00e4 yrit\u00e4t kertoa jollekulle, jonka tied\u00e4t, mit\u00e4 haluat, ja h\u00e4n korjaa sinua. T\u00e4m\u00e4n huolellinen k\u00e4sittely voi saavuttaa suurta suhteellista tasapuolisuutta, mutta kest\u00e4\u00e4 jonkin aikaa &quot;kaivaamaan&quot;, mit\u00e4 he todella haluavat, verrattuna siihen, mit\u00e4 he sanovat haluavansa.<\/p>\n<p>Ja aiomme sukeltaa t\u00e4h\u00e4n enemm\u00e4n tulevassa postauksessa.<\/p>\n<h3>2 Oliol\u00e4ht\u00f6ist\u00e4 k\u00e4yt\u00e4nt\u00f6\u00e4<\/h3>\n<p>Ilmeisesti t\u00e4m\u00e4 johtuu siit\u00e4, ett\u00e4 tied\u00e4n, mitk\u00e4 hyv\u00e4t oliok\u00e4yt\u00e4nn\u00f6t ovat, ja aion kattaa sen.<\/p>\n<p>Monet ihmiset sanovat asioita k\u00e4ytt\u00e4m\u00e4ll\u00e4 esimerkiksi seuraavia asioita:<\/p>\n<ul>\n<li>SOLID-periaatteet,<\/li>\n<li>perint\u00f6,<\/li>\n<li>DRY koodi,<\/li>\n<li>riippuvuusruiske,<\/li>\n<li>ja niin edelleen<\/li>\n<\/ul>\n<p>Ovat kaikki t\u00e4rkeit\u00e4 hyvien olio-k\u00e4yt\u00e4nt\u00f6jen noudattamiselle.<\/p>\n<p>Ja ehk\u00e4 t\u00e4m\u00e4 ei ole suosittu sanonta, mutta olen sit\u00e4 mielt\u00e4, ett\u00e4 kaikkien asioiden jatkuva k\u00e4ytt\u00e4minen ei ole aina hyv\u00e4 idea. Eli et todellakaan halua koodin toistuvan koko koodikannassasi, mutta onko sinulla oltava perint\u00f6\u00e4 koodikannassasi?<\/p>\n<p>Ei.<\/p>\n<p>On aikoja, jolloin periaatteita tulee soveltaa ja jolloin ne voidaan j\u00e4tt\u00e4\u00e4 huomiotta. Mutta niiden tunteminen, milloin niit\u00e4 k\u00e4ytet\u00e4\u00e4n parhaiten ja milloin niit\u00e4 tulee k\u00e4ytt\u00e4\u00e4, on avainasemassa mainittujen k\u00e4yt\u00e4nt\u00f6jen oikean k\u00e4yt\u00f6n kannalta.<\/p>\n<h3>3 Yll\u00e4pidett\u00e4v\u00e4 muotoilu<\/h3>\n<p>Yksinkertaisesti sanottuna, mallien ja periaatteiden soveltaminen ohjelmistoosi sit\u00e4 kirjoitettaessa tekee siit\u00e4 paljon helpompaa k\u00e4ytt\u00e4\u00e4 ja yll\u00e4pit\u00e4\u00e4 tulevaisuudessa.<\/p>\n<p>Mutta j\u00e4lleen kerran, t\u00e4m\u00e4 riippuu:<\/p>\n<ol>\n<li>ymm\u00e4rt\u00e4\u00e4 t\u00e4ysin mit\u00e4 asiakas haluaa,<\/li>\n<li>tiet\u00e4\u00e4, mit\u00e4 k\u00e4yt\u00e4nt\u00f6j\u00e4 on olemassa, milloin niit\u00e4 tulee soveltaa ja milloin niit\u00e4 tulee v\u00e4ltt\u00e4\u00e4.<\/li>\n<\/ol>\n<p>Ja tehd\u00e4ksemme kaiken yll\u00e4 olevan, meid\u00e4n on tarkasteltava jokaista kohtaa sen kontekstissa ennen kuin otamme askeleen taaksep\u00e4in katsoaksemme isompaa kuvaa.<\/p>\n<h2>Mit\u00e4 Asiakas haluaa?<\/h2>\n<p>On selv\u00e4\u00e4, ett\u00e4 edell\u00e4 mainittujen kolmen kohdan osalta on paljon teht\u00e4v\u00e4\u00e4. Mutta jos haluat kirjoittaa hyvi\u00e4, yll\u00e4pidett\u00e4vi\u00e4 ohjelmistoja WordPress-taloudessa, on t\u00e4rke\u00e4\u00e4 ymm\u00e4rt\u00e4\u00e4, kuinka t\u00e4m\u00e4 kaikki sopii yhteen.<\/p>\n<p>Joten sen sijaan, ett\u00e4 hypp\u00e4\u00e4mme eteenp\u00e4in koodin kirjoittamiseen tai projektin parissa ty\u00f6skentelemiseen, seuraavaksi tutkimme, kuinka ottaa asiakkaan haluama ja sitten tulkita se vaatimuksiksi, joiden avulla voimme luoda ty\u00f6selostus.<\/p>\n<p>T\u00e4ll\u00e4 tavalla meill\u00e4 on lopulta ty\u00f6asiakirja siit\u00e4, mit\u00e4 asiakas haluaa ja mit\u00e4 aiomme rakentaa, ja olemme kaikki samalla sivulla.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Olioohjatusta ohjelmoinnista puhuminen WordPressiss\u00e4 ankkuroi meid\u00e4t vahvalle pohjalle ja k\u00e4yt\u00e4nn\u00f6n esimerkkien k\u00e4ytt\u00e4minen on aina parempia kuin geneeriset tuotteet.<\/p>\n","protected":false},"author":1,"featured_media":165340,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895],"tags":[1166],"class_list":["post-230071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=230071"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/230071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/165340"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=230071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=230071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=230071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}