{"id":231180,"date":"2022-12-14T17:41:00","date_gmt":"2022-12-14T14:41:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231180"},"modified":"2022-12-07T11:35:02","modified_gmt":"2022-12-07T08:35:02","slug":"yksinkertaisesti-wordpress-pohjaisen-koodin-muokkaaminen-uudelleen","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/yksinkertaisesti-wordpress-pohjaisen-koodin-muokkaaminen-uudelleen\/","title":{"rendered":"Yksinkertaisesti WordPress-pohjaisen koodin muokkaaminen uudelleen"},"content":{"rendered":"\n<p>Vuonna 2011 luin paljon vanhan koodin, koodin laadun ja uudelleenmuodostuksen parissa ty\u00f6skentelemisest\u00e4.<\/p>\n<p><strong><a href=\"https:\/\/martinfowler.com\/bliki\/OpportunisticRefactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Martin Fowlerin<\/a><\/strong> (joka kirjaimellisesti <strong><a href=\"https:\/\/martinfowler.com\/books\/refactoring.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kirjoitti kirjan<\/a><\/strong> refaktoroinnista) lainaus, joka johtuu <a href=\"https:\/\/twitter.com\/unclebobmartin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bob<\/a> -sed\u00e4st\u00e4, on j\u00e4\u00e4nyt minuun \u2013 ja olen varma, ett\u00e4 monet, monet ohjelmoijat \u2013 siit\u00e4 l\u00e4htien:<\/p>\n<blockquote>\n<p>J\u00e4t\u00e4 koodi aina paremmassa kunnossa kuin l\u00f6ysit sen<\/p>\n<\/blockquote>\n<p>Asia t\u00e4ss\u00e4 nimenomaisessa ajatuksessa on se, ett\u00e4 mielest\u00e4ni se saattaa kuulostaa hieman idealistisemmalta, kunnes alat todella yritt\u00e4\u00e4 harjoittaa sit\u00e4 kaikessa mit\u00e4 teet.<\/p>\n<p>Eli jos otat sen nimellisarvolla, se kuulostaa silt\u00e4, \u200b\u200bett\u00e4 milloin tahansa sinun t\u00e4ytyy ty\u00f6skennell\u00e4 koodikannan parissa, sinun on j\u00e4tett\u00e4v\u00e4 koko koodikanta paremmaksi kuin silloin, kun l\u00f6ysit sen. Mutta mit\u00e4 enemm\u00e4n olen yritt\u00e4nyt soveltaa t\u00e4t\u00e4 s\u00e4\u00e4nt\u00f6\u00e4 p\u00e4ivitt\u00e4isess\u00e4 ty\u00f6ss\u00e4ni, sit\u00e4 k\u00e4yt\u00e4nn\u00f6llisemp\u00e4\u00e4, puhtaampaa ja yll\u00e4pidett\u00e4v\u00e4mp\u00e4\u00e4 WordPress-kohtainen koodi on tullut.<\/p>\n<p>Joten mit\u00e4 tulee WordPress-pohjaisen koodin muokkaamiseen, milt\u00e4 se n\u00e4ytt\u00e4\u00e4?<\/p>\n<p>T\u00e4st\u00e4 ei tule pitk\u00e4 postaus. Sen sijaan aion vain jakaa muutaman luettelokohdan, joita noudatan, kun k\u00e4sittelen koodia, jonka olen aiemmin kirjoittanut, jonka olen kohdannut muilta tai joka on per\u00e4isin koodikannasta, jota olen ty\u00f6skennellyt muiden kanssa mennyt.<\/p>\n<p>Ei tietyss\u00e4 j\u00e4rjestyksess\u00e4:<\/p>\n<ul>\n<li><strong>\u00c4l\u00e4 ole idealisti; Ole k\u00e4yt\u00e4nn\u00f6llinen<\/strong>. Koko koodikannan refaktorointi ei ole k\u00e4yt\u00e4nt\u00f6\u00e4, varsinkin jos koodikanta ei ole k\u00e4\u00e4ritty yksikk\u00f6testeihin. Katso k\u00e4sittelem\u00e4\u00e4si koodia ja katso, mit\u00e4 pieni\u00e4 muutoksia voit tehd\u00e4 parantaaksesi sit\u00e4.<\/li>\n<li><strong>K\u00e4yt\u00e4 uusimpia standardeja<\/strong>. Sinun ei tarvitse perustaa kokonaan uutta kehitysymp\u00e4rist\u00f6\u00e4 vanhemmalle koodille. Varmista sen sijaan, ett\u00e4 sinulla on hyv\u00e4t koodinhauskijat paikallaan. Jos olet siirtynyt WordPressin koodausstandardeista PSR:\u00e4\u00e4n, katso haistelijoiden antamat varoitukset tai huomautukset ja yrit\u00e4 p\u00e4ivitt\u00e4\u00e4 vain kyseisess\u00e4 tiedostossa (tai tiedostojoukossa) oleva koodi.<\/li>\n<li><strong>Kirjoita aputoiminnot<\/strong>. Jos toimintosi ovat liian pitki\u00e4, etsi tapoja helpottaa niiden k\u00e4ytt\u00f6\u00e4. P\u00e4ivit\u00e4 ensin kaikki ohjausrakenteet, kuten silmukat tai ehdolliset, ja kirjoita sitten aputoimintoja, jotta ne on helpompi lukea.<\/li>\n<li><strong>Lis\u00e4\u00e4 testej\u00e4 (jos mahdollista)<\/strong>. Jos sinulla on jo yksikk\u00f6testauskehys, lis\u00e4\u00e4 testit uudelle koodillesi. Jos sinulla ei ole aikaa tai puitteita, \u00e4l\u00e4 hikoile sit\u00e4. Niin paljon kuin pragmaattiset ohjelmoijat saarnaavatkin, ei aina ole aikaa lis\u00e4t\u00e4 testej\u00e4. (T\u00e4m\u00e4 ei tarkoita sit\u00e4, ett\u00e4 ne eiv\u00e4t olisi hy\u00f6dyllisi\u00e4 tai ettei niit\u00e4 pit\u00e4isi sis\u00e4llytt\u00e4\u00e4 mukaan, mutta ett\u00e4 niit\u00e4 ei aina ole k\u00e4yt\u00e4nn\u00f6llist\u00e4 sis\u00e4llytt\u00e4\u00e4 milloin tahansa).<\/li>\n<\/ul>\n<p>Jotkut asiat, joita olen huomannut tekev\u00e4ni viimeaikaisissa projekteissa, sis\u00e4lt\u00e4v\u00e4t my\u00f6s yksinkertaisia \u200b\u200basioita:<\/p>\n<ul>\n<li>muuttujien ja funktioiden nimien p\u00e4ivitt\u00e4minen PSR:n mukaan,<\/li>\n<li>vaihtaa sarkaimet v\u00e4lily\u00f6nneiksi,<\/li>\n<li>aputoimintojen lis\u00e4\u00e4minen ehtojen ja silmukoiden luettavuuden parantamiseksi,<\/li>\n<li>luokkien jakaminen, jotta heill\u00e4 olisi korkeampi yhteenkuuluvuus,<\/li>\n<li>parantaa kunkin toiminnon dokumenttilohkoja<\/li>\n<\/ul>\n<p>N\u00e4m\u00e4 ovat vain muutamia esimerkkej\u00e4, eik\u00e4 t\u00e4m\u00e4 selv\u00e4stik\u00e4\u00e4n ole tyhjent\u00e4v\u00e4 luettelo. Mutta siit\u00e4 ei ole kysymys. Sen sijaan haluan yksinkertaisesti kertoa, kuinka voit k\u00e4ytt\u00e4\u00e4 WordPress-pohjaisen koodin uudelleenmuodostusta samalla kun saat p\u00e4ivitt\u00e4isen ty\u00f6si tehty\u00e4 hallittavalla tavalla.<\/p>\n<p>Kaikki edell\u00e4 mainitut muutokset tai suositukset ovat asioita, jotka voidaan yleens\u00e4 tehd\u00e4 IDE:n avulla, muutamalla pikan\u00e4pp\u00e4imell\u00e4 ja ehk\u00e4 puolen tunnin lis\u00e4ajalla (ja olen vapaa t\u00e4m\u00e4n arvion kanssa).<\/p>\n<p>Joten ei, sinun ei tarvitse kirjoittaa uudelleen koko koodikantaa. En edes tied\u00e4, onko se k\u00e4yt\u00e4nn\u00f6n tavoite, johon t\u00e4hd\u00e4t\u00e4. Mutta voitko korjata yhden pienen palan koko j\u00e4rjestelm\u00e4st\u00e4, josta olet vastuussa?<\/p>\n<p>Ja miksi ei ainakaan pyrit\u00e4 siihen?<\/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>Mit\u00e4 enemm\u00e4n yrit\u00e4n soveltaa t\u00e4t\u00e4 p\u00e4ivitt\u00e4isess\u00e4 ty\u00f6ss\u00e4ni, sit\u00e4 paremmaksi koodini on tullut. Mit\u00e4 tulee WordPress-pohjaisen koodin muokkaamiseen, milt\u00e4 se n\u00e4ytt\u00e4\u00e4?<\/p>\n","protected":false},"author":1,"featured_media":235914,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,843,864],"tags":[1166],"class_list":["post-231180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231180","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=231180"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231180\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/235914"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}