<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Refactoring Archive - MetinCelik.de</title>
	<atom:link href="https://www.metincelik.de/tag/refactoring/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.metincelik.de/tag/refactoring/</link>
	<description>Tipps, Tutorials, Blog, Webentwicklung, Design, SciFi</description>
	<lastBuildDate>Sun, 15 Mar 2026 04:48:51 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Clean Code mit AI schreiben</title>
		<link>https://www.metincelik.de/kuenstliche-intelligenz/clean-code-mit-ai/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=clean-code-mit-ai</link>
		
		<dc:creator><![CDATA[MetinC]]></dc:creator>
		<pubDate>Thu, 05 Mar 2026 12:27:00 +0000</pubDate>
				<category><![CDATA[Künstliche Intelligenz]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI Tools]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Heimwerken]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[SOLID]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://www.metincelik.de/allgemein/clean-code-mit-ai/</guid>

					<description><![CDATA[<p>Clean Code mit AI schreiben: Refactoring-Prompts, SOLID-Prinzipien, Code Smells erkennen und beheben. 10 Prompts für sauberen, wartbaren Code mit ChatGPT &#38; Claude. Einleitung KI kann nicht nur Code generieren – sie kann auch bestehenden Code besser machen. Refactoring, Code Smells erkennen, SOLID-Prinzipien anwenden: Hier spielt AI ihre volle Stärke aus. In diesem Artikel findest du [&#8230;]</p>
<p>Der Beitrag <a href="https://www.metincelik.de/kuenstliche-intelligenz/clean-code-mit-ai/">Clean Code mit AI schreiben</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="meta-description">Clean Code mit AI schreiben: Refactoring-Prompts, SOLID-Prinzipien, Code Smells erkennen und beheben. 10 Prompts für sauberen, wartbaren Code mit ChatGPT &amp; Claude.</p>



<h2 class="wp-block-heading">Einleitung</h2>



<p>KI kann nicht nur Code generieren – sie kann auch bestehenden Code <strong>besser machen</strong>. Refactoring, Code Smells erkennen, SOLID-Prinzipien anwenden: Hier spielt AI ihre volle Stärke aus. In diesem Artikel findest du <strong>10 Prompts</strong>, die deinen Code sauberer, wartbarer und professioneller machen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Zusätzlich gibt es einige bewährte Tipps für den Alltag.</p>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ol class="wp-block-list"><li><a href="#code-review">Prompt 1: Automatisches Code Review</a></li><li><a href="#refactoring">Prompt 2: Refactoring-Vorschläge</a></li><li><a href="#solid">Prompt 3: SOLID-Prinzipien anwenden</a></li><li><a href="#naming">Prompt 4: Bessere Benennung</a></li><li><a href="#complexity">Prompt 5: Komplexität reduzieren</a></li><li><a href="#error-handling">Prompt 6: Error Handling verbessern</a></li><li><a href="#dry">Prompt 7: DRY – Duplikate entfernen</a></li><li><a href="#testing-clean">Prompt 8: Testbaren Code schreiben</a></li><li><a href="#documentation">Prompt 9: Code dokumentieren</a></li><li><a href="#legacy">Prompt 10: Legacy Code modernisieren</a></li><li><a href="#checkliste">Clean Code Checkliste</a></li><li><a href="#faq-clean">FAQ</a></li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Im Folgenden gehe ich auf die wichtigsten Details ein.</p>



<h2 class="wp-block-heading" id="code-review">Prompt 1: Automatisches Code Review</h2>



<p>Ebenfalls relevant sind die praktischen Anwendungsbeispiele.</p>



<pre class="wp-block-code"><code>Du bist ein Senior Developer mit 15 Jahren Erfahrung. Führe ein Code Review durch:

```
[Code hier einfügen]
```

Prüfe auf:
1. **Bugs &amp; Logik-Fehler**: Race Conditions, Off-by-One, Null-Pointer
2. **Security**: SQL Injection, XSS, unsichere Inputs
3. **Performance**: Unnötige Loops, Memory Leaks, N+1 Queries
4. **Clean Code**: Naming, Funktionslänge, Single Responsibility
5. **Error Handling**: Fehlende try/catch, generische Catches
6. **TypeScript**: Korrekte Typen, kein `any`, keine Type Assertions

Für jedes Problem:
- Schweregrad: &#x1f534; Kritisch / &#x1f7e1; Warnung / &#x1f535; Vorschlag
- Zeile(n) betroffen
- Problem-Beschreibung
- Konkreter Fix (Code-Snippet)

Am Ende: Gesamtbewertung (1-10) mit Begründung.</code></pre>



<p>Ebenfalls sinnvoll ist es, verschiedene Varianten auszuprobieren.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Vor allem in der Praxis hat sich dieser Workflow bewährt.</p>



<h2 class="wp-block-heading" id="refactoring">Prompt 2: Refactoring-Vorschläge</h2>



<p>Somit kannst du direkt mit der Umsetzung beginnen.</p>



<pre class="wp-block-code"><code>Analysiere diesen Code und schlage Refactoring vor:

```
[Code hier einfügen]
```

Identifiziere:
1. Code Smells (Long Method, God Class, Feature Envy, etc.)
2. Design Pattern Opportunities (Strategy, Factory, Observer, etc.)
3. Abstraktionsmöglichkeiten (gemeinsame Interfaces, Base Classes)
4. Duplizierter Code

Für jedes Refactoring:
- Vorher: Relevanter Code-Ausschnitt
- Nachher: Refactored Version
- Pattern/Prinzip: Welches Designprinzip wird angewandt
- Risiko: Wie wahrscheinlich ist ein Bug durch das Refactoring
- Priorität: Hoch / Mittel / Niedrig</code></pre>



<p>Außerdem kannst du den Prompt für verschiedene Programmiersprachen anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Allerdings gibt es dabei einige Punkte, die du beachten solltest.</p>



<h2 class="wp-block-heading" id="solid">Prompt 3: SOLID-Prinzipien anwenden</h2>



<p>Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.</p>



<pre class="wp-block-code"><code>Prüfe diesen Code auf SOLID-Prinzipien:

```
[Code hier einfügen]
```

Analysiere jedes Prinzip:

1. **S – Single Responsibility**
   - Hat jede Klasse/Funktion genau eine Aufgabe?
   - Welche sollten aufgeteilt werden?

2. **O – Open/Closed**
   - Kann das Verhalten erweitert werden ohne es zu ändern?
   - Wo fehlen Abstraktionen?

3. **L – Liskov Substitution**
   - Können Subklassen überall für ihre Elternklasse eingesetzt werden?
   - Gibt es Verletzungen?

4. **I – Interface Segregation**
   - Werden Interfaces zu groß? Zwingen sie Klassen ungenutztes zu implementieren?

5. **D – Dependency Inversion**
   - Hängt der Code von Abstraktionen ab oder von konkreten Implementierungen?
   - Wird Dependency Injection genutzt?

Liefere für jede Verletzung den konkreten Fix mit vorher/nachher Code.</code></pre>



<p>Dabei zeigt dieses Beispiel den grundlegenden Ansatz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Zudem lassen sich die Ergebnisse auch auf andere Projekte übertragen.</p>



<h2 class="wp-block-heading" id="naming">Prompt 4: Bessere Benennung</h2>



<p>Grundsätzlich gibt es dabei einige Punkte zu beachten.</p>



<pre class="wp-block-code"><code>Verbessere die Benennung in diesem Code:

```
[Code hier einfügen]
```

Regeln:
1. Variablen: Beschreibend, nicht abgekürzt (data → userData, tmp → temporaryFile)
2. Funktionen: Verb + Substantiv (get → fetchUserById, calc → calculateTotalPrice)
3. Booleans: isX, hasX, canX, shouldX (flag → isActive, check → hasPermission)
4. Konstanten: UPPER_SNAKE_CASE, selbsterklärend (3600 → SECONDS_PER_HOUR)
5. Klassen: Substantiv, PascalCase, kein „Manager" oder „Helper"
6. Event Handler: handleX, onX (click → handleSubmitClick)
7. Async: fetchX, loadX, resolveX

Für jede Umbenennung:
- Alt → Neu
- Begründung in einem Satz</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Hierbei hilft es, von konkreten Beispielen auszugehen.</p>



<h2 class="wp-block-heading" id="complexity">Prompt 5: Komplexität reduzieren</h2>



<p>Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.</p>



<pre class="wp-block-code"><code>Reduziere die Komplexität dieses Codes:

```
[Code hier einfügen]
```

Techniken anwenden:
1. **Early Return**: Verschachtelte if/else durch Guard Clauses ersetzen
2. **Extract Method**: Lange Funktionen in kleinere Teile aufteilen 
   (Ziel: max. 20 Zeilen pro Funktion)
3. **Replace Conditional with Polymorphism**: switch/case durch Klassen
4. **Lookup Tables**: if/else-Ketten durch Objects/Maps ersetzen
5. **Decompose Conditionals**: Komplexe Bedingungen in benannte Funktionen
6. **Remove Nesting**: Promise-Chains mit async/await flatten

Für jede Verbesserung:
- Cyclomatic Complexity vorher → nachher
- Code vorher → nachher
- Lesbarkeit-Score (1-10) vorher → nachher</code></pre>



<p>Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Ebenso hilfreich ist ein strukturierter Ansatz bei der Umsetzung.</p>



<h2 class="wp-block-heading" id="error-handling">Prompt 6: Error Handling verbessern</h2>



<p>Allerdings gibt es einige wichtige Unterschiede zu beachten.</p>



<pre class="wp-block-code"><code>Verbessere das Error Handling in diesem Code:

```
[Code hier einfügen]
```

Prüfe und verbessere:
1. **Fehlende Error Handling**: Wo kann etwas fehlschlagen ohne try/catch?
2. **Generische Catches**: `catch(e) {}` → spezifische Error-Typen
3. **Custom Error Classes**: ApplicationError, ValidationError, NotFoundError
4. **Fehler-Propagation**: Wo sollten Fehler weitergegeben vs. behandelt werden?
5. **User-facing Errors**: Technische Details verstecken, freundliche Messages
6. **Logging**: Fehler loggen aber nicht verschlucken
7. **Retry Logic**: Für transiente Fehler (Netzwerk, DB-Timeout)
8. **Graceful Degradation**: Fallbacks statt Crashes

Liefere:
- Custom Error Classes (TypeScript)
- Verbesserten Code mit Error Handling
- Error Boundary / Global Handler Pattern</code></pre>



<p>Im Grunde funktioniert dieser Ansatz mit allen gängigen AI-Tools.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Somit ergibt sich ein klarer Vorteil gegenüber manuellen Methoden.</p>



<h2 class="wp-block-heading" id="dry">Prompt 7: DRY – Duplikate entfernen</h2>



<p>Ebenso wichtig ist es, die Best Practices zu kennen.</p>



<pre class="wp-block-code"><code>Finde und entferne Duplikate in meinem Code:

Dateien:
```
[Code aus Datei 1]
```

```
[Code aus Datei 2]
```

```
[Code aus Datei 3]
```

Finde:
1. Exakte Duplikate (Copy-Paste Code)
2. Strukturelle Duplikate (gleiche Logik, andere Variablen)
3. Daten-Duplikate (Magic Numbers, wiederholte Strings)

Lösung für jedes Duplikat:
- Shared Utility Function / Klasse
- Generics / Templates wo möglich
- Constants für wiederholte Werte
- Higher-Order Functions für ähnliche Patterns

Ziel: Jede Logik existiert genau einmal.</code></pre>



<p>Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Im Grunde sparst du dadurch langfristig viel Zeit.</p>



<h2 class="wp-block-heading" id="testing-clean">Prompt 8: Testbaren Code schreiben</h2>



<p>Folglich profitierst du von einem besseren Verständnis dieser Konzepte.</p>



<pre class="wp-block-code"><code>Mache diesen Code testbar:

```
[Code hier einfügen]
```

Aktuell untestbar weil:
- [z.B. "Direkte DB-Aufrufe in der Business Logic"]
- [z.B. "Globaler State"]
- [z.B. "Hardcoded Dependencies"]

Refactore für Testbarkeit:
1. **Dependency Injection**: Abhängigkeiten von außen übergeben
2. **Interfaces**: Für alle externen Dependencies (DB, API, FileSystem)
3. **Pure Functions**: Wo möglich, Side Effects isolieren
4. **Seams**: Punkte einbauen wo Mock-Objekte eingesetzt werden können
5. **Small Functions**: Jede Funktion testbar mit max. 3-4 Assertions

Liefere:
- Refactored Production Code
- Passende Unit Tests (Jest/Vitest)
- Mock/Stub Beispiele für Dependencies</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Natürlich kannst du den Ansatz an deine Bedürfnisse anpassen.</p>



<h2 class="wp-block-heading" id="documentation">Prompt 9: Code dokumentieren</h2>



<p>Deshalb lohnt es sich, dieses Thema genauer zu betrachten.</p>



<pre class="wp-block-code"><code>Dokumentiere diesen Code:

```
[Code hier einfügen]
```

Erstelle:
1. **JSDoc/TSDoc Kommentare** für alle exportierten Funktionen:
   - @description: Was macht die Funktion
   - @param: Parameter mit Typ und Beschreibung
   - @returns: Rückgabewert
   - @throws: Mögliche Fehler
   - @example: Mindestens ein Verwendungsbeispiel

2. **Inline-Kommentare** nur für komplexe Logik:
   - WARUM, nicht WAS (der Code zeigt WAS)
   - Business-Regeln erklären
   - Workarounds markieren mit TODO/HACK

3. **README.md** für das Modul:
   - Zweck und Kontext
   - Installation/Setup
   - API-Dokumentation
   - Beispiele

4. **ADR** (Architecture Decision Record) wenn relevante Design-Entscheidungen erkennbar</code></pre>



<p>Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Zusammenfassend bietet dieser Abschnitt praktische Handlungsempfehlungen.</p>



<h2 class="wp-block-heading" id="legacy">Prompt 10: Legacy Code modernisieren</h2>



<p>Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.</p>



<pre class="wp-block-code"><code>Modernisiere diesen Legacy Code:

```
[Legacy Code hier einfügen]
```

Sprache: [z.B. "JavaScript ES5 → TypeScript"]
Framework: [z.B. "jQuery → React" oder "Express → Hono"]

Modernisierung:
1. **Sprach-Features**: var → const/let, Callbacks → async/await, 
   Classes → Functions, etc.
2. **TypeScript**: Typen hinzufügen, Interfaces definieren
3. **Patterns**: MVC → Clean Architecture, Global State → Zustand
4. **Dependencies**: Veraltete Packages durch moderne Alternativen ersetzen
5. **Security Fixes**: Bekannte Schwachstellen in alten APIs
6. **Performance**: Ineffiziente Patterns durch moderne ersetzen

Migrationsstrategie:
- Schrittweiser Plan (nicht alles auf einmal)
- Strangler Fig Pattern verwenden
- Tests vor der Migration schreiben
- Rollback-Plan für jeden Schritt</code></pre>



<p>Insbesondere die Struktur des Prompts ist dabei entscheidend für gute Ergebnisse.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Tatsächlich zeigt die Praxis, dass dieser Ansatz sehr effektiv ist.</p>



<h2 class="wp-block-heading" id="checkliste">Clean Code Checkliste</h2>



<p>Natürlich gibt es dabei verschiedene Herangehensweisen.</p>



<p>Nutze diesen Prompt vor jedem Commit:</p>



<pre class="wp-block-code"><code>Schnellcheck für meinen Code (Ja/Nein mit kurzer Begründung):

```
[Code hier einfügen]
```

□ Verständliche Benennung? (Kann ein neuer Entwickler den Code lesen?)
□ Funktionen unter 20 Zeilen?
□ Max. 2 Verschachtelungsebenen?
□ Kein auskommentierter Code?
□ Error Handling vorhanden?
□ Keine Magic Numbers/Strings?
□ Keine Duplikate?
□ Typen korrekt (kein `any`)?
□ Edge Cases behandelt?
□ Testbar?</code></pre>



<p>Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Ebenfalls empfehlenswert ist eine regelmäßige Überprüfung der Ergebnisse.</p>



<h2 class="wp-block-heading" id="faq-clean">FAQ</h2>



<h3 class="wp-block-heading">Kann AI wirklich Clean Code bewerten?</h3>



<p>Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.</p>



<p>Ja – und oft besser als Junior/Mid-Level Entwickler. AI kennt alle Patterns aus Millionen von Repos. Schwäche: Kontext der Business-Logik. AI weiß nicht warum Code so geschrieben wurde. Deshalb: AI als zweite Meinung, nicht als alleinige Autorität.</p>



<h3 class="wp-block-heading">Sollte ich den gesamten Code refactoren?</h3>



<p>Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.</p>



<p>Nein! <strong>Boy Scout Rule</strong>: Lass den Code immer etwas sauberer zurück als du ihn vorgefunden hast. Refactore nur Code den du ohnehin anfasst. Vollständiges Refactoring nur mit Test-Coverage.</p>



<h3 class="wp-block-heading">Welches AI-Tool ist am besten für Code Reviews?</h3>



<p>Weiterhin ist es wichtig, die Grundlagen zu verstehen.</p>



<p>Claude für gründliche Reviews (beste Analyse). ChatGPT für schnelle Checks. GitHub Copilot Code Review für automatisierte PR-Reviews. Am besten: Kombination aus AI Review + menschlichem Review.</p>



<h3 class="wp-block-heading">Clean Code vs. Performance?</h3>



<p>Dementsprechend solltest du die folgenden Aspekte kennen.</p>



<p>In 99% der Fälle gibt es keinen Konflikt. Sauberer Code ist oft auch performanter (weniger unnötige Operationen). Optimiere erst clean, dann mit Profiler die echten Bottlenecks finden. Premature Optimization ist die Wurzel allen Übels.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Dabei ist der folgende Punkt besonders wichtig.</p>



<p><strong>Verwandte Artikel:</strong></p>



<ul class="wp-block-list"><li><a href="/artikel/prompt-engineering-fuer-entwickler">Prompt Engineering für Entwickler</a></li><li><a href="/artikel/50-chatgpt-prompts-fuer-entwickler">50 ChatGPT Prompts für Entwickler</a></li><li><a href="/artikel/ai-gestuetztes-datenbank-design">AI-gestütztes Datenbank-Design</a></li></ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Deshalb ist es wichtig, diesen Abschnitt aufmerksam zu lesen.</p>



<p style="font-style:italic">Zuletzt aktualisiert: März 2026</p>
<p>Der Beitrag <a href="https://www.metincelik.de/kuenstliche-intelligenz/clean-code-mit-ai/">Clean Code mit AI schreiben</a> erschien zuerst auf <a href="https://www.metincelik.de">MetinCelik.de</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
