{"id":3016,"date":"2020-06-24T08:53:38","date_gmt":"2020-06-24T08:53:38","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"modified":"2026-04-24T11:30:09","modified_gmt":"2026-04-24T11:30:09","slug":"stutt-innleidsla-i-endurskipulagningu-koda-fyrir-byrjendur","status":"publish","type":"post","link":"https:\/\/thecodest.co\/is\/blog\/a-quick-primer-on-refactoring-for-beginners\/","title":{"rendered":"Stutt innlei\u00f0sluhandb\u00f3k um endurskipulagningu k\u00f3\u00f0a fyrir byrjendur"},"content":{"rendered":"<p>\u00deess vegna er \u00fea\u00f0 \u00f3skiljanlegt fyrir suma a\u00f0 <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> \u00dea\u00f0 er \u00ed raun svi\u00f0 \u00ed forritun og jafnframt mj\u00f6g mikilv\u00e6gur hluti af vinnu forritarans. K\u00f3\u00f0inn er s\u00edfellt \u00ed \u00fer\u00f3un; hann ver\u00f0ur breyttur svo lengi sem m\u00f6gulegt er a\u00f0 b\u00e6ta vi\u00f0 n\u00fdjum virkni. Hins vegar getur hann teki\u00f0 \u00e1 sig form sem gerir ekki lengur kleift a\u00f0 b\u00e6ta \u00e1 skilvirkan h\u00e1tt vi\u00f0 n\u00fdja virkni og \u00fea\u00f0 v\u00e6ri au\u00f0veldara a\u00f0 endurskrifa allt forriti\u00f0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hva\u00f0 er endurskipulagning k\u00f3\u00f0a?<\/h2>\n\n\n\n<p>Venjulega er svari\u00f0 sem \u00fe\u00fa heyrir a\u00f0 um s\u00e9 a\u00f0 r\u00e6\u00f0a a\u00f0 breyta uppbyggingu k\u00f3\u00f0ans me\u00f0 \u00fev\u00ed a\u00f0 beita r\u00f6\u00f0 endurskipulagningabreytinga \u00e1n \u00feess a\u00f0 hafa \u00e1hrif \u00e1 \u00e1berandi heg\u00f0un k\u00f3\u00f0ans. \u00deetta er r\u00e9tt. N\u00fdlega rakst \u00e9g einnig \u00e1 skilgreiningu eftir <b>Martin Fowler<\/b> \u00ed b\u00f3k hans <b>\u201cB\u00e6ta h\u00f6nnun n\u00faverandi k\u00f3\u00f0a\u201d<\/b> \u00fear sem hann l\u00fdsir <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> sem \u201ca\u00f0 gera st\u00f3rar breytingar \u00ed sm\u00e1um skrefum.\u201d Hann l\u00fdsir <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> sem k\u00f3\u00f0abreyting sem hefur ekki \u00e1hrif \u00e1 rekstur \u00feess, en hann leggur \u00e1herslu \u00e1 a\u00f0 henni ver\u00f0i komi\u00f0 \u00ed framkv\u00e6md \u00ed litlum skrefum.<\/p>\n\n\n\n<p>B\u00f3kin m\u00e6lir einnig me\u00f0 \u00fev\u00ed a\u00f0 <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> \u00c1 ekki vi\u00f0 um rekstur k\u00f3\u00f0ans og bendir \u00e1 a\u00f0 \u00fea\u00f0 hafi engin \u00e1hrif \u00e1 a\u00f0 standast pr\u00f3fin hven\u00e6r sem er. \u00dea\u00f0 l\u00fdsir skref fyrir skref hvernig \u00e1 a\u00f0 framkv\u00e6ma \u00fea\u00f0 \u00f6rugglega. <strong>enduruppbygging k\u00f3\u00f0ans<\/strong>. M\u00e9r l\u00edka\u00f0i b\u00f3kin hans \u00fev\u00ed h\u00fan l\u00fdsir einf\u00f6ldum brellum sem h\u00e6gt er a\u00f0 nota \u00ed daglegu starfi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Af hverju \u00feurfum vi\u00f0 endurskipulagningu k\u00f3\u00f0ans?<\/h2>\n\n\n\n<p>&nbsp;Oftast \u00fearftu \u00fea\u00f0 \u00feegar \u00fe\u00fa vilt kynna n\u00fdja virkni og k\u00f3\u00f0inn \u00ed n\u00faverandi \u00fatg\u00e1fu leyfir \u00fea\u00f0 ekki e\u00f0a \u00fea\u00f0 v\u00e6ri erfi\u00f0ara \u00e1n breytinga \u00e1 k\u00f3\u00f0anum. Einnig er \u00fea\u00f0 gagnlegt \u00feegar \u00fea\u00f0 er t\u00edmalega \u00f3hagkv\u00e6mt a\u00f0 b\u00e6ta vi\u00f0 fleiri eiginleikum, \u00fe.e. \u00fea\u00f0 v\u00e6ri flj\u00f3tlegra a\u00f0 endurskrifa k\u00f3\u00f0ann fr\u00e1 grunni. \u00c9g held a\u00f0 stundum s\u00e9 gleymt a\u00f0 <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> getur gert k\u00f3\u00f0ann hreinni og l\u00e6silegri. Martin skrifar \u00ed b\u00f3k sinni hvernig hann framkv\u00e6mir endurskipulagningu \u00feegar hann finnur \u00f3\u00fe\u00e6gilega lykt \u00ed k\u00f3\u00f0anum og, eins og hann or\u00f0ar \u00fea\u00f0, <b>\u201c\u00dea\u00f0 skilur alltaf eftir pl\u00e1ss fyrir hi\u00f0 betra\u201d<\/b>. Og hann kom m\u00e9r \u00e1 \u00f3vart me\u00f0 \u00fev\u00ed a\u00f0 sj\u00e1 umritun k\u00f3\u00f0a sem hluta af daglegu k\u00f3\u00f0unarstarfi. Fyrir mig eru k\u00f3\u00f0arnir oft \u00f3skiljanlegir; a\u00f0 lesa \u00fe\u00e1 er s\u00e9rst\u00f6k reynsla \u00fear sem k\u00f3\u00f0inn er oft \u00f3inns\u00e6is.<\/p>\n\n\n\n<p>\u00c1berandi einkenni vel hanna\u00f0s forrits er \u00feess <b>Modularity<\/b>, \u00de\u00f6kk s\u00e9 \u00fev\u00ed n\u00e6gir a\u00f0 \u00feekkja a\u00f0eins l\u00edtinn hluta k\u00f3\u00f0ans til a\u00f0 innlei\u00f0a flestar breytingar. Modularitet gerir \u00fea\u00f0 einnig au\u00f0veldara fyrir n\u00fdtt f\u00f3lk a\u00f0 koma inn og byrja a\u00f0 vinna \u00e1 skilvirkari h\u00e1tt. Til a\u00f0 n\u00e1 \u00feessum modularitet \u00fearf a\u00f0 h\u00f3pa skylda forritunar\u00fe\u00e6tti saman, \u00feannig a\u00f0 tengsl \u00feeirra s\u00e9u skiljanleg og au\u00f0veldlega finnanleg. \u00dea\u00f0 er engin ein einf\u00f6ld regla um hvernig \u00feetta skuli gert. \u00deegar \u00fe\u00fa \u00feekkir og skilur betur og betur hvernig k\u00f3\u00f0inn \u00e1 a\u00f0 virka, getur\u00f0u flokka\u00f0 \u00fe\u00e6ttina, en stundum \u00fearftu l\u00edka a\u00f0 pr\u00f3fa og athuga.<\/p>\n\n\n\n<p>Eitt af reglum endurskipulagningar \u00ed <b>YAGNI<\/b>, \u00fea\u00f0 er skammst\u00f6fun fyrir \u2018You Aren't Gonna Need It\u2019 og \u00e1 r\u00e6tur s\u00ednar a\u00f0 rekja til <b>\u00d6fgaforritun (XP) <\/b>nota\u00f0 a\u00f0allega \u00ed <strong><a href=\"https:\/\/thecodest.co\/is\/blog\/how-to-implement-agile-methodology\/\">Sveigjanlegur<\/a> <a href=\"https:\/\/thecodest.co\/is\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">hugb\u00fana\u00f0ar\u00fer\u00f3un<\/a> teams<\/strong>. Til a\u00f0 stytta langa s\u00f6gu, <b>YAGNI<\/b> Segir a\u00f0 eing\u00f6ngu uppf\u00e6r\u00f0 verkefni skuli unnin. \u00deetta \u00fe\u00fd\u00f0ir \u00ed grundvallaratri\u00f0um a\u00f0 jafnvel \u00fe\u00f3tt eitthva\u00f0 kunni a\u00f0 ver\u00f0a nau\u00f0synlegt \u00ed framt\u00ed\u00f0inni, eigi ekki a\u00f0 gera \u00fea\u00f0 n\u00fana. En vi\u00f0 getum heldur ekki hindra\u00f0 frekari vi\u00f0b\u00e6tur, og h\u00e9r ver\u00f0ur m\u00f3duleiningaskipulag mikilv\u00e6gt.<\/p>\n\n\n\n<p>\u00deegar tala\u00f0 er um <strong>enduruppbygging k\u00f3\u00f0ans<\/strong>, eitt af mikilv\u00e6gustu \u00fe\u00e1ttunum, \u00fe.e. pr\u00f3funum, ver\u00f0ur a\u00f0 nefna. \u00cd <strong>enduruppbygging k\u00f3\u00f0ans<\/strong>, vi\u00f0 \u00feurfum a\u00f0 vita a\u00f0 k\u00f3\u00f0inn virkar enn\u00fe\u00e1, vegna \u00feess a\u00f0 <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> breytir ekki \u00fev\u00ed hvernig \u00fea\u00f0 virkar, heldur uppbyggingu \u00feess, svo \u00f6ll pr\u00f3f ver\u00f0a a\u00f0 ganga upp. \u00dea\u00f0 er best a\u00f0 keyra pr\u00f3fin fyrir \u00feann hluta k\u00f3\u00f0ans sem vi\u00f0 erum a\u00f0 vinna \u00ed eftir hverja litla umbreytingu. \u00dea\u00f0 gefur <a href=\"https:\/\/thecodest.co\/is\/blog\/why-us-companies-are-opting-for-polish-developers\/\">okkur<\/a> sta\u00f0festing \u00e1 \u00fev\u00ed a\u00f0 allt virki eins og \u00fea\u00f0 \u00e1 a\u00f0 virka og styttir t\u00edmann sem fer \u00ed alla a\u00f0ger\u00f0ina. \u00deetta er \u00fea\u00f0 sem Martin r\u00e6\u00f0ir \u00ed b\u00f3k sinni \u2013 keyri\u00f0 pr\u00f3fanir eins oft og m\u00f6gulegt er svo \u00fei\u00f0 \u00feurfi\u00f0 ekki a\u00f0 taka skref aftur\u00e1bak og ey\u00f0a t\u00edma \u00ed a\u00f0 leita a\u00f0 breytingu sem braut eitthva\u00f0.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/is\/dictionary\/what-is-code-refactoring\/\">K\u00f3\u00f0avi\u00f0ger\u00f0<\/a><\/strong> \u00c1n pr\u00f3fana er \u00feetta pl\u00e1ga og miklar l\u00edkur eru \u00e1 a\u00f0 eitthva\u00f0 fari \u00farskei\u00f0is. Ef \u00fea\u00f0 er m\u00f6gulegt v\u00e6ri best a\u00f0 b\u00e6ta vi\u00f0 a\u00f0 minnsta kosti nokkrum grunnpr\u00f3fum sem gefa okkur sm\u00e1 vissu um a\u00f0 k\u00f3\u00f0inn virki.<\/p>\n\n\n\n<p>Umbreytingarnar sem taldar eru upp h\u00e9r a\u00f0 ne\u00f0an eru a\u00f0eins d\u00e6mi en \u00fe\u00e6r eru mj\u00f6g gagnlegar \u00ed daglegri forritun:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Funktsj\u00f3n\u00fatdr\u00e1ttur og breytna\u00fatdr\u00e1ttur \u2013 ef funktsj\u00f3nin er of l\u00f6ng, athuga\u00f0u hvort einhverjar minni funktsj\u00f3nir s\u00e9u til sem h\u00e6gt v\u00e6ri a\u00f0 draga \u00fat. \u00dea\u00f0 sama gildir um langar l\u00ednur. \u00deessar umbreytingar geta hj\u00e1lpa\u00f0 til vi\u00f0 a\u00f0 finna endurtekningar \u00ed k\u00f3\u00f0anum. \u00de\u00f6kk s\u00e9 sm\u00e1um funktsj\u00f3num ver\u00f0ur k\u00f3\u00f0inn sk\u00fdrari og au\u00f0skiljanlegri.,<\/li>\n\n\n\n<li>Endurnefning fallanna og breytna \u2013 a\u00f0 nota r\u00e9tt nafngiftarform er nau\u00f0synlegt fyrir g\u00f3\u00f0a forritun. Nafn breytna, \u00feegar \u00feau eru vel valin, geta sagt miki\u00f0 um k\u00f3\u00f0ann.,<\/li>\n\n\n\n<li>A\u00f0 h\u00f3pa fallin \u00ed bekk \u2013 \u00feessi breyting er gagnleg \u00feegar tveir bekkir framkv\u00e6ma svipa\u00f0ar a\u00f0ger\u00f0ir, \u00fev\u00ed h\u00fan getur stytt lengd bekkjarins,<\/li>\n\n\n\n<li>Yfirskrift innfelldrar skilyr\u00f0is \u2013 ef skilyr\u00f0i\u00f0 stenst fyrir s\u00e9rtilfelli, gef\u00f0u \u00fat return-tilskipun \u00feegar skilyr\u00f0i\u00f0 er uppfyllt. \u00deessar pr\u00f3fanir eru oft kalla\u00f0ar v\u00f6rsluklausa. A\u00f0 skipta \u00fat innfelldri skilyr\u00f0istilskipun fyrir exit-tilskipun breytir \u00e1herslunni \u00ed k\u00f3\u00f0anum. if-else-uppbyggingin gefur b\u00e1\u00f0um \u00fatg\u00e1funum jafnan v\u00e6gi. Fyrir \u00feann sem les k\u00f3\u00f0ann er \u00feetta skilabo\u00f0 um a\u00f0 hvor um sig s\u00e9 jafn l\u00edkleg og jafn mikilv\u00e6g.,<\/li>\n\n\n\n<li>Kynnum s\u00e9r s\u00e9rtilfelli \u2013 ef \u00fe\u00fa notar \u00e1kve\u00f0in skilyr\u00f0i \u00ed k\u00f3\u00f0anum \u00fe\u00ednum m\u00f6rgum sinnum g\u00e6ti veri\u00f0 \u00feess vir\u00f0i a\u00f0 b\u00faa til s\u00e9rstaka uppbyggingu fyrir \u00feau. \u00dear af lei\u00f0andi er h\u00e6gt a\u00f0 skipta flestum s\u00e9rtilfellisathugunum \u00fat fyrir einf\u00f6ld fallak\u00f6ll. Oft er algengt gildi sem krefst s\u00e9rme\u00f0fer\u00f0ar null. \u00deess vegna er \u00feetta mynstur oft kalla\u00f0 Null-hlutur. Hins vegar er h\u00e6gt a\u00f0 nota \u00feessa n\u00e1lgun \u00ed hva\u00f0a s\u00e9rtilfelli sem er.,<\/li>\n\n\n\n<li>Endurn\u00fdjun margbreytileika skilyr\u00f0isbo\u00f0ana.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00e6mi<\/h2>\n\n\n\n<p>\u00deetta er grein um <strong>enduruppbygging k\u00f3\u00f0ans<\/strong> og d\u00e6mi \u00fearf. \u00c9g vil s\u00fdna einfalt endurskipulagningard\u00e6mi h\u00e9r a\u00f0 ne\u00f0an me\u00f0 notkun <b>Yfirskrift innfelldrar yfirl\u00fdsingar<\/b> og <b>Endurn\u00fdjun margbreytileika skilyr\u00f0isbo\u00f0ana<\/b>. Segjum a\u00f0 vi\u00f0 h\u00f6fum forritafall sem skilar a <a href=\"https:\/\/thecodest.co\/is\/blog\/hash-to-use-or-not-to-use\/\">skr\u00e1<\/a> me\u00f0 uppl\u00fdsingum um hvernig \u00e1 a\u00f0 v\u00f6kva pl\u00f6ntur \u00ed raunveruleikanum. Sl\u00edkar uppl\u00fdsingar v\u00e6ru l\u00edklega \u00ed l\u00edkaninu, en \u00ed \u00feessu d\u00e6mi h\u00f6fum vi\u00f0 \u00fe\u00e6r \u00ed fallinu.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(planta)\n result = {}\n if plant.is_a? Sukkulenta || plant.is_a? Kaktus\n result = { water_amount: \"Sm\u00e1vegis\", how_to: \"Fr\u00e1 botni\", watering_duration: \"2 vikur\" }\n elsif plant.is_a? Alocasia || plant.is_a? Maranta\n result = { water_amount: \"Miki\u00f0 magn\", how_to: \"Eins og \u00fe\u00e9r hentar\", watering_duration: \"5 dagar\" }\n elsif plant.is_a? Peperomia\n result = { water_amount: \"N\u00f3g magn\",\n how_to: \"Fr\u00e1 botninum! \u00fe\u00e6r vilja ekki vatn \u00e1 laufunum\",\n watering_duration: \"1 vika\" }\n else\n result = { water_amount: \"Dicent amount\",\n how_to: \"As you prefer\",\n watering_duration: \"1 vika\"\n }\n end\n return result\n end\n<\/code><\/pre>\n\n\n\n<p>Hugmyndin er a\u00f0 breyta if \u00ed return:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">ef plant.isa? Safar\u00edkur || plant.isa? Kaktus\n\n ni\u00f0ursta\u00f0a = { vatnsmagn: \"A\u00f0eins sm\u00e1\", hvernig: \"Fr\u00e1 botninum\",\n<\/code><\/pre>\n\n\n\n<p>Til<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">Skila\u00f0u { water_amount: \"A little bit\", how_to: \"From the bottom\", watering_duration: \"2 weeks\" } ef plant.is_a? Suculent || plant.is_a? Cactus<\/code>Hlj\u00f3\u00f0skrift<\/pre>\n\n\n\n<p>skila { vatn<em>magn: \u201ca\u00f0eins sm\u00e1\u201d, hvernig<\/em>til: \u201cFr\u00e1 botni\u201d,v\u00f6kvun<em>Lengd: \u201c2 vikur\u201d } ef plant.is<\/em>a? Safar\u00edkur pl\u00f6ntu.is_a? Kaktus<\/p>\n\n\n\n<p>Og svo me\u00f0 allt, \u00fear til vi\u00f0 komum a\u00f0 falli sem l\u00edtur svona \u00fat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant) \n\nreturn result = { wateramount: \"Sm\u00e1vegis\", howto: \"Fr\u00e1 botni\", wateringduration: \"2 vikur\" } if plant.isa? Suculent || plant.is_a? Cactus\n\nreturn result = { wateramount: \"Miki\u00f0\", howto: \"Eins og \u00fe\u00e9r hentar\", wateringduration: \"5 dagar\" } if plant.isa? Alocasia || plant.is_a? Maranta\n\nreturn result = { water_amount: \"Dicent amount\",\n\n howto: \"Fr\u00e1 botni! \u00de\u00e6r vilja ekki vatn \u00e1 laufunum\",\n wateringduration: \"1 vika\" } if plant.is_a? Peperomia\n\nreturn result = { water_amount: \"Dicent amount\",\n\n how_to: \"As you prefer\",\n\n watering_duration: \"1 week\"\n\n }\n\nend<\/code><\/pre>\n\n\n\n<p>\u00a0\u00cd lokin h\u00f6f\u00f0um vi\u00f0 \u00feegar fengi\u00f0 ni\u00f0urst\u00f6\u00f0una. Og gott vinnubr\u00f6g\u00f0 er a\u00f0 fara skref fyrir skref og pr\u00f3fa hverja breytingu. \u00de\u00fa g\u00e6tir skipt \u00feessu if-blokka \u00fat fyrir switch-case og \u00fea\u00f0 myndi strax l\u00edta betur \u00fat, og \u00fe\u00fa \u00feyrftir ekki a\u00f0 athuga \u00f6ll if-skilyr\u00f0in \u00ed hvert skipti. \u00dea\u00f0 myndi l\u00edta svona \u00fat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def watering_info(plant) \n\nswich plant.class.to_string\n\ncase Suculent, Cactus\n\n { wateramount: \"A little bit \" , howto: \"From the bottom\", watering_duration: \"2 weeks\" }\n\ncase Alocasia, Maranta\n\n { wateramount: \"Miki\u00f0 magn\", howto: \"Eins og \u00fe\u00e9r hentar\", watering_duration: \"5 dagar\" }\n\ncase Peperomia\n\n { water_amount: \"N\u00f3g magn\",\n\n how_to: \"Fr\u00e1 botni! \u00de\u00e6r vilja ekki vatn \u00e1 laufunum\",\n\n watering_duration: \"1 vika\" }\n\nelse\n\n { water_amount: \"Dicent amount\",\n\n how_to: \"As you prefer\",\n\n watering_duration: \"1 week\u201d }\n\nend\n\nend<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Og svo getur\u00f0u beitt <b>A\u00f0 skipta \u00fat fj\u00f6lger\u00f0arleika skilyr\u00f0isbo\u00f0ana<\/b>. \u00deetta er til a\u00f0 b\u00faa til bekk me\u00f0 falli sem skilar r\u00e9ttum gildum og skiptir \u00feeim \u00ed r\u00e9tta s\u00e6ti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">class Suculent...\n\n\n\ndef watering_info()\n\n return { wateramount: \"A little bit \" , howto: \"From the bottom\", watering_duration: \"2 weeks\" }\n\nend\n\nend\n\nclass Cactus...\n\n\n\ndef watering_info()\n\n return { wateramount: \"A little bit \" , howto: \"From the bottom\", watering_duration: \"2 weeks\" }\n\nend\n\nend\n\nclass Alocasia\n\n...\n\ndef watering_info\n\n return { wateramount: \"Miki\u00f0 magn\", howto: \"Eins og \u00fe\u00e9r hentar\", watering_duration: \"5 dagar\" }\n\nend\n\nend\n\nclass Maranta...\n\n\n\ndef watering_info\n\n return { wateramount: \"Miki\u00f0 magn\", howto: \"Eins og \u00fe\u00e9r hentar\", watering_duration: \"5 dagar\" }\n\nend\n\nend\n\nclass Peperomia...\n\n\n\ndef watering_info\n\n return { water_amount: \"Dicent amount\",\n\n how_to: \"From the bottom! they don't like water on the leaves\",\n\n watering_duration: \"1 week\" }\n\nend\n\nend\n\nclass Plant...\n\n\n\ndef watering_info\n\n return { water_amount: \"Dicent amount\",\n\n how_to: \"As you prefer\",\n\n watering_duration: \"1 week\" }\n\nend\n\nend<\/code><\/pre>\n\n\n\n<p>Og \u00ed a\u00f0al vatnsgjafainfofunction-inu mun k\u00f3\u00f0inn l\u00edta svona \u00fat:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">`watering_info`(pl\u00f6ntu) \n\n `plant.map`(&amp;:watering_info)\n\n`end`<\/code><\/pre>\n\n\n\n<p>Au\u00f0vita\u00f0 er h\u00e6gt a\u00f0 fjarl\u00e6gja \u00feessa fall og skipta henni \u00fat fyrir innihald hennar. Me\u00f0 \u00feessu d\u00e6mi vildi \u00e9g kynna hi\u00f0 almenna <strong>mynstur endurskipulagningar<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Yfirlit<\/h2>\n\n\n\n<p><strong>Endurskipulagning k\u00f3\u00f0ans<\/strong> er st\u00f3rt umr\u00e6\u00f0uefni. \u00c9g vona a\u00f0 \u00feessi grein hafi hvatt \u00feig til a\u00f0 lesa meira. \u00deessar <strong>Endurskipulagningarh\u00e6fni<\/strong> Verkst\u00e6\u00f0i sem hj\u00e1lpar \u00fe\u00e9r a\u00f0 finna villur og b\u00e6ta hreinan k\u00f3\u00f0ann \u00feinn. \u00c9g m\u00e6li me\u00f0 a\u00f0 lesa b\u00f3k Martins (B\u00e6ta h\u00f6nnun n\u00faverandi k\u00f3\u00f0a), sem er nokku\u00f0 grunnur og gagnlegur regluser\u00f0 <strong>enduruppbygging k\u00f3\u00f0ans<\/strong>. H\u00f6fundurinn s\u00fdnir \u00fdmsar umbreytingar skref fyrir skref me\u00f0 fullri \u00fatsk\u00fdringu og r\u00f6kstu\u00f0ningi og r\u00e1\u00f0leggingum um hvernig for\u00f0ast megi villur \u00ed <strong>enduruppbygging k\u00f3\u00f0ans<\/strong>. Vegna fj\u00f6lh\u00e6fni sinnar er h\u00fan yndisleg b\u00f3k fyrir frontend og <strong>bakenda\u00fer\u00f3unara\u00f0ilar<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/thecodest.co\/careers\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/ruby_developer_hiring.jpeg\" alt=\"Vertu Junior Ruby-forritari\"\/><\/a><\/figure>\n\n\n\n<p><strong>Lesa meira<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/graphql-ruby-what-about-performance\">GraphQL Ruby. Hvernig er frammista\u00f0an?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Lestar og \u00f6nnur samg\u00f6ngut\u00e6ki<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">Rails-\u00fer\u00f3un me\u00f0 tmux, vim, fzf og ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Kannski skrifa \u00e9g um eitthva\u00f0 sem er auglj\u00f3st fyrir marga, en kannski ekki fyrir alla. Endurskipulagning k\u00f3\u00f0a er, a\u00f0 m\u00ednu mati, fl\u00f3ki\u00f0 efni \u00fev\u00ed h\u00fan felur \u00ed s\u00e9r a\u00f0 breyta k\u00f3\u00f0anum \u00e1n \u00feess a\u00f0 hafa \u00e1hrif \u00e1 virkni hans.<\/p>","protected":false},"author":2,"featured_media":3017,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>A Quick Primer on Refactoring for Beginners - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/is\/blogg\/stutt-innleidsla-i-endurskipulagningu-koda-fyrir-byrjendur\/\" \/>\n<meta property=\"og:locale\" content=\"is_IS\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Quick Primer on Refactoring for Beginners\" \/>\n<meta property=\"og:description\" content=\"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/is\/blogg\/stutt-innleidsla-i-endurskipulagningu-koda-fyrir-byrjendur\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-24T08:53:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:30:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"A Quick Primer on Refactoring for Beginners\",\"datePublished\":\"2020-06-24T08:53:38+00:00\",\"dateModified\":\"2026-04-24T11:30:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"},\"wordCount\":1338,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"is\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\",\"name\":\"A Quick Primer on Refactoring for Beginners - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"datePublished\":\"2020-06-24T08:53:38+00:00\",\"dateModified\":\"2026-04-24T11:30:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#breadcrumb\"},\"inLanguage\":\"is\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/regactor.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Quick Primer on Refactoring for Beginners\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"is\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"is\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/is\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Stutt kynning \u00e1 endurskipulagningu k\u00f3\u00f0a fyrir byrjendur - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/is\/blogg\/stutt-innleidsla-i-endurskipulagningu-koda-fyrir-byrjendur\/","og_locale":"is_IS","og_type":"article","og_title":"A Quick Primer on Refactoring for Beginners","og_description":"Perhaps I am writing about something obvious to many, but maybe not to everyone. Refactoring is, I think, a complicated topic because it involves changing the code without affecting its operation.","og_url":"https:\/\/thecodest.co\/is\/blogg\/stutt-innleidsla-i-endurskipulagningu-koda-fyrir-byrjendur\/","og_site_name":"The Codest","article_published_time":"2020-06-24T08:53:38+00:00","article_modified_time":"2026-04-24T11:30:09+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"A Quick Primer on Refactoring for Beginners","datePublished":"2020-06-24T08:53:38+00:00","dateModified":"2026-04-24T11:30:09+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"},"wordCount":1338,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","articleSection":["Software Development"],"inLanguage":"is","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/","url":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/","name":"Stutt kynning \u00e1 endurskipulagningu k\u00f3\u00f0a fyrir byrjendur - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","datePublished":"2020-06-24T08:53:38+00:00","dateModified":"2026-04-24T11:30:09+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#breadcrumb"},"inLanguage":"is","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/regactor.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"A Quick Primer on Refactoring for Beginners"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"is"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"is","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/is\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/comments?post=3016"}],"version-history":[{"count":12,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3016\/revisions"}],"predecessor-version":[{"id":7707,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/posts\/3016\/revisions\/7707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/media\/3017"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/categories?post=3016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/is\/wp-json\/wp\/v2\/tags?post=3016"}],"curies":[{"name":"vp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}