[{"data":1,"prerenderedAt":333},["ShallowReactive",2],{"term-r\u002Frefactor":3,"related-r\u002Frefactor":319},{"id":4,"title":5,"acronym":6,"body":7,"category":300,"description":301,"difficulty":302,"extension":303,"letter":304,"meta":305,"navigation":152,"path":306,"related":307,"seo":313,"sitemap":314,"stem":317,"subcategory":6,"__hash__":318},"terms\u002Fterms\u002Fr\u002Frefactor.md","Refactor",null,{"type":8,"value":9,"toc":294},"minimark",[10,15,19,23,26,30,283,287,290],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Refactoring is cleaning and reorganizing your code without changing what it does — like tidying your room without throwing anything away. The program behaves exactly the same, but the code is cleaner, easier to read, and less likely to cause future problems. It is paying off technical debt.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Refactoring is the disciplined process of improving the internal structure of code without altering its external behavior. It involves applying techniques like extracting functions, removing duplication (DRY), renaming for clarity, simplifying conditionals, and restructuring data. Good refactoring is backed by tests that prove behavior has not changed. Martin Fowler's book 'Refactoring' is the canonical reference.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Before refactoring:\nfunction calc(u, d) {\n  return u.p * d * (1 - (u.vip ? 0.2 : 0));\n}\n\n\u002F\u002F After refactoring (same behavior, much clearer):\nconst VIP_DISCOUNT = 0.2;\n\nfunction calculateOrderTotal(user, quantity) {\n  const baseTotal = user.price * quantity;\n  const discountRate = user.isVip ? VIP_DISCOUNT : 0;\n  return baseTotal * (1 - discountRate);\n}\n","javascript","",[38,39,40,49,80,141,147,154,160,176,181,203,229,257,278],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F Before refactoring:\n",[41,50,52,56,60,64,68,71,74,77],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," calc",[41,61,63],{"class":62},"sMK4o","(",[41,65,67],{"class":66},"sHdIc","u",[41,69,70],{"class":62},",",[41,72,73],{"class":66}," d",[41,75,76],{"class":62},")",[41,78,79],{"class":62}," {\n",[41,81,83,87,91,94,96,99,101,103,107,111,114,116,118,120,123,126,129,132,135,138],{"class":43,"line":82},3,[41,84,86],{"class":85},"s7zQu","  return",[41,88,90],{"class":89},"sTEyZ"," u",[41,92,93],{"class":62},".",[41,95,16],{"class":89},[41,97,98],{"class":62}," *",[41,100,73],{"class":89},[41,102,98],{"class":62},[41,104,106],{"class":105},"swJcz"," (",[41,108,110],{"class":109},"sbssI","1",[41,112,113],{"class":62}," -",[41,115,106],{"class":105},[41,117,67],{"class":89},[41,119,93],{"class":62},[41,121,122],{"class":89},"vip",[41,124,125],{"class":62}," ?",[41,127,128],{"class":109}," 0.2",[41,130,131],{"class":62}," :",[41,133,134],{"class":109}," 0",[41,136,137],{"class":105},"))",[41,139,140],{"class":62},";\n",[41,142,144],{"class":43,"line":143},4,[41,145,146],{"class":62},"}\n",[41,148,150],{"class":43,"line":149},5,[41,151,153],{"emptyLinePlaceholder":152},true,"\n",[41,155,157],{"class":43,"line":156},6,[41,158,159],{"class":47},"\u002F\u002F After refactoring (same behavior, much clearer):\n",[41,161,163,166,169,172,174],{"class":43,"line":162},7,[41,164,165],{"class":54},"const",[41,167,168],{"class":89}," VIP_DISCOUNT ",[41,170,171],{"class":62},"=",[41,173,128],{"class":109},[41,175,140],{"class":62},[41,177,179],{"class":43,"line":178},8,[41,180,153],{"emptyLinePlaceholder":152},[41,182,184,186,189,191,194,196,199,201],{"class":43,"line":183},9,[41,185,55],{"class":54},[41,187,188],{"class":58}," calculateOrderTotal",[41,190,63],{"class":62},[41,192,193],{"class":66},"user",[41,195,70],{"class":62},[41,197,198],{"class":66}," quantity",[41,200,76],{"class":62},[41,202,79],{"class":62},[41,204,206,209,212,215,218,220,223,225,227],{"class":43,"line":205},10,[41,207,208],{"class":54},"  const",[41,210,211],{"class":89}," baseTotal",[41,213,214],{"class":62}," =",[41,216,217],{"class":89}," user",[41,219,93],{"class":62},[41,221,222],{"class":89},"price",[41,224,98],{"class":62},[41,226,198],{"class":89},[41,228,140],{"class":62},[41,230,232,234,237,239,241,243,246,248,251,253,255],{"class":43,"line":231},11,[41,233,208],{"class":54},[41,235,236],{"class":89}," discountRate",[41,238,214],{"class":62},[41,240,217],{"class":89},[41,242,93],{"class":62},[41,244,245],{"class":89},"isVip",[41,247,125],{"class":62},[41,249,250],{"class":89}," VIP_DISCOUNT",[41,252,131],{"class":62},[41,254,134],{"class":109},[41,256,140],{"class":62},[41,258,260,262,264,266,268,270,272,274,276],{"class":43,"line":259},12,[41,261,86],{"class":85},[41,263,211],{"class":89},[41,265,98],{"class":62},[41,267,106],{"class":105},[41,269,110],{"class":109},[41,271,113],{"class":62},[41,273,236],{"class":89},[41,275,76],{"class":105},[41,277,140],{"class":62},[41,279,281],{"class":43,"line":280},13,[41,282,146],{"class":62},[11,284,286],{"id":285},"when-youll-hear-this","When You'll Hear This",[16,288,289],{},"\"Refactor that function before adding new features.\" \u002F \"Don't refactor and fix a bug in the same commit.\"",[291,292,293],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":295},[296,297,298,299],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":285,"depth":51,"text":286},"general","Refactoring is cleaning and reorganizing your code without changing what it does — like tidying your room without throwing anything away.","intermediate","md","r",{},"\u002Fterms\u002Fr\u002Frefactor",[308,309,310,311,312],"Technical Debt","Code Review","DRY","Testing","Clean Code",{"title":5,"description":301},{"changefreq":315,"priority":316},"weekly",0.7,"terms\u002Fr\u002Frefactor","k7hXmmxpVCoOfNDIJb_i0HNQpPJx6rSw2rtCf4wq-fY",[320,324,329],{"title":309,"path":321,"acronym":6,"category":300,"difficulty":322,"description":323},"\u002Fterms\u002Fc\u002Fcode-review","beginner","A code review is when another developer reads your code before it gets merged, looking for bugs, bad practices, or anything confusing.",{"title":310,"path":325,"acronym":326,"category":327,"difficulty":322,"description":328},"\u002Fterms\u002Fd\u002Fdry","Don't Repeat Yourself","architecture","If you find yourself copy-pasting the same code in multiple places, STOP. Make it a reusable function instead.",{"title":308,"path":330,"acronym":6,"category":331,"difficulty":322,"description":332},"\u002Fterms\u002Ft\u002Ftechnical-debt","vibecoding","Technical debt is the coding equivalent of putting things on a credit card.",1776518307039]