{"id":231431,"date":"2023-01-04T13:53:00","date_gmt":"2023-01-04T10:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231431"},"modified":"2022-12-25T21:41:57","modified_gmt":"2022-12-25T18:41:57","slug":"utveckla-inte-utvecklingstunnelvision","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/utveckla-inte-utvecklingstunnelvision\/","title":{"rendered":"Utveckla inte utvecklingstunnelvision"},"content":{"rendered":"<p>I tidigare inl\u00e4gg har jag pratat om tanken att fokusera p\u00e5 ett omr\u00e5de och g\u00e5 p\u00e5 <a href=\"https:\/\/tommcfarlin.com\/deep-and-wide\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">djupet snarare \u00e4n brett<\/a>. Detta \u00e4r naturligtvis personliga preferenser, men det \u00e4r \u00e4nd\u00e5 mitt.<\/p>\n<p>Under det senaste \u00e5ret \u00e4r dock en av biprodukterna som jag har hittat ju l\u00e4ngre du stannar i en viss bransch, desto vanligare blir vissa problem. (Detta borde inte komma som en \u00f6verraskning eftersom det \u00e4r just d\u00e4rf\u00f6r vi har <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">designm\u00f6nster<\/a> .)<\/p>\n<p>Men grejen med att g\u00f6ra det h\u00e4r \u00e4r att man utvecklar ett slags tunnelseende f\u00f6r s\u00e4tt att l\u00f6sa problem.<\/p>\n<p><a href=\"https:\/\/unsplash.com\/photos\/6YglLphbCX8\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Krediter<\/a><\/p>\n<p>Exempel: Nyligen fick jag i uppdrag att beh\u00f6va utveckla n\u00e5gon funktionalitet som skulle analysera uppm\u00e4rkning och konvertera den till ett lite annorlunda format.<\/p>\n<h2>Utvecklingstunnelvision<\/h2>\n<p>Jag har gjort detta g\u00e5ng p\u00e5 g\u00e5ng och jag har ofta funnit <code>[DOMDocument](https:\/\/www.php.net\/manual\/en\/class.domdocument.php)<\/code>att det \u00e4r ett av de mest anv\u00e4ndbara verktygen f\u00f6r att g\u00f6ra detta. Men det finns ett problem: jag hade blivit s\u00e5 van vid att anv\u00e4nda detta att jag f\u00f6rsummade alternativa l\u00f6sningar som inte var inbyggda i WordPress, utan i PHP.<\/p>\n<p>Ist\u00e4llet f\u00f6r att beh\u00f6va ladda hela dokumentet i en instans av <code>[DOMDocument](https:\/\/www.php.net\/manual\/en\/class.domdocument.php)<\/code>, kunde jag str\u00e4nga ers\u00e4ttningar med \u2013 nej, inte regulj\u00e4ra uttryck (\u00e4ven om det var frestande) \u2013 men <code>[strip_tags](https:\/\/www.php.net\/manual\/en\/function.strip-tags.php)<\/code>och <code>[str_replace](http:\/\/php.net\/manual\/en\/function.str-replace.php)<\/code>.<\/p>\n<p>F\u00f6r att ta detta ett steg l\u00e4ngre, \u00e4r detta n\u00e5got som p\u00e5pekades av <a href=\"https:\/\/twitter.com\/salcode\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">en v\u00e4lrenommerad kollega<\/a> under en kodgranskning.<\/p>\n<h3>Om kodrecensioner, igen<\/h3>\n<p>Jag har ocks\u00e5 \u00e4gnat <a href=\"https:\/\/tommcfarlin.com\/code-review-process\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tidigare inl\u00e4gg<\/a> \u00e5t att prata om <a href=\"https:\/\/tommcfarlin.com\/code-reviews\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kodrecensioner<\/a>, varf\u00f6r jag tycker att de \u00e4r viktiga, hur man hanterar dem och hur man undviker att h\u00e5lla fast vid dem.<\/p>\n<p>Men det var en trevlig p\u00e5minnelse att uppt\u00e4cka att \u00e4ven n\u00e4r du tror att du \u00e4r van att l\u00f6sa ett vanligt problem i en given situation, kan det fortfarande finnas ett annat, ett renare och\/eller ett b\u00e4ttre s\u00e4tt att g\u00f6ra det p\u00e5.<\/p>\n<p>Min po\u00e4ng \u00e4r att oavsett vilken sida av kodgranskningen du befinner dig p\u00e5 och hur l\u00e4nge du \u00e4n har gjort vad det \u00e4n \u00e4r som du g\u00f6r, avf\u00e4rda inte en kritik eftersom den \u00e4r annorlunda.<\/p>\n<p>Om n\u00e5got, det hindrar dig fr\u00e5n att utveckla utvecklingstunnelseende; det g\u00f6r att du kan t\u00e4nka bredare om ett problem oavsett hur ofta du har l\u00f6st det.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Detta hindrar dig fr\u00e5n att utveckla utvecklingstunnelseende; det g\u00f6r att du kan t\u00e4nka brett om ett problem oavsett hur ofta du har l\u00f6st det.<\/p>\n","protected":false},"author":1,"featured_media":158791,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[987,848,922,724],"tags":[1173],"class_list":["post-231431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-affaer","category-handledningar","category-oevrig","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=231431"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/158791"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}