[{"data":1,"prerenderedAt":342},["ShallowReactive",2],{"navigation":3,"\u002Flabs\u002Fkimi-vs-minimax-refactoring":30,"\u002Flabs\u002Fkimi-vs-minimax-refactoring-surround":339},[4],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Labs","\u002Flabs","labs",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"Der Harness-Prozess: Warum 2026 das Jahr der kontrollierten KI-Autonomie ist","\u002Flabs\u002Fagentic-harness-2026","labs\u002Fagentic-harness-2026",{"title":14,"path":15,"stem":16},"AnythingLLM: Eigene Wissensbasis, eigenes Modell, null Cloud-Zwang","\u002Flabs\u002Fanythingllm-local-rag","labs\u002Fanythingllm-local-rag",{"title":18,"path":19,"stem":20},"Claude Code als Agentic Development Partner","\u002Flabs\u002Fclaude-agent","labs\u002Fclaude-agent",{"title":22,"path":23,"stem":24},"Hermes-Agent als persönlicher CTO","\u002Flabs\u002Fhermes-agent-cto","labs\u002Fhermes-agent-cto",{"title":26,"path":27,"stem":28},"Kimi K2.5 vs Minimax M2.7 beim Refactoring","\u002Flabs\u002Fkimi-vs-minimax-refactoring","labs\u002Fkimi-vs-minimax-refactoring",false,{"id":31,"title":26,"author":32,"body":34,"date":327,"description":328,"extension":329,"image":330,"meta":331,"minRead":332,"navigation":333,"path":27,"seo":334,"stem":28,"tags":335,"__hash__":338},"lab\u002Flabs\u002Fkimi-vs-minimax-refactoring.md",{"name":33},"Bernd D.H. Martin",{"type":35,"value":36,"toc":312},"minimark",[37,41,46,49,52,58,69,73,78,81,84,88,103,108,130,135,151,155,158,161,164,167,174,178,191,195,203,207,295,299,304,309],[38,39,40],"p",{},"Benchmarks sagen wenig über den echten Arbeitsalltag. Deshalb habe ich beide Modelle mit einer konkreten Aufgabe konfrontiert, die ich regelmäßig mache: Legacy-Code verstehen und sauber umbauen.",[42,43,45],"h2",{"id":44},"der-testfall","Der Testfall",[38,47,48],{},"Ein Angular-Service aus einem älteren Projekt – ca. 340 Zeilen TypeScript, gewachsen über drei Jahre, mit mehreren Verantwortlichkeiten in einer Klasse: HTTP-Calls, Caching-Logik, Error-Mapping und State-Management waren untrennbar verwoben. Kein Unit-Test, kein Kommentar.",[38,50,51],{},"Klassischer Fall von \"es funktioniert, niemand will es anfassen\".",[38,53,54],{},[55,56,57],"strong",{},"Der Prompt war identisch für beide Modelle:",[59,60,65],"pre",{"className":61,"code":63,"language":64},[62],"language-text","Analysiere diesen Angular-Service. Erkläre was er macht,\nidentifiziere Probleme und schlage einen Refactoring-Plan vor.\nZeig danach die refactored Version mit sauber getrennten Verantwortlichkeiten.\n","text",[66,67,63],"code",{"__ignoreMap":68},"",[42,70,72],{"id":71},"kimi-k25","Kimi K2.5",[74,75,77],"h3",{"id":76},"analyse","Analyse",[38,79,80],{},"Kimi hat den Code schnell und präzise eingeordnet. Die Erklärung war strukturiert: erst Was, dann Warum es problematisch ist, dann Vorschlag. Keine Umschweife.",[38,82,83],{},"Besonders stark: Kimi hat erkannt, dass das Caching implizit über einen lokalen Array lief – eine Stelle die ich selbst beim Überfliegen übersehen hatte.",[74,85,87],{"id":86},"refactoring-vorschlag","Refactoring-Vorschlag",[38,89,90,91,94,95,98,99,102],{},"Der Umbau war sauber in drei Services aufgeteilt: ",[66,92,93],{},"DataService"," für HTTP, ",[66,96,97],{},"CacheService"," für Caching, ",[66,100,101],{},"ErrorMapperService"," für Fehlerbehandlung. Die Interfaces waren klar definiert, Dependency Injection korrekt.",[38,104,105],{},[55,106,107],{},"Stärken:",[109,110,111,115,118],"ul",{},[112,113,114],"li",{},"Sehr schnelle Verarbeitungszeit",[112,116,117],{},"Erkennt implizite Abhängigkeiten die nicht offensichtlich sind",[112,119,120,121,125,126,129],{},"Erklärt ",[122,123,124],"em",{},"warum"," eine Entscheidung sinnvoll ist, nicht nur ",[122,127,128],{},"was"," zu tun ist",[38,131,132],{},[55,133,134],{},"Schwächen:",[109,136,137,144],{},[112,138,139,140,143],{},"Der generierte Code hatte an einer Stelle eine veraltete RxJS-Syntax (",[66,141,142],{},"combineLatest"," als Array statt Objekt)",[112,145,146,147,150],{},"Bei komplexeren Typen wurde gelegentlich ",[66,148,149],{},"any"," verwendet statt korrekte Generics auszuarbeiten",[42,152,154],{"id":153},"minimax-m27","Minimax M2.7",[74,156,77],{"id":157},"analyse-1",[38,159,160],{},"Minimax war in der Analyse ausführlicher – fast zu ausführlich. Die Erklärung war vollständig, aber strukturell weniger klar. Man merkt, dass das Modell stark auf Vollständigkeit optimiert ist.",[38,162,163],{},"Was Minimax besser gemacht hat: Die Erklärung der Abhängigkeitskette war detaillierter. Für jemanden der den Code wirklich nicht kennt, ist Minimaxs Erklärung zugänglicher.",[74,165,87],{"id":166},"refactoring-vorschlag-1",[38,168,169,170,173],{},"Minimax hat stärker auf moderne Angular-Patterns gesetzt – Signals statt BehaviorSubject, ",[66,171,172],{},"inject()"," statt Konstruktor-Injection. Das ist aktueller, aber in einem Legacy-Projekt nicht immer der richtige erste Schritt.",[38,175,176],{},[55,177,107],{},[109,179,180,183,186],{},[112,181,182],{},"Kennt aktuelle Framework-Patterns sehr gut",[112,184,185],{},"Ausführlichere Erklärungen, gut für Onboarding oder Dokumentation",[112,187,188,189],{},"Typen waren durchgehend korrekt – kein ",[66,190,149],{},[38,192,193],{},[55,194,134],{},[109,196,197,200],{},[112,198,199],{},"Tendenz zu Over-Engineering beim ersten Schritt (Signals einführen obwohl nicht gefragt)",[112,201,202],{},"Antwortzeit spürbar langsamer als Kimi",[42,204,206],{"id":205},"head-to-head-vergleich","Head-to-Head Vergleich",[208,209,210,224],"table",{},[211,212,213],"thead",{},[214,215,216,220,222],"tr",{},[217,218,219],"th",{},"Kriterium",[217,221,72],{},[217,223,154],{},[225,226,227,239,249,262,273,284],"tbody",{},[214,228,229,233,236],{},[230,231,232],"td",{},"Analyse-Präzision",[230,234,235],{},"Sehr gut",[230,237,238],{},"Gut, aber verbose",[214,240,241,244,247],{},[230,242,243],{},"Refactoring-Qualität",[230,245,246],{},"Gut",[230,248,235],{},[214,250,251,254,260],{},[230,252,253],{},"Typ-Korrektheit",[230,255,256,257,259],{},"Mittel (gelegentlich ",[66,258,149],{},")",[230,261,235],{},[214,263,264,267,270],{},[230,265,266],{},"Framework-Aktualität",[230,268,269],{},"Solide",[230,271,272],{},"Ausgezeichnet",[214,274,275,278,281],{},[230,276,277],{},"Erklärungsqualität",[230,279,280],{},"Prägnant",[230,282,283],{},"Ausführlich",[214,285,286,289,292],{},[230,287,288],{},"Geschwindigkeit",[230,290,291],{},"Schnell",[230,293,294],{},"Langsamer",[42,296,298],{"id":297},"fazit-wann-welches-modell","Fazit: Wann welches Modell?",[38,300,301,303],{},[55,302,72],{}," ist mein erster Griff wenn ich schnell verstehen will was ein Code-Stück macht und einen pragmatischen Umbauplan brauche. Die Kürze und Geschwindigkeit gewinnen im Alltag.",[38,305,306,308],{},[55,307,154],{}," setze ich ein wenn ich in ein unbekanntes Framework einsteige oder wenn eine ausführliche, dokumentationsreife Erklärung gebraucht wird. Der stärkere Fokus auf aktuelle Patterns ist ein echter Vorteil sobald das Projekt sowieso modernisiert werden soll.",[38,310,311],{},"Für reines Legacy-Refactoring ohne Modernisierungsauftrag: Kimi. Für Refactoring mit gleichzeitigem Upgrade auf aktuelle Patterns: Minimax.",{"title":68,"searchDepth":313,"depth":313,"links":314},2,[315,316,321,325,326],{"id":44,"depth":313,"text":45},{"id":71,"depth":313,"text":72,"children":317},[318,320],{"id":76,"depth":319,"text":77},3,{"id":86,"depth":319,"text":87},{"id":153,"depth":313,"text":154,"children":322},[323,324],{"id":157,"depth":319,"text":77},{"id":166,"depth":319,"text":87},{"id":205,"depth":313,"text":206},{"id":297,"depth":313,"text":298},"2026-03-10","Direkter Vergleich zweier starker Modelle bei der Arbeit mit Legacy-Code – gleicher Prompt, gleiche Aufgabe, unterschiedliche Ergebnisse.","md","\u002Flabs\u002Fkimi-vs-minimax.svg",{},null,true,{"title":26,"description":328},[336,337],"Kimi","Minimax","qXIj8xCkW3FrjOLrgfom-u0YR-Lq8yQZaYpJcG1nkFc",[340,332],{"title":22,"path":23,"stem":24,"description":341,"children":-1},"Erste Erfahrungen mit Hermes als autonom arbeitendem Agenten – was funktioniert, wo der Mensch noch gebraucht wird, und warum das Konzept trotzdem überzeugt.",1774958748182]