{"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":"eine-kurze-anleitung-zum-refactoring-fur-anfanger","status":"publish","type":"post","link":"https:\/\/thecodest.co\/de\/blog\/a-quick-primer-on-refactoring-for-beginners\/","title":{"rendered":"Eine kurze Einf\u00fchrung in das Refactoring f\u00fcr Einsteiger"},"content":{"rendered":"<p>Daher ist es f\u00fcr manche unverst\u00e4ndlich, dass <strong>Refaktorierung<\/strong> ist eigentlich ein Bereich der Programmierung, und es ist auch ein sehr wichtiger Teil der Arbeit des Programmierers. Der Code entwickelt sich st\u00e4ndig weiter, er wird so lange ge\u00e4ndert, wie die M\u00f6glichkeit besteht, neue Funktionen hinzuzuf\u00fcgen. Er kann jedoch eine Form annehmen, die es nicht mehr erlaubt, neue Funktionalit\u00e4ten effektiv hinzuzuf\u00fcgen, und es w\u00e4re einfacher, das gesamte Programm neu zu schreiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist Refactoring?<\/h2>\n\n\n\n<p>In der Regel h\u00f6rt man als Antwort, dass die Struktur des Codes durch Anwendung einer Reihe von Refactoring-Transformationen ge\u00e4ndert wird, ohne das beobachtbare Verhalten des Codes zu beeinflussen. Das ist richtig. K\u00fcrzlich bin ich auch auf eine Definition von <b>Martin Fowler<\/b> in seinem Buch <b>\"Verbesserung der Gestaltung von bestehendem Code\"<\/b> wo er beschreibt <strong>Refaktorierung<\/strong> als \"gro\u00dfe Ver\u00e4nderungen in kleinen Schritten vornehmen\". Er beschreibt <strong>Refaktorierung<\/strong> als eine \u00c4nderung des Codes, die sich nicht auf den Betrieb auswirkt, aber er betont, dass dies in kleinen Schritten geschehen muss.<\/p>\n\n\n\n<p>In dem Buch wird auch bef\u00fcrwortet, dass <strong>Refaktorierung<\/strong> die Funktionsweise des Codes nicht beeintr\u00e4chtigt und darauf hinweist, dass sie sich zu keinem Zeitpunkt auf das Bestehen der Tests auswirkt. Es wird Schritt f\u00fcr Schritt beschrieben, wie man sicher durchf\u00fchren kann <strong>Refaktorierung<\/strong>. Ich mochte sein Buch, weil es einfache Tricks beschreibt, die man bei der t\u00e4glichen Arbeit anwenden kann.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum brauchen wir Refactoring?<\/h2>\n\n\n\n<p>&nbsp;Meistens braucht man sie, wenn man eine neue Funktion einf\u00fchren will und der Code in seiner aktuellen Version dies nicht zul\u00e4sst oder es ohne \u00c4nderungen am Code schwieriger w\u00e4re. Sie ist auch dann n\u00fctzlich, wenn das Hinzuf\u00fcgen weiterer Funktionen zeitlich unrentabel ist, d. h. es w\u00e4re schneller, den Code von Grund auf neu zu schreiben. Ich glaube, es wird manchmal vergessen, dass <strong>Refaktorierung<\/strong> kann den Code sauberer und lesbarer machen. Martin schreibt in seinem Buch, wie er Refactoring durchf\u00fchrt, wenn er unangenehme Ger\u00fcche im Code wahrnimmt und, wie er es ausdr\u00fcckt, <b>\"Es bleibt immer Raum f\u00fcr das Bessere\"<\/b>. Und hier hat er mich \u00fcberrascht, indem er Refactoring als ein Element der allt\u00e4glichen Codearbeit sieht. F\u00fcr mich sind die Codes oft unverst\u00e4ndlich, sie zu lesen ist eine kleine Erfahrung, da der Code oft unintuitiv ist.<\/p>\n\n\n\n<p>Ein gut konzipiertes Programm zeichnet sich dadurch aus, dass es <b>Modularit\u00e4t<\/b>Dank der Modularit\u00e4t ist es ausreichend, nur einen kleinen Teil des Codes zu kennen, um die meisten \u00c4nderungen vorzunehmen. Die Modularit\u00e4t macht es auch neuen Mitarbeitern leichter, sich einzuarbeiten und die Arbeit effizienter zu gestalten. Um diese Modularit\u00e4t zu erreichen, m\u00fcssen zusammengeh\u00f6rige Programmelemente gruppiert werden, wobei die Zusammenh\u00e4nge verst\u00e4ndlich und leicht zu finden sein m\u00fcssen. Es gibt keine allgemeing\u00fcltige Faustregel daf\u00fcr, wie dies zu bewerkstelligen ist. Je mehr man wei\u00df und versteht, wie der Code funktionieren soll, desto besser kann man die Elemente gruppieren, aber manchmal muss man auch testen und \u00fcberpr\u00fcfen.<\/p>\n\n\n\n<p>Eine der Regeln f\u00fcr das Refactoring in <b>YAGNI<\/b>ist ein Akronym f\u00fcr \"You Aren't Gonna Need It\" und leitet sich ab von <b>eXtreme Programmierung (XP) <\/b>haupts\u00e4chlich verwendet in <strong><a href=\"https:\/\/thecodest.co\/de\/blog\/how-to-implement-agile-methodology\/\">Agil<\/a> <a href=\"https:\/\/thecodest.co\/de\/blog\/8-key-questions-to-ask-your-software-development-outsourcing-partner\/\">Software-Entwicklung<\/a> Teams<\/strong>. Lange Rede kurzer Sinn, <b>YAGNI<\/b> besagt, dass nur aktuelle Dinge getan werden sollten. Das bedeutet im Grunde, dass selbst wenn etwas in der Zukunft ben\u00f6tigt werden k\u00f6nnte, es nicht jetzt gemacht werden sollte.  Aber wir k\u00f6nnen auch weitere Erweiterungen nicht unterdr\u00fccken, und hier wird die Modularit\u00e4t wichtig.<\/p>\n\n\n\n<p>Wenn Sie \u00fcber <strong>Refaktorierung<\/strong>muss eines der wichtigsten Elemente, n\u00e4mlich die Tests, erw\u00e4hnt werden. Unter <strong>Refaktorierung<\/strong>m\u00fcssen wir wissen, dass der Code noch funktioniert, denn <strong>Refaktorierung<\/strong> \u00e4ndert nicht die Funktionsweise, sondern die Struktur des Codes, so dass alle Tests bestanden werden m\u00fcssen. Es ist am besten, nach jeder kleinen \u00c4nderung Tests f\u00fcr den Teil des Codes durchzuf\u00fchren, an dem wir gerade arbeiten. Das gibt <a href=\"https:\/\/thecodest.co\/de\/blog\/why-us-companies-are-opting-for-polish-developers\/\">us<\/a> eine Best\u00e4tigung, dass alles so funktioniert, wie es sollte, und es verk\u00fcrzt die Zeit der gesamten Operation. Genau dar\u00fcber spricht Martin in seinem Buch - f\u00fchren Sie so oft wie m\u00f6glich Tests durch, um nicht einen Schritt zur\u00fcckzutreten und Zeit mit der Suche nach einer Transformation zu verschwenden, die etwas kaputt gemacht hat.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/thecodest.co\/de\/dictionary\/what-is-code-refactoring\/\">Code-Refactoring<\/a><\/strong> Ohne Tests ist es m\u00fchsam, und die Wahrscheinlichkeit, dass etwas schief geht, ist gro\u00df. Wenn es m\u00f6glich ist, w\u00e4re es am besten, zumindest einige grundlegende Tests hinzuzuf\u00fcgen, die uns ein wenig Gewissheit geben, dass der Code funktioniert.<\/p>\n\n\n\n<p>Die unten aufgef\u00fchrten Transformationen sind nur Beispiele, aber sie sind bei der t\u00e4glichen Programmierung sehr hilfreich:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Funktionsextraktion und Variablenextraktion - wenn die Funktion zu lang ist, pr\u00fcfen Sie, ob es kleinere Funktionen gibt, die extrahiert werden k\u00f6nnen. Das Gleiche gilt f\u00fcr lange Zeilen. Diese Transformationen k\u00f6nnen dabei helfen, Duplikate im Code zu finden. Dank der kleinen Funktionen wird der Code klarer und verst\u00e4ndlicher,<\/li>\n\n\n\n<li>Umbenennung von Funktionen und Variablen - die Verwendung der richtigen Namenskonvention ist f\u00fcr eine gute Programmierung unerl\u00e4sslich. Gut gew\u00e4hlte Variablennamen k\u00f6nnen eine Menge \u00fcber den Code aussagen,<\/li>\n\n\n\n<li>Gruppierung der Funktionen in einer Klasse - diese \u00c4nderung ist hilfreich, wenn zwei Klassen \u00e4hnliche Operationen durchf\u00fchren, da sie die L\u00e4nge der Klasse verk\u00fcrzen kann,<\/li>\n\n\n\n<li>\u00dcberschreiben der verschachtelten Anweisung - wenn die Bedingung f\u00fcr einen speziellen Fall erf\u00fcllt ist, geben Sie eine R\u00fcckgabeanweisung aus, wenn die Bedingung eintritt. Diese Art von Tests wird oft als Schutzklausel bezeichnet. Das Ersetzen einer verschachtelten bedingten Anweisung durch eine Exit-Anweisung \u00e4ndert die Gewichtung im Code. Das if-else-Konstrukt weist beiden Varianten das gleiche Gewicht zu. F\u00fcr die Person, die den Code liest, ist dies eine Botschaft, dass jede der beiden Varianten gleich wahrscheinlich und wichtig ist,<\/li>\n\n\n\n<li>Einf\u00fchrung eines Sonderfalls - wenn Sie einige Bedingungen in Ihrem Code h\u00e4ufig verwenden, kann es sich lohnen, daf\u00fcr eine eigene Struktur zu erstellen. So k\u00f6nnen die meisten Sonderfallpr\u00fcfungen durch einfache Funktionsaufrufe ersetzt werden. Der h\u00e4ufigste Wert, der eine spezielle Verarbeitung erfordert, ist null. Daher wird dieses Muster h\u00e4ufig als Null-Objekt bezeichnet. Dieser Ansatz kann jedoch in jedem Sonderfall verwendet werden,<\/li>\n\n\n\n<li>Ersetzung des Polymorphismus f\u00fcr bedingte Anweisungen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Beispiel<\/h2>\n\n\n\n<p>Dies ist ein Artikel \u00fcber <strong>Refaktorierung<\/strong> und ein Beispiel wird ben\u00f6tigt. Ich m\u00f6chte im Folgenden ein einfaches Refactoring-Beispiel mit der Verwendung von <b>\u00dcberschreiben der verschachtelten Anweisung<\/b> und <b>Ersetzung des Polymorphismus f\u00fcr bedingte Anweisungen<\/b>. Nehmen wir an, wir haben eine Programmfunktion, die eine <a href=\"https:\/\/thecodest.co\/de\/blog\/hash-to-use-or-not-to-use\/\">Hash<\/a> mit Informationen dar\u00fcber, wie man Pflanzen im wirklichen Leben gie\u00dft. Solche Informationen w\u00fcrden wahrscheinlich im Modell stehen, aber f\u00fcr dieses Beispiel haben wir sie in der Funktion.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def bewaesserung_info(pflanze)\n     result = {}\n     if plant.is_a? Sukkulent || plant.is_a? Kaktus\n         result = { water_amount: \"Ein bisschen\" , how_to: \"Von unten\", w\u00e4ssern_dauer: \"2 Wochen\" }\n     elsif plant.is_a? Alocasia || plant.is_a? Maranta\n         result = { water_amount: \"Gro\u00dfe Menge\", how_to: \"Wie Sie es w\u00fcnschen\", watering_duration: \"5 Tage\" }\n     elsif plant.is_a? Peperomia\n         result = { water_amount: \"Dicent amount\",\n             how_to: \"Von unten! Sie m\u00f6gen kein Wasser auf den Bl\u00e4ttern\",\n             w\u00e4ssern_dauer: \"1 Woche\" }\n     sonst\n         result = { water_amount: \"Dicent amount\",\n             how_to: \"Wie Sie w\u00fcnschen\",\n             w\u00e4ssern_dauer: \"1 Woche\"\n             }\n     end\n     Ergebnis zur\u00fcckgeben\n end\n<\/code><\/pre>\n\n\n\n<p>Die Idee ist, sich zu \u00e4ndern, wenn man zur\u00fcckkehrt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"ruby\" class=\"language-ruby\">if plant.isa? Sukkulent || plant.isa? Kaktus\n\n     result = { wateramount: \"Ein bisschen\" , howto: \"Von unten\",\n<\/code><\/pre>\n\n\n\n<p>An<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>return { water_amount: \"Ein kleines bisschen\" , how_to: \"Von unten\",watering_duration: \"2 Wochen\" } if plant.is_a? Sukkulente || plant.is_a? Kaktus<\/code><\/code><\/pre>\n\n\n\n<p>R\u00fcckgabe { Wasser<em>Menge: \"Ein bisschen\", wie<\/em>zu: \"Von unten\", Bew\u00e4sserung<em>Dauer: \"2 Wochen\" } if plant.is<\/em>a? Sukkulent || plant.is_a? Kaktus<\/p>\n\n\n\n<p>Und so geht es weiter, bis wir zu einer Funktion kommen, die wie folgt aussieht:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def bewaesserung_info(pflanze)\n\nreturn result = { wateramount: \"Ein wenig\" , howto: \"Von unten\", wateringduration: \"2 Wochen\" } if plant.isa? Sukkulent || plant.is_a? Kaktus\n\nreturn result = { wateramount: \"Gro\u00dfe Menge\", howto: \"Wie Sie wollen\", Bew\u00e4sserungsdauer: \"5 Tage\" } if plant.isa? Alocasia || plant.is_a? Maranta\n\nreturn result = { water_amount: \"Dicent amount\",\n\n          howto: \"Von unten! Sie m\u00f6gen kein Wasser auf den Bl\u00e4ttern\",\n          wateringduration: \"1 Woche\" } if plant.is_a? Peperomia\n\nreturn result = { water_amount: \"Dicent amount\",\n\n          how_to: \"Wie Sie w\u00fcnschen\",\n\n          w\u00e4ssern_dauer: \"1 Woche\"\n\n          }\n\nend<\/code><\/pre>\n\n\n\n<p>\u00a0Ganz am Ende hatten wir bereits ein Ergebnis. Und eine gute Angewohnheit ist es, dies Schritt f\u00fcr Schritt zu tun und jede \u00c4nderung zu testen. Sie k\u00f6nnten diesen if-Block durch einen switch case ersetzen und es w\u00fcrde sofort besser aussehen, und Sie m\u00fcssten nicht jedes Mal alle ifs \u00fcberpr\u00fcfen. Das w\u00fcrde dann so aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def bewaesserung_info(pflanze)\n\nswich plant.class.to_string\n\ncase Sukkulent, Kaktus\n\n     { wateramount: \"Ein wenig\" , howto: \"Von unten\", watering_duration: \"2 Wochen\" }\n\nFall Alocasia, Maranta\n\n     { wateramount: \"Gro\u00dfe Menge\", howto: \"Wie Sie m\u00f6chten\", watering_duration: \"5 Tage\" }\n\nFall Peperomia\n\n     { water_amount: \"Dicent amount\",\n\n          how_to: \"Von unten! Sie m\u00f6gen kein Wasser auf den Bl\u00e4ttern\",\n\n          watering_duration: \"1 Woche\" }\n\nsonst\n\n     { water_amount: \"Dicent amount\",\n\n            how_to: \"Wie Sie w\u00fcnschen\",\n\n       watering_duration: \"1 Woche\" }\n\nend\n\nend<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Und dann k\u00f6nnen Sie die <b>Ersetzen des Polymorphismus f\u00fcr bedingte Anweisungen<\/b>. Damit soll eine Klasse mit einer Funktion erstellt werden, die den richtigen Wert zur\u00fcckgibt und sie an die richtige Stelle setzt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">Klasse Sukkulent\n\n...\n\ndef bewaesserung_info()\n\n     return { wateramount: \"Ein bisschen\" , howto: \"Von unten\", watering_duration: \"2 Wochen\" }\n\nend\n\nend\n\nKlasse Kaktus\n\n...\n\ndef bewaesserung_info()\n\n     return { wateramount: \"Ein bisschen\" , howto: \"Von unten\", watering_duration: \"2 Wochen\" }\n\nend\n\nend\n\nKlasse Alocasia\n\n...\n\ndef bew\u00e4sserung_info\n\n     return { wateramount: \"Gro\u00dfe Menge\", howto: \"Wie Sie wollen\", watering_duration: \"5 Tage\" }\n\nend\n\nend\n\nKlasse Maranta\n\n...\n\ndef bew\u00e4sserung_info\n\n     return { wateramount: \"Gro\u00dfe Menge\", howto: \"Wie Sie wollen\", watering_duration: \"5 Tage\" }\n\nend\n\nend\n\nKlasse Peperomia\n\n...\n\ndef gie\u00dfen_info\n\n     return { water_amount: \"Dicent amount\",\n\n      how_to: \"Von unten! Sie m\u00f6gen kein Wasser auf den Bl\u00e4ttern\",\n\n      watering_duration: \"1 Woche\" }\n\nend\n\nend\n\nKlasse Plant\n\n...\n\ndef bew\u00e4sserung_info\n\n     return { water_amount: \"Dicent amount\",\n\n              how_to: \"Wie Sie w\u00fcnschen\",\n\n              watering_duration: \"1 Woche\" }\n\nend\n\nend<\/code><\/pre>\n\n\n\n<p>Und in der Hauptfunktion watering_infofunction wird der Code wie folgt aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">def bewaesserung_info(pflanze)\n\n    Pflanze.map(&amp;:Bew\u00e4sserungsinfo)\n\nend<\/code><\/pre>\n\n\n\n<p>Nat\u00fcrlich kann diese Funktion entfernt und durch ihren Inhalt ersetzt werden. Mit diesem Beispiel wollte ich die allgemeine <strong>Refactoring-Muster<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zusammenfassung<\/h2>\n\n\n\n<p><strong>Refaktorierung<\/strong> ist ein gro\u00dfes Thema. Ich hoffe, dieser Artikel war ein Anreiz, mehr zu lesen. Diese <strong>Refactoring-F\u00e4higkeiten<\/strong> helfen Ihnen, Ihre Fehler zu finden und Ihren Workshop f\u00fcr sauberen Code zu verbessern. Ich empfehle die Lekt\u00fcre von Martins Buch (Improving the Design of Existing Code), das ein ziemlich grundlegendes und hilfreiches Regelwerk von <strong>Refaktorierung<\/strong>. Der Autor zeigt verschiedene Transformationen Schritt f\u00fcr Schritt mit einer vollst\u00e4ndigen Erkl\u00e4rung und Motivation und Tipps, wie man Fehler zu vermeiden in <strong>Refaktorierung<\/strong>. Aufgrund seiner Vielseitigkeit ist es ein reizvolles Buch f\u00fcr Frontend- und <strong>Backend-Entwickler<\/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=\"Werden Sie Junior Ruby Entwickler\"\/><\/a><\/figure>\n\n\n\n<p><strong>Mehr lesen<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/graphql-ruby-what-about-performance\">GraphQL Ruby. Wie sieht es mit der Leistung aus?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-and-other-means-of-transport\">Eisenbahnen und andere Transportmittel<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/rails-development-with-tmux-vim-fzf-ripgrep\">Rails-Entwicklung mit TMUX, Vim, Fzf + Ripgrep<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Vielleicht schreibe ich hier \u00fcber etwas, das f\u00fcr viele offensichtlich ist, aber vielleicht nicht f\u00fcr jeden. Refactoring ist meiner Meinung nach ein kompliziertes Thema, weil es darum geht, den Code zu \u00e4ndern, ohne seine Funktionsweise zu beeintr\u00e4chtigen.<\/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\/de\/blog\/eine-kurze-anleitung-zum-refactoring-fur-anfanger\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/blog\/eine-kurze-anleitung-zum-refactoring-fur-anfanger\/\" \/>\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\u00a0Minuten\" \/>\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\":\"de\",\"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\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/a-quick-primer-on-refactoring-for-beginners\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@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\":\"de\",\"@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\\\/de\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Eine kurze Einf\u00fchrung in das Refactoring f\u00fcr Anf\u00e4nger - 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\/de\/blog\/eine-kurze-anleitung-zum-refactoring-fur-anfanger\/","og_locale":"de_DE","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\/de\/blog\/eine-kurze-anleitung-zum-refactoring-fur-anfanger\/","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\u00a0Minuten"},"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":"de","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":"Eine kurze Einf\u00fchrung in das Refactoring f\u00fcr Anf\u00e4nger - 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":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/a-quick-primer-on-refactoring-for-beginners\/"]}]},{"@type":"ImageObject","inLanguage":"de","@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":"Der 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":"de"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"Der Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"de","@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":"de","@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\/de\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/comments?post=3016"}],"version-history":[{"count":12,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3016\/revisions"}],"predecessor-version":[{"id":7707,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/posts\/3016\/revisions\/7707"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media\/3017"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/media?parent=3016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/categories?post=3016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/de\/wp-json\/wp\/v2\/tags?post=3016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}