{"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":"trumpas-pradziamokslis-apie-refaktorizavima-pradedantiesiems","status":"publish","type":"post","link":"https:\/\/thecodest.co\/lt\/blog\/a-quick-primer-on-refactoring-for-beginners\/","title":{"rendered":"Greitas pradedan\u010di\u0173j\u0173 refaktorizavimo prad\u017eiamokslis"},"content":{"rendered":"<p>Tod\u0117l kai kuriems nesuprantama, kad <strong>refaktoringas<\/strong> i\u0161 tikr\u0173j\u0173 yra programavimo sritis, be to, tai labai svarbi programuotojo darbo dalis. Kodas nuolat tobul\u0117ja, jis bus kei\u010diamas tol, kol bus galimyb\u0117 prid\u0117ti nauj\u0173 funkcij\u0173. Ta\u010diau jis gali \u012fgauti toki\u0105 form\u0105, kuri nebeleis efektyviai prid\u0117ti nauj\u0173 funkcij\u0173, ir bus papras\u010diau perra\u0161yti vis\u0105 program\u0105 i\u0161 naujo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kas yra refaktoringas?<\/h2>\n\n\n\n<p>Paprastai i\u0161girstate atsakym\u0105, kad tai yra kodo strukt\u016bros keitimas, taikant kelet\u0105 refaktorizavimo transformacij\u0173, nedarant \u012ftakos stebimam kodo elgesiui. Tai tiesa. Neseniai taip pat susid\u016briau su apibr\u0117\u017eimu pagal <b>Martin Fowler<\/b> savo knygoje <b>\u201cEsamo kodekso projektavimo tobulinimas\u201d<\/b> kur jis apra\u0161o <strong>refaktoringas<\/strong> kaip \u201cdideli\u0173 poky\u010di\u0173 darymas ma\u017eais \u017eingsneliais\u201d. Jis apib\u016bdina <strong>refaktoringas<\/strong> kaip kodo pakeitimas, neturintis \u012ftakos jo veikimui, ta\u010diau jis pabr\u0117\u017eia, kad tai turi b\u016bti daroma ma\u017eais \u017eingsneliais.<\/p>\n\n\n\n<p>Knygoje taip pat rekomenduojama, kad <strong>refaktoringas<\/strong> neturi \u012ftakos kodo veikimui ir nurodo, kad ji neturi jokios \u012ftakos test\u0173 i\u0161laikymui bet kuriuo metu. Jame \u017eingsnis po \u017eingsnio apra\u0161oma, kaip saugiai atlikti <strong>refaktoringas<\/strong>. Man patiko jo knyga, nes joje apra\u0161omos paprastos gudryb\u0117s, kurias galima naudoti kasdieniame darbe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kod\u0117l mums reikia refaktorizavimo?<\/h2>\n\n\n\n<p>&nbsp;Da\u017eniausiai jos gali prireikti, kai norite \u012fdiegti nauj\u0105 funkcij\u0105, o dabartin\u0117s versijos kodas to neleid\u017eia arba tai padaryti b\u016bt\u0173 sud\u0117tingiau nekei\u010diant kodo. Be to, jis naudingas tais atvejais, kai prid\u0117ti daugiau funkcij\u0173 neapsimoka laiko at\u017evilgiu, t. y. grei\u010diau b\u016bt\u0173 perra\u0161yti kod\u0105 i\u0161 naujo. Manau, kartais pamir\u0161tama, kad <strong>refaktoringas<\/strong> kodas gali b\u016bti \u0161varesnis ir lengviau skaitomas. Martinas savo knygoje ra\u0161o, kaip jis atlieka refaktorizacij\u0105, kai jau\u010dia nemalonius kvapus kode, ir, kaip jis sako, <b>\u201cvisada lieka vietos geresniam\u201d<\/b>. Ir \u010dia jis mane nustebino matydamas refaktoring\u0105 kaip kasdienio darbo su kodu element\u0105. Man kodai da\u017enai b\u016bna nesuprantami, juos skaityti yra \u0161iek tiek patirtis, nes kodas da\u017enai b\u016bna neintuityvus.<\/p>\n\n\n\n<p>Gerai parengtos programos skiriamasis bruo\u017eas yra jos <b>Moduliarumas<\/b>, d\u0117l kurios pakanka \u017einoti tik nedidel\u0119 kodo dal\u012f, kad b\u016bt\u0173 galima atlikti daugum\u0105 pakeitim\u0173. Be to, d\u0117l modulin\u0117s strukt\u016bros naujiems \u017emon\u0117ms lengviau \u012fsitraukti ir efektyviau prad\u0117ti dirbti. Norint pasiekti tok\u012f modulin\u012f pob\u016bd\u012f, susij\u0119 programos elementai turi b\u016bti sugrupuoti, o ry\u0161iai turi b\u016bti suprantami ir lengvai randami. Vienos taisykl\u0117s, kaip tai padaryti, n\u0117ra. Kai vis geriau \u017einote ir suprantate, kaip kodas tur\u0117t\u0173 veikti, galite grupuoti elementus, ta\u010diau kartais taip pat tenka testuoti ir tikrinti.<\/p>\n\n\n\n<p>Viena i\u0161 refaktorizavimo taisykli\u0173 <b>YAGNI<\/b>, tai akronimas, rei\u0161kiantis \u2018You Aren't Gonna Need It\u2019 ir kil\u0119s i\u0161 <b>eXtreme programavimas (XP) <\/b>daugiausia naudojamas <strong><a href=\"https:\/\/thecodest.co\/lt\/blog\/how-to-implement-agile-methodology\/\">Agile<\/a> <a href=\"https:\/\/thecodest.co\/lt\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">programin\u0117s \u012frangos k\u016brimas<\/a> komandos<\/strong>. Trumpa istorija, <b>YAGNI<\/b> sako, kad reikia daryti tik naujausius dalykus. Tai i\u0161 esm\u0117s rei\u0161kia, kad net jei ko nors gali prireikti ateityje, dabar to daryti nereik\u0117t\u0173.  Ta\u010diau mes taip pat negalime u\u017egniau\u017eti tolesni\u0173 pl\u0117tini\u0173, ir \u010dia svarbus tampa moduliavimas.<\/p>\n\n\n\n<p>Kalb\u0117dami apie <strong>refaktoringas<\/strong>, reikia pamin\u0117ti vien\u0105 i\u0161 svarbiausi\u0173 element\u0173, t. y. bandymus. Svetain\u0117je <strong>refaktoringas<\/strong>, turime \u017einoti, kad kodas vis dar veikia, nes <strong>refaktoringas<\/strong> nekei\u010dia jos veikimo b\u016bdo, o kei\u010dia jos strukt\u016br\u0105, tod\u0117l visi testai turi b\u016bti atlikti. Geriausia po kiekvieno nedidelio pakeitimo atlikti tos kodo dalies, su kuria dirbame, testus. Tai suteikia <a href=\"https:\/\/thecodest.co\/lt\/blog\/why-us-companies-are-opting-for-polish-developers\/\">mus<\/a> patvirtinimas, kad viskas veikia taip, kaip reikia, ir sutrumpinamas visos operacijos laikas. B\u016btent apie tai savo knygoje kalba Martinas - kuo da\u017eniau atlikti bandymus, kad nereik\u0117t\u0173 \u017eengti \u017eingsnio atgal ir gai\u0161ti laiko ie\u0161kant transformacijos, kuri ka\u017ek\u0105 sugadino.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/lt\/dictionary\/what-is-code-refactoring\/\">Kodo pertvarkymas<\/a><\/strong> be bandym\u0173 yra vargas ir didel\u0117 tikimyb\u0117, kad ka\u017ekas bus ne taip. Jei \u012fmanoma, geriausia b\u016bt\u0173 prid\u0117ti bent kelet\u0105 pagrindini\u0173 test\u0173, kurie suteikt\u0173 mums \u0161iek tiek u\u017etikrintumo, kad kodas veikia.<\/p>\n\n\n\n<p>Toliau i\u0161vardytos transformacijos yra tik pavyzd\u017eiai, ta\u010diau jos tikrai naudingos kasdien\u0117je programavimo veikloje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Funkcijos i\u0161skyrimas ir kintam\u0173j\u0173 i\u0161skyrimas - jei funkcija yra per ilga, patikrinkite, ar yra koki\u0173 nors ma\u017eesni\u0173 funkcij\u0173, kurias b\u016bt\u0173 galima i\u0161skirti. Tas pats pasakytina ir apie ilgas eilutes. \u0160ios transformacijos gali pad\u0117ti rasti pasikartojim\u0173 kode. D\u0117l Ma\u017e\u0173j\u0173 funkcij\u0173 kodas tampa ai\u0161kesnis ir suprantamesnis,<\/li>\n\n\n\n<li>Funkcij\u0173 ir kintam\u0173j\u0173 pavadinim\u0173 keitimas - norint gerai programuoti, labai svarbu naudoti teisingus pavadinimus. Tinkamai parinkti kintam\u0173j\u0173 pavadinimai gali daug k\u0105 pasakyti apie kod\u0105,<\/li>\n\n\n\n<li>Funkcij\u0173 grupavimas \u012f klases - \u0161is pakeitimas naudingas, kai dvi klas\u0117s atlieka pana\u0161ias operacijas, nes taip galima sutrumpinti klas\u0117s ilg\u012f,<\/li>\n\n\n\n<li>\u012eterpto teiginio perra\u0161ymas - jei s\u0105lyga pasitvirtina specialiu atveju, i\u0161veskite gr\u0105\u017einimo teigin\u012f, kai s\u0105lyga \u012fvyksta. Tokio tipo testai da\u017enai vadinami apsauginiu sakiniu. Pakeitus \u012fterptin\u012f s\u0105lygin\u012f teigin\u012f i\u0161\u0117jimo teiginiu, pasikei\u010dia kodo akcentai. Konstruktyve if-else abiem variantams priskiriamas vienodas svoris. Kod\u0105 skaitan\u010diam asmeniui tai yra prane\u0161imas, kad kiekvienas i\u0161 j\u0173 yra vienodai tik\u0117tinas ir svarbus,<\/li>\n\n\n\n<li>\u012eveskite ypating\u0105 atvej\u012f - jei kai kurias s\u0105lygas savo kode naudojate daug kart\u0173, galb\u016bt verta joms sukurti atskir\u0105 strukt\u016br\u0105. D\u0117l to daugum\u0105 speciali\u0173j\u0173 atvej\u0173 patikrinim\u0173 galima pakeisti paprastais funkcij\u0173 i\u0161kvietimais. Da\u017enai pasitaikanti reik\u0161m\u0117, kuriai reikia specialaus apdorojimo, yra null. Tod\u0117l \u0161is modelis da\u017enai vadinamas nuliniu objektu. Ta\u010diau \u0161is metodas gali b\u016bti naudojamas bet kuriuo specialiu atveju,<\/li>\n\n\n\n<li>S\u0105lyginio nurodymo polimorfizmo pakeitimas.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Pavyzdys<\/h2>\n\n\n\n<p>Tai straipsnis apie <strong>refaktoringas<\/strong> ir reikia pavyzd\u017eio. Toliau noriu parodyti paprast\u0105 refaktorizavimo pavyzd\u012f naudodamas <b>\u012eterpto teiginio perra\u0161ymas<\/b> ir <b>S\u0105lyginio nurodymo polimorfizmo pakeitimas<\/b>. Tarkime, turime programos funkcij\u0105, kuri gr\u0105\u017eina a <a href=\"https:\/\/thecodest.co\/lt\/blog\/hash-to-use-or-not-to-use\/\">hash<\/a> su informacija, kaip laistyti augalus realiame gyvenime. Tokia informacija tikriausiai b\u016bt\u0173 pateikta modelyje, ta\u010diau \u0161iame pavyzdyje ji pateikta funkcijoje.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def laistymo_info(augalas)\n     result = {}\n     if plant.is_a? Suculent || plant.is_a? Kaktusas\n         result = { water_amount: \"A little bit \" , how_to: \"I\u0161 apa\u010dios\", laistymo trukm\u0117: \"2 savait\u0117s\" }\n     elsif plant.is_a? Alocasia || plant.is_a? Maranta\n         result = { water_amount: \"Didelis kiekis\", how_to: laistymo_duration: \"Kaip jums patogiau\", laistymo_duration: \"Kaip jums patogiau\": \"5 dienos\" }\n     elsif plant.is_a? Peperomia\n         result = { water_amount: \"Dicent amount\",\n             how_to: \"jie nem\u0117gsta vandens ant lap\u0173\",\n             laistymo trukm\u0117: \"1 savait\u0117\" }\n     else\n         result = { water_amount: \"Dicent amount\",\n             how_to: \"Kaip jums patogiau\",\n             watering_duration: \"1 savait\u0117\"\n             }\n     pabaiga\n     gr\u0105\u017einti rezultat\u0105\n pabaiga\n<\/code><\/pre>\n\n\n\n<p>Id\u0117ja yra pakeisti, jei gr\u012f\u017eti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">if plant.isa? Suculent || plant.isa? Cactus\n\n     result = { wateramount: \"A little bit \" , howto: \"I\u0161 apa\u010dios\",\n<\/code><\/pre>\n\n\n\n<p>\u012e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>return { water_amount: \" , how_to: \"I\u0161 apa\u010dios\",laistymo_trukm\u0117: \"2 savait\u0117s\" } if plant.is_a? Suculent || plant.is_a? Cactus<\/code><\/code><\/pre>\n\n\n\n<p>gr\u0105\u017einti { vanduo<em>suma: \u201c\u0160iek tiek\u201d , kaip<\/em>\u012f: \u201cI\u0161 apa\u010dios\u201d, laistymas<em>trukm\u0117: \u201c2 savait\u0117s\u201d } if plant.is<\/em>a? Sukulentinis || plant.is_a? Kaktusas<\/p>\n\n\n\n<p>Ir taip toliau, kol pasieksime funkcij\u0105, kuri atrodo taip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def laistymo_info(augalas)\n\nreturn result = { wateramount: \" , howto: \"I\u0161 apa\u010dios\", laistymo trukm\u0117: \"2 savait\u0117s\" } if plant.isa? Suculent || plant.is_a? Cactus\n\nreturn result = { wateramount: \"Didelis kiekis\", howto: \"Kaip jums patogiau\", laistymo trukm\u0117: \"5 dienos\" } if plant.isa? Alocasia || plant.is_a? Maranta\n\nreturn result = { water_amount: \"Dicent amount\",\n\n          howto: \"jie nem\u0117gsta vandens ant lap\u0173\",\n          wateringduration: \"1 savait\u0117\" } if plant.is_a? Peperomia\n\nreturn result = { water_amount: \"Dicent amount\",\n\n          how_to: \"Kaip jums patogiau\",\n\n          laistymo trukm\u0117: \"1 savait\u0117\"\n\n          }\n\npabaiga<\/code><\/pre>\n\n\n\n<p>\u00a0Pa\u010dioje pabaigoje jau tur\u0117jome gr\u0105\u017einimo rezultat\u0105. Geras \u012fprotis - tai daryti \u017eingsnis po \u017eingsnio ir i\u0161bandyti kiekvien\u0105 pakeitim\u0105. \u0160\u012f if blok\u0105 gal\u0117tum\u0117te pakeisti perjungimo atveju (switch case) ir jis i\u0161 karto atrodyt\u0173 geriau, be to, nereik\u0117t\u0173 kiekvien\u0105 kart\u0105 tikrinti vis\u0173 if. Tai atrodyt\u0173 taip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def laistymo_info(augalas)\n\nswich plant.class.to_string\n\ncase Suculent, Cactus\n\n     { wateramount: \"\u0160iek tiek \" , howto: \"I\u0161 apa\u010dios\", laistymo trukm\u0117: \"2 savait\u0117s\" }\n\natvejis Alocasia, Maranta\n\n     { wateramount: \"Didelis kiekis\", howto: \"laistymo trukm\u0117: \"5 dienos\" }\n\natvejis Peperomia\n\n     { water_amount: \"Dicent amount\",\n\n          how_to: \"jie nem\u0117gsta vandens ant lap\u0173\",\n\n          laistymo trukm\u0117: \"1 savait\u0117\" }\n\nelse\n\n     { water_amount: \"Dicent amount\",\n\n            how_to: \"Kaip jums patogiau\",\n\n       laistymo trukm\u0117: \"1 savait\u0117\" }\n\npabaiga\n\npabaiga<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Tada galite taikyti <b>S\u0105lyginio nurodymo polimorfizmo pakeitimas<\/b>. Taip sukuriama klas\u0117 su funkcija, kuri gr\u0105\u017eina tinkam\u0105 reik\u0161m\u0119 ir perjungia jas \u012f tinkamas vietas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">klas\u0117 Suculent\n\n...\n\ndef laistymo_info()\n\n     return { wateramount: \" , howto: \"I\u0161 apa\u010dios\", laistymo_trukm\u0117: \"2 savait\u0117s\" }\n\nend  end\n\npabaiga\n\nklas\u0117 Cactus\n\n...\n\ndef laistymo_info()\n\n     return { wateramount: \" , howto: \"I\u0161 apa\u010dios\", laistymo_trukm\u0117: \"2 savait\u0117s\" }\n\nend  end\n\npabaiga\n\nklas\u0117 Alocasia\n\n...\n\ndef laistymo_info\n\n     return { wateramount: \"Didelis kiekis\", howto: \"laistymo trukm\u0117: \"5 dienos\" }\n\npabaiga\n\npabaiga\n\nklas\u0117 Maranta\n\n...\n\ndef laistymo_info\n\n     return { wateramount: \"Didelis kiekis\", howto: \"laistymo trukm\u0117: \"5 dienos\" }\n\npabaiga\n\npabaiga\n\nklas\u0117 Peperomia\n\n...\n\ndef laistymo_info\n\n     return { water_amount: \"Dicent amount\",\n\n      how_to: \"jie nem\u0117gsta vandens ant lap\u0173\",\n\n      laistymo trukm\u0117: \"1 savait\u0117\" }\n\npabaiga\n\npabaiga\n\nklas\u0117 Plant\n\n...\n\ndef laistymo_info\n\n     return { water_amount: \"Dicent amount\",\n\n              how_to: \"Kaip jums patogiau\",\n\n              laistymo trukm\u0117: \"1 savait\u0117\" }\n\npabaiga\n\npabaiga<\/code><\/pre>\n\n\n\n<p>Pagrindin\u0117je laistymo_infofunkcijoje kodas atrodys taip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def laistymo_info(augalas)\n\n    plant.map(&amp;:watering_info)\n\npabaiga<\/code><\/pre>\n\n\n\n<p>\u017dinoma, \u0161i\u0105 funkcij\u0105 galima pa\u0161alinti ir pakeisti jos turiniu. \u0160iame pavyzdyje nor\u0117jau pateikti bendr\u0105 <strong>refaktorizavimo modelis<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Santrauka<\/h2>\n\n\n\n<p><strong>Pertvarkymas<\/strong> yra didel\u0117 tema. Tikiuosi, kad \u0161is straipsnis paskatino perskaityti daugiau. \u0160ie <strong>refaktorizavimo \u012fg\u016bd\u017eiai<\/strong> pad\u0117s jums sugauti klaidas ir patobulinti \u0161varaus kodo dirbtuves. Rekomenduoju perskaityti Martino knyg\u0105 (Improving the Design of Existing Code), kuri yra gana paprastas ir naudingas taisykli\u0173 rinkinys. <strong>refaktoringas<\/strong>. Autorius \u017eingsnis po \u017eingsnio parodo \u012fvairias transformacijas, pateikia i\u0161samius paai\u0161kinimus, motyvacij\u0105 ir patarimus, kaip i\u0161vengti klaid\u0173. <strong>refaktoringas<\/strong>. D\u0117l savo universalumo tai puiki knyga frontend ir <strong>backend k\u016br\u0117jai<\/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=\"Tapti jaunesniuoju &quot;Ruby&quot; k\u016br\u0117ju\"\/><\/a><\/figure>\n\n\n\n<p><strong>Skaityti daugiau<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/graphql-ruby-what-about-performance\">\"GraphQL Ruby\". O kaip d\u0117l na\u0161umo?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">B\u0117giai ir kitos transporto priemon\u0117s<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">\"Rails\" k\u016brimas naudojant TMUX, \"Vim\", Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Galb\u016bt ra\u0161au apie tai, kas daugeliui akivaizdu, bet galb\u016bt ne visiems. Manau, kad refaktoringas yra sud\u0117tinga tema, nes jis apima kodo keitim\u0105 nedarant \u012ftakos jo veikimui.<\/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\/lt\/tinklarastis\/trumpas-pradziamokslis-apie-refaktorizavima-pradedantiesiems\/\" \/>\n<meta property=\"og:locale\" content=\"lt_LT\" \/>\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\/lt\/tinklarastis\/trumpas-pradziamokslis-apie-refaktorizavima-pradedantiesiems\/\" \/>\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 minut\u0117s\" \/>\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\":\"lt-LT\",\"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\":\"lt-LT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@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\":\"lt-LT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"lt-LT\",\"@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\":\"lt-LT\",\"@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\\\/lt\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Greitas pradedan\u010di\u0173j\u0173 \"Refactoring\" prad\u017eiamokslis - 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\/lt\/tinklarastis\/trumpas-pradziamokslis-apie-refaktorizavima-pradedantiesiems\/","og_locale":"lt_LT","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\/lt\/tinklarastis\/trumpas-pradziamokslis-apie-refaktorizavima-pradedantiesiems\/","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 minut\u0117s"},"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":"lt-LT","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":"Greitas pradedan\u010di\u0173j\u0173 \"Refactoring\" prad\u017eiamokslis - 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":"lt-LT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"lt-LT","@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":"lt-LT"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"lt-LT","@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":"lt-LT","@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\/lt\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/comments?post=3016"}],"version-history":[{"count":12,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3016\/revisions"}],"predecessor-version":[{"id":7707,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/posts\/3016\/revisions\/7707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/media\/3017"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/categories?post=3016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/lt\/wp-json\/wp\/v2\/tags?post=3016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}