{"content_id":"sjuxeehxgw","slug":"vibe-coding-project-architecture-and-four-hour-rescue-sprint","locale":"de","schema_type":"TechArticle","category":"how_to","category_name":"Anleitungen","title":"Strukturelle Probleme bei Vibe-Coding-Projekten und ein 4-Stunden-Rettungssprint","summary":"Wenn Vibe-Coding-Projekte kurz vor der Veröffentlichung ins Stocken geraten, kann die Ursache weniger in der Prompt-Kompetenz als in unklaren Strukturen, inkonsistentem Code und den Grenzen zwischen externen Diensten liegen. Eine 4-Stunden-Rettung ist keine Methode, die einen vollständig fertigen Dienst garantiert, sondern ein bedingter Sprint, bei dem der Umfang festgelegt und der Kernablauf neu implementiert wird, um eine lauffähige Ausgangsbasis zu schaffen.","author":{"name":"injoys","url":"https://injoys.com/ko/about"},"key_points":["React, Next.js und Supabase sind nicht an sich problematisch; die Komplexität wächst jedoch schnell, wenn sie ohne klare Verantwortungsgrenzen und Implementierungsregeln kombiniert werden.","AI bewahrt die Designabsicht und die Betriebsbedingungen eines gesamten Repositorys nicht automatisch, sodass dieselbe Funktion nach unterschiedlichen Mustern implementiert werden kann.","Ruby on Rails reduziert durch Konventionen und integrierte Komponenten die Zahl der Wahlmöglichkeiten, löst aber Zahlungen, Sicherheitsprüfungen und die Betriebsvorbereitung nicht automatisch.","Eine 4-Stunden-Rettung ist eine anfängliche Neuentwicklung oder Stabilisierung, die bei festgelegten Anforderungen, einem eng begrenzten Kernumfang, vorbereiteten Konten und Infrastrukturen sowie einer erfahrenen Fachkraft möglich ist.","Ob bestehender Code weiter korrigiert oder neu entwickelt werden soll, muss nicht nur anhand seines Zustands entschieden werden, sondern auch durch den Vergleich von Datenmigration, externen Integrationen, Tests, Teamkompetenzen und Veröffentlichungsrisiken."],"content_markdown":"Vibe Coding bezeichnet eine Arbeitsweise, bei der Anwendungen mithilfe natürlichsprachlicher Anweisungen und KI-Coding-Tools schnell umgesetzt werden. In der Anfangsphase wachsen Benutzeroberfläche und Funktionsumfang rasch, doch je näher die Veröffentlichung rückt, desto eher treten Probleme zutage, die mehrere Ebenen betreffen, etwa Authentifizierung, Daten, Zahlungen und Deployment.\n\nDieses Phänomen sollte weder allein durch Mängel eines bestimmten Technologie-Stacks noch ausschließlich durch die Prompt-Fähigkeiten der Nutzer erklärt werden. Entscheidend ist, **wer die strukturelle Konsistenz kontrolliert**, **ob die Verantwortung jeder Komponente klar definiert ist** und **ob Tests vorhanden sind, mit denen sich die Fertigstellung überprüfen lässt**.\n\n## Warum Vibe-Coding-Projekte in der Schlussphase ins Stocken geraten\n\n### Eine fertige Benutzeroberfläche ist nicht dasselbe wie ein fertiger Dienst\n\nIn der frühen Entwicklungsphase entstehen sichtbare Ergebnisse wie Schaltflächen, Eingabeformulare und Listen schnell. Ein realer Dienst benötigt jedoch die folgenden unsichtbaren Voraussetzungen.\n\n- Berechtigungsprüfungen, die sicherstellen, dass Nutzer nur auf ihre eigenen Daten zugreifen\n- Datenverarbeitung, die doppelte Anfragen und Wiederholungsversuche bei Netzwerkfehlern verkraftet\n- Prüfung von Zahlungserfolg, Fehlschlag, Stornierung, Rückerstattung und Webhooks\n- Validierung von Eingabewerten und Fehlerbehebung\n- Datenbankänderungen und Migration vorhandener Daten\n- Verwaltung geheimer Schlüssel, Protokollierung, Monitoring, Sicherung und Wiederherstellung\n- Automatisierte Tests, die gewährleisten, dass zentrale Funktionen auch nach dem Deployment erhalten bleiben\n\nAllein die Tatsache, dass die Benutzeroberfläche funktioniert, bedeutet nicht, dass diese Voraussetzungen erfüllt sind. Fehler, die in der Schlussphase entdeckt werden, sind häufig nicht plötzlich entstanden, sondern haben sich angesammelt, weil sie bei der anfänglichen Implementierung nicht überprüft wurden.\n\n### KI kann die Entwurfsabsicht des gesamten Repositorys nicht immer aufrechterhalten\n\nKI-Coding-Tools erzeugen Änderungsvorschläge anhand der bereitgestellten Dateien, des Gesprächskontexts, des gefundenen Codes und der Anweisungen. Wenn die Projektregeln nicht dokumentiert sind, können folgende Inkonsistenzen entstehen.\n\n- Dieselbe Datenabfrage wird in Serverkomponenten, API-Routen und Browsercode jeweils unterschiedlich implementiert\n- Der Authentifizierungsstatus wird redundant in Cookies, im Clientstatus und in einem externen SDK verwaltet\n- Dieselben Validierungsregeln werden in Benutzeroberfläche und Server unterschiedlich formuliert\n- Statt Fehler grundlegend zu beheben, werden lediglich Ausnahmebehandlungen oder Bedingungen ergänzt\n- Ähnliche Funktionen und Datenmodelle werden wiederholt erzeugt, weil vorhandene Abstraktionen nicht gefunden werden\n\nWenn in diesem Zustand ein neuer Fehler behoben wird, kann die Änderung auf einer Ebene die Annahmen einer anderen Ebene verletzen. Nutzer haben dann den Eindruck, dass sich die KI im Kreis dreht. Tatsächlich kann jedoch eine einheitliche Struktur mit klaren Prüfkriterien fehlen, an die sich die KI halten könnte.\n\n## Die Kombination aus React, Next.js und Supabase richtig verstehen\n\nEs ist nicht zutreffend, React, Next.js und Supabase pauschal als schlechten modular zusammengesetzten Stack zu bezeichnen. Jede dieser Technologien besitzt eine eigenständige, weitverbreitete Rolle und eigene Vorteile.\n\n| Technologie | Grundlegende Rolle | Im Projekt zu entscheidende Punkte |\n|---|---|---|\n| React | Bibliothek zum Aufbau von Benutzeroberflächen | Zustandsverwaltung, Datenanfragen, Komponentengrenzen |\n| Next.js | React-basiertes Full-Stack-Webframework | Rendering-Methode, Server-Client-Grenzen, Cache- und API-Struktur |\n| Supabase | Backend-Plattform, die PostgreSQL, Authentifizierung, Storage und weitere Funktionen bereitstellt | Zugriffsrichtlinien, Datenmodell, Sitzungsverarbeitung, Dienstberechtigungen |\n| Ruby on Rails | Serverzentriertes, integriertes Framework für Webanwendungen | Modelle, Controller, Jobs, E-Mails und Deployment-Konfiguration gemäß Rails-Konventionen |\n\nNext.js ist nicht nur für die Benutzeroberfläche zuständig, sondern stellt auch Serverfunktionen bereit. Supabase ist ebenfalls nicht bloß eine Datenbank, sondern kann unter anderem Authentifizierung und Storage umfassen. Probleme entstehen, wenn bei der Nutzung mehrerer Funktionen **nicht festgelegt wird, wo die endgültige Verantwortung für Berechtigungen und Geschäftsregeln liegt**.\n\nWenn beispielsweise die Regeln zur Auftragserstellung über Browsercode, Next.js-Serverrouten und Supabase-Datenbankrichtlinien verteilt sind, lassen sich Fehler nur schwer nachverfolgen. Wird dagegen festgelegt, dass Schreibvorgänge über eine serverseitige Serviceschicht laufen und Datenbankrichtlinien als letzte Verteidigungslinie dienen, kann derselbe Stack stabil betrieben werden.\n\n## Warum Ruby on Rails eine Alternative sein kann\n\n### Weniger Auswahlmöglichkeiten durch Konvention vor Konfiguration\n\nDas zentrale Prinzip von Ruby on Rails, Konvention vor Konfiguration, vereinheitlicht wiederkehrende strukturelle Entscheidungen anhand der Standardregeln des Frameworks. Die Position und Verknüpfung von Modellen, Controllern, Datenbankänderungen, Jobs, E-Mails und Tests sind vergleichsweise vorhersehbar.\n\nBeim KI-Coding ist diese Vorhersehbarkeit besonders nützlich. Klare Konventionen verringern die Wahrscheinlichkeit, dass die KI neue Funktionen nach völlig anderen Mustern hinzufügt, und erleichtern Menschen die Überprüfung von Änderungen.\n\n### Gemeinsame Webdienst-Funktionen in einem System behandeln\n\nRails bietet offizielle Komponenten und Pfade für Datenbankzugriff, Routing, serverseitiges Rendering, asynchrone Jobs, E-Mails, Echtzeitkommunikation, Tests und Deployment. Dadurch lässt sich die Zahl der Verbindungsstellen zwischen separaten Tools reduzieren.\n\nAllerdings gibt es auch klare Einschränkungen.\n\n- Für die Zahlungsabwicklung wird weiterhin ein externer Zahlungsdienstleister wie Stripe benötigt.\n- Eine Administrationsoberfläche wird nicht automatisch passend für sämtliche Anforderungen fertiggestellt.\n- Auch wenn Authentifizierungsfunktionen generiert oder mithilfe einer Bibliothek eingerichtet werden, bleiben die Berechtigungskonzeption und Sicherheitsprüfung separate Aufgaben.\n- Komplexe Echtzeitoberflächen oder eigenständige mobile APIs erfordern zusätzliche Planung.\n- Ein Team ohne Rails-Erfahrung muss mit Kosten für Schulung und Personalbeschaffung rechnen.\n\nRails ist somit kein Werkzeug, mit dem die KI sämtliche Probleme löst, sondern **eine Option, die den grundlegenden Pfad eingrenzt, dem KI und Menschen folgen sollen**.\n\n## Was sich in 4 Stunden lösen lässt\n\nEs gibt keine allgemeingültige Grundlage für die Annahme, dass ein beliebiger Dienst einschließlich Anmeldung, Zahlung, Verwaltungsfunktionen, Datenmigration, Sicherheitsprüfung und produktivem Deployment innerhalb von 4 Stunden fertiggestellt werden kann. Realistische Ziele für 4 Stunden sind folgende.\n\n- Die aktuelle Struktur und die Fehlerstellen werden ermittelt.\n- Es wird zwischen Wartung und Neuimplementierung gewählt.\n- Ein besonders wichtiger Nutzerablauf wird funktionsfähig gemacht.\n- Eine neue, testbare Ausgangsbasis wird geschaffen.\n- Wenn möglich, erfolgt ein Deployment in einer Staging-Umgebung.\n- Verbleibende Risiken und Folgeaufgaben werden aufgelistet.\n\n### Voraussetzungen für eine Neuimplementierung in 4 Stunden\n\nJe mehr der folgenden Voraussetzungen erfüllt sind, desto eher ist eine kurzfristige Neuimplementierung möglich.\n\n1. Die benötigten Ansichten und Nutzerabläufe sind bereits festgelegt.\n2. Die zentralen Datenfelder und Beziehungen sind geklärt.\n3. Anstatt das Design erneut zu diskutieren, können die vorhandenen Ansichten als Referenz verwendet werden.\n4. Auf Repository, Domain, Deployment-Umgebung und Konten externer Dienste kann sofort zugegriffen werden.\n5. Die Migration vorhandener Daten kann ausgelassen oder auf eine kleine Stichprobe beschränkt werden.\n6. Zahlungen werden auf einen engen Umfang wie den standardmäßigen Erfolgsablauf in einer Sandbox begrenzt.\n7. Eine mit Rails und der Deployment-Umgebung vertraute Person überprüft die Ausgaben der KI.\n\nAuch hierin liegt der Nutzen eines bestehenden Projekts, an dem mehrere Monate lang gearbeitet wurde. Wenn in dieser Zeit Nutzerabläufe, Pflichtfelder, Fehlerfälle und Prioritäten konkretisiert wurden, verkürzt sich der Rechercheaufwand. Das bedeutet jedoch nicht, dass die Planung automatisch perfekt geworden ist. Wiederverwendet werden sollten nur Anforderungen, die im bestehenden Projekt validiert wurden.\n\n## Praktischer 4-Stunden-Wiederherstellungssprint\n\n| Zeit | Aufgabe | Minimales Ergebnis |\n|---|---|---|\n| 0:00~0:30 | Repository und Betriebszustand sichern, Technologie-Stack untersuchen | Sicherung, Komponentenliste, Prüfung auf offengelegte Geheimnisse |\n| 0:30~1:00 | Zentralen Ablauf und Datenmodell festlegen, über Reparatur oder Neuimplementierung entscheiden | Umfang in einem Satz, Fertigstellungskriterien, Risikoliste |\n| 1:00~2:00 | Rails-Ausgangsbasis oder strukturelle Korrektur des bestehenden Projekts | Ausführbare App, Datenmodell, Authentifizierungsgerüst |\n| 2:00~3:15 | Zentralen Nutzerablauf vertikal implementieren | Ein durchgängiger Ablauf von der Benutzeroberfläche bis zur Datenspeicherung samt Test |\n| 3:15~3:45 | Externe Integrationen minimal konfigurieren und Staging-Deployment durchführen | Sandbox-Integration, Deployment-URL, Umgebungsvariablen-Konfiguration |\n| 3:45~4:00 | Smoke-Test und Übergabe | Erfolgs- und Fehlerergebnisse, offene Punkte, Reihenfolge der nächsten Aufgaben |\n\n### Schritt 1: Das Original sichern\n\nVor Änderungen wird ein separater Branch oder eine Kopie des Repositorys erstellt und die Datenbank gesichert. API-Schlüssel, Datenbankpasswörter und personenbezogene Daten dürfen nicht in KI-Gespräche eingefügt werden. Wurden sie bereits offengelegt, ist es sicherer, die betreffenden Geheimnisse zu widerrufen und neu auszustellen.\n\n### Schritt 2: Den Technologie-Stack anhand von Belegen untersuchen\n\nDie KI sollte den Technologie-Stack nicht einfach erraten, sondern aufgefordert werden, die folgenden Materialien zu prüfen.\n\n- Manifest- und Lockdateien, in denen Pakete und Versionen verzeichnet sind\n- Datenbankschema und Migrationen\n- Dateien zur Verarbeitung von Authentifizierung und Sitzungen\n- API-Routen und Serverfunktionen\n- Deployment-Einstellungen, Namen von Umgebungsvariablen und SDKs externer Dienste\n- Automatisierte Tests und Einstellungen für Continuous Integration\n\nEin Beispiel für eine verwendbare Anfrage lautet:\n\n\u003e Lies das Repository und fasse Frontend, Server, Datenbank, Authentifizierung, Storage, Zahlung, Deployment und Testwerkzeuge in einer Tabelle zusammen. Nenne die Dateipfade, die jede Einschätzung belegen, und markiere Stellen mit doppelten Geschäftsregeln sowie mögliche Verletzungen der Server-Client-Grenzen. Ändere den Code noch nicht und gib keine geheimen Werte aus.\n\n### Schritt 3: Nur einen zentralen vertikalen Ablauf auswählen\n\nEin vertikaler Ablauf ist ein vollständiger Pfad, der von der Benutzeroberfläche über die Serverlogik bis zur Datenspeicherung reicht. Beispiele dafür sind:\n\n- Registrierung → Anmeldung → Profilabruf\n- Produktauswahl → Auftragserstellung → Genehmigung der Zahlung in der Sandbox\n- Administratoranmeldung → Beitrag erstellen → Anzeige auf der öffentlichen Seite\n\nStatt mehrere Ansichten gleichzeitig zu erstellen, sollten für einen zentralen Ablauf Erfolg, fehlende Berechtigung und ungültige Eingaben überprüft werden. Dadurch werden strukturelle Risiken schneller sichtbar.\n\n### Schritt 4: Fertigstellungskriterien durch Tests festschreiben\n\nWird die KI nur mit der Implementierung einer Funktion beauftragt, kann Code entstehen, der lediglich auf einen sichtbaren Erfolgsfall zugeschnitten ist. Mindestens die folgenden Bedingungen sollten durch automatisierte Tests oder eine wiederholbare Prüfliste festgeschrieben werden.\n\n- Ein regulärer Nutzer kann die Aufgabe abschließen.\n- Ein nicht angemeldeter Nutzer kann nicht auf geschützte Daten zugreifen.\n- Auch bei Eingabe der Kennung eines anderen Nutzers ist kein Zugriff auf dessen Daten möglich.\n- Ungültige Eingaben werden nicht gespeichert und führen zu einer verständlichen Fehlermeldung.\n- Dieselbe Zahlungs- oder Schreibanfrage wird auch bei Wiederholung nicht doppelt verarbeitet.\n\n### Schritt 5: Nur bis zum Staging deployen\n\nDas Deployment eines 4-Stunden-Sprints sollte im Allgemeinen nicht als endgültige Produktivsetzung, sondern als Staging-Validierung betrachtet werden. Bevor echte Nutzer und Zahlungen zugelassen werden, müssen Sicherheit, Datenmigration, Wiederherstellung von Sicherungen, Monitoring und Störungsbehebung separat überprüft werden.\n\n## Kriterien für die Entscheidung zwischen Reparatur und Neuimplementierung\n\n| Situation | Bestehende Struktur beibehalten und reparieren | Neuimplementierung mit Rails oder Ähnlichem prüfen |\n|---|---|---|\n| Kernfunktionen und Tests | Funktionieren größtenteils und Tests sind vorhanden | Selbst zentrale Abläufe brechen wiederholt ab |\n| Daten | Viele Produktivdaten und hohes Migrationsrisiko | Keine Daten oder geringer Migrationsumfang |\n| Struktur | Verantwortungsgrenzen und Muster sind weitgehend konsistent | Dieselbe Funktion ist auf mehreren Ebenen dupliziert |\n| Frontend-Anforderungen | Komplexe Interaktionen und vorhandene React-Ressourcen sind wichtig | Serverzentriertes CRUD und Geschäftsabläufe stehen im Mittelpunkt |\n| Teamkompetenzen | Personal für den Betrieb des aktuellen Stacks ist vorhanden | Rails-Konventionen passen besser zur Arbeitsweise des Teams |\n| Externe Integrationen | Viele stabile Integrationen sind bereits in Betrieb | Integrationen befinden sich in einer frühen Phase oder können ersetzt werden |\n\nEine vollständige Neuentwicklung sollte nicht allein wegen vieler Dateien oder vorhandener Fehler erfolgen. Bei einer Neuentwicklung können bereits gelöste Ausnahmefälle verloren gehen und neue Fehler entstehen. Empfehlenswert ist, zunächst einen kleinen vertikalen Ablauf mit beiden Methoden zu implementieren und Entwicklungsgeschwindigkeit, Testbarkeit, Codeverständlichkeit und Deployment-Risiko zu vergleichen.\n\n## Vor der Veröffentlichung separat zu prüfende Punkte\n\nAuch nach Erstellung einer 4-Stunden-Ausgangsbasis können folgende Punkte offenbleiben.\n\n- Prüfung des Berechtigungsmodells und der Rails-Sicherheitseinstellungen\n- Signaturen von Zahlungs-Webhooks, Vermeidung doppelter Verarbeitung sowie Bearbeitung von Stornierungen und Rückerstattungen\n- Migration von Produktivdaten und Überprüfung von Datensatzanzahl und Summen\n- Datenbanksicherung und tatsächlicher Wiederherstellungstest\n- Fehlerverfolgung, Protokollaufbewahrung und Verfügbarkeitsmonitoring\n- Lasttests und Kostenschätzung\n- Datenschutz, Nutzungsbedingungen und zugehörige rechtliche Prüfung\n- Prüfung von Barrierefreiheit sowie Browser- und Mobilumgebungen\n- Rollback-Verfahren bei Störungen und Festlegung der verantwortlichen Personen\n\n## Fazit\n\nDas Stocken von Vibe-Coding-Projekten in der Schlussphase lässt sich nicht allein durch die Coding-Fähigkeiten der KI erklären. Werden bei einer Konfiguration mit vielen Freiheitsgraden keine Regeln, Verantwortungsgrenzen, Tests und Betriebskriterien festgelegt, können die lokalen Lösungen der KI leicht miteinander kollidieren.\n\nRuby on Rails kann eine praktische Alternative sein, die diese Freiheitsgrade durch Konventionen und eine integrierte Struktur reduziert. Dennoch ist es nicht immer richtig, jedes Projekt mit Rails neu zu erstellen. Zunächst sollte der aktuelle Stack evidenzbasiert untersucht und ein zentraler Ablauf festgelegt werden. Die 4 Stunden sollten anschließend **nicht als Zeit zur Herstellung eines fertigen Produkts, sondern als Zeit zur Validierung der Struktur und zur Schaffung einer wiederherstellbaren Ausgangsbasis** genutzt werden.","content_html":"\u003cp\u003eVibe Coding bezeichnet eine Arbeitsweise, bei der Anwendungen mithilfe natürlichsprachlicher Anweisungen und KI-Coding-Tools schnell umgesetzt werden. In der Anfangsphase wachsen Benutzeroberfläche und Funktionsumfang rasch, doch je näher die Veröffentlichung rückt, desto eher treten Probleme zutage, die mehrere Ebenen betreffen, etwa Authentifizierung, Daten, Zahlungen und Deployment.\u003c/p\u003e\n\u003cp\u003eDieses Phänomen sollte weder allein durch Mängel eines bestimmten Technologie-Stacks noch ausschließlich durch die Prompt-Fähigkeiten der Nutzer erklärt werden. Entscheidend ist, \u003cstrong\u003ewer die strukturelle Konsistenz kontrolliert\u003c/strong\u003e, \u003cstrong\u003eob die Verantwortung jeder Komponente klar definiert ist\u003c/strong\u003e und \u003cstrong\u003eob Tests vorhanden sind, mit denen sich die Fertigstellung überprüfen lässt\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#warum-vibe-coding-projekte-in-der-schlussphase-ins-stocken-geraten\" class=\"anchor\" id=\"warum-vibe-coding-projekte-in-der-schlussphase-ins-stocken-geraten\"\u003e\u003c/a\u003eWarum Vibe-Coding-Projekte in der Schlussphase ins Stocken geraten\u003c/h2\u003e\n\u003ch3\u003e\n\u003ca href=\"#eine-fertige-benutzeroberfl%C3%A4che-ist-nicht-dasselbe-wie-ein-fertiger-dienst\" class=\"anchor\" id=\"eine-fertige-benutzeroberfläche-ist-nicht-dasselbe-wie-ein-fertiger-dienst\"\u003e\u003c/a\u003eEine fertige Benutzeroberfläche ist nicht dasselbe wie ein fertiger Dienst\u003c/h3\u003e\n\u003cp\u003eIn der frühen Entwicklungsphase entstehen sichtbare Ergebnisse wie Schaltflächen, Eingabeformulare und Listen schnell. Ein realer Dienst benötigt jedoch die folgenden unsichtbaren Voraussetzungen.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBerechtigungsprüfungen, die sicherstellen, dass Nutzer nur auf ihre eigenen Daten zugreifen\u003c/li\u003e\n\u003cli\u003eDatenverarbeitung, die doppelte Anfragen und Wiederholungsversuche bei Netzwerkfehlern verkraftet\u003c/li\u003e\n\u003cli\u003ePrüfung von Zahlungserfolg, Fehlschlag, Stornierung, Rückerstattung und Webhooks\u003c/li\u003e\n\u003cli\u003eValidierung von Eingabewerten und Fehlerbehebung\u003c/li\u003e\n\u003cli\u003eDatenbankänderungen und Migration vorhandener Daten\u003c/li\u003e\n\u003cli\u003eVerwaltung geheimer Schlüssel, Protokollierung, Monitoring, Sicherung und Wiederherstellung\u003c/li\u003e\n\u003cli\u003eAutomatisierte Tests, die gewährleisten, dass zentrale Funktionen auch nach dem Deployment erhalten bleiben\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAllein die Tatsache, dass die Benutzeroberfläche funktioniert, bedeutet nicht, dass diese Voraussetzungen erfüllt sind. Fehler, die in der Schlussphase entdeckt werden, sind häufig nicht plötzlich entstanden, sondern haben sich angesammelt, weil sie bei der anfänglichen Implementierung nicht überprüft wurden.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#ki-kann-die-entwurfsabsicht-des-gesamten-repositorys-nicht-immer-aufrechterhalten\" class=\"anchor\" id=\"ki-kann-die-entwurfsabsicht-des-gesamten-repositorys-nicht-immer-aufrechterhalten\"\u003e\u003c/a\u003eKI kann die Entwurfsabsicht des gesamten Repositorys nicht immer aufrechterhalten\u003c/h3\u003e\n\u003cp\u003eKI-Coding-Tools erzeugen Änderungsvorschläge anhand der bereitgestellten Dateien, des Gesprächskontexts, des gefundenen Codes und der Anweisungen. Wenn die Projektregeln nicht dokumentiert sind, können folgende Inkonsistenzen entstehen.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDieselbe Datenabfrage wird in Serverkomponenten, API-Routen und Browsercode jeweils unterschiedlich implementiert\u003c/li\u003e\n\u003cli\u003eDer Authentifizierungsstatus wird redundant in Cookies, im Clientstatus und in einem externen SDK verwaltet\u003c/li\u003e\n\u003cli\u003eDieselben Validierungsregeln werden in Benutzeroberfläche und Server unterschiedlich formuliert\u003c/li\u003e\n\u003cli\u003eStatt Fehler grundlegend zu beheben, werden lediglich Ausnahmebehandlungen oder Bedingungen ergänzt\u003c/li\u003e\n\u003cli\u003eÄhnliche Funktionen und Datenmodelle werden wiederholt erzeugt, weil vorhandene Abstraktionen nicht gefunden werden\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWenn in diesem Zustand ein neuer Fehler behoben wird, kann die Änderung auf einer Ebene die Annahmen einer anderen Ebene verletzen. Nutzer haben dann den Eindruck, dass sich die KI im Kreis dreht. Tatsächlich kann jedoch eine einheitliche Struktur mit klaren Prüfkriterien fehlen, an die sich die KI halten könnte.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#die-kombination-aus-react-nextjs-und-supabase-richtig-verstehen\" class=\"anchor\" id=\"die-kombination-aus-react-nextjs-und-supabase-richtig-verstehen\"\u003e\u003c/a\u003eDie Kombination aus React, Next.js und Supabase richtig verstehen\u003c/h2\u003e\n\u003cp\u003eEs ist nicht zutreffend, React, Next.js und Supabase pauschal als schlechten modular zusammengesetzten Stack zu bezeichnen. Jede dieser Technologien besitzt eine eigenständige, weitverbreitete Rolle und eigene Vorteile.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eTechnologie\u003c/th\u003e\n\u003cth\u003eGrundlegende Rolle\u003c/th\u003e\n\u003cth\u003eIm Projekt zu entscheidende Punkte\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Technologie\"\u003eReact\u003c/td\u003e\n\u003ctd data-label=\"Grundlegende Rolle\"\u003eBibliothek zum Aufbau von Benutzeroberflächen\u003c/td\u003e\n\u003ctd data-label=\"Im Projekt zu entscheidende Punkte\"\u003eZustandsverwaltung, Datenanfragen, Komponentengrenzen\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Technologie\"\u003eNext.js\u003c/td\u003e\n\u003ctd data-label=\"Grundlegende Rolle\"\u003eReact-basiertes Full-Stack-Webframework\u003c/td\u003e\n\u003ctd data-label=\"Im Projekt zu entscheidende Punkte\"\u003eRendering-Methode, Server-Client-Grenzen, Cache- und API-Struktur\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Technologie\"\u003eSupabase\u003c/td\u003e\n\u003ctd data-label=\"Grundlegende Rolle\"\u003eBackend-Plattform, die PostgreSQL, Authentifizierung, Storage und weitere Funktionen bereitstellt\u003c/td\u003e\n\u003ctd data-label=\"Im Projekt zu entscheidende Punkte\"\u003eZugriffsrichtlinien, Datenmodell, Sitzungsverarbeitung, Dienstberechtigungen\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Technologie\"\u003eRuby on Rails\u003c/td\u003e\n\u003ctd data-label=\"Grundlegende Rolle\"\u003eServerzentriertes, integriertes Framework für Webanwendungen\u003c/td\u003e\n\u003ctd data-label=\"Im Projekt zu entscheidende Punkte\"\u003eModelle, Controller, Jobs, E-Mails und Deployment-Konfiguration gemäß Rails-Konventionen\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eNext.js ist nicht nur für die Benutzeroberfläche zuständig, sondern stellt auch Serverfunktionen bereit. Supabase ist ebenfalls nicht bloß eine Datenbank, sondern kann unter anderem Authentifizierung und Storage umfassen. Probleme entstehen, wenn bei der Nutzung mehrerer Funktionen \u003cstrong\u003enicht festgelegt wird, wo die endgültige Verantwortung für Berechtigungen und Geschäftsregeln liegt\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eWenn beispielsweise die Regeln zur Auftragserstellung über Browsercode, Next.js-Serverrouten und Supabase-Datenbankrichtlinien verteilt sind, lassen sich Fehler nur schwer nachverfolgen. Wird dagegen festgelegt, dass Schreibvorgänge über eine serverseitige Serviceschicht laufen und Datenbankrichtlinien als letzte Verteidigungslinie dienen, kann derselbe Stack stabil betrieben werden.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#warum-ruby-on-rails-eine-alternative-sein-kann\" class=\"anchor\" id=\"warum-ruby-on-rails-eine-alternative-sein-kann\"\u003e\u003c/a\u003eWarum Ruby on Rails eine Alternative sein kann\u003c/h2\u003e\n\u003ch3\u003e\n\u003ca href=\"#weniger-auswahlm%C3%B6glichkeiten-durch-konvention-vor-konfiguration\" class=\"anchor\" id=\"weniger-auswahlmöglichkeiten-durch-konvention-vor-konfiguration\"\u003e\u003c/a\u003eWeniger Auswahlmöglichkeiten durch Konvention vor Konfiguration\u003c/h3\u003e\n\u003cp\u003eDas zentrale Prinzip von Ruby on Rails, Konvention vor Konfiguration, vereinheitlicht wiederkehrende strukturelle Entscheidungen anhand der Standardregeln des Frameworks. Die Position und Verknüpfung von Modellen, Controllern, Datenbankänderungen, Jobs, E-Mails und Tests sind vergleichsweise vorhersehbar.\u003c/p\u003e\n\u003cp\u003eBeim KI-Coding ist diese Vorhersehbarkeit besonders nützlich. Klare Konventionen verringern die Wahrscheinlichkeit, dass die KI neue Funktionen nach völlig anderen Mustern hinzufügt, und erleichtern Menschen die Überprüfung von Änderungen.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#gemeinsame-webdienst-funktionen-in-einem-system-behandeln\" class=\"anchor\" id=\"gemeinsame-webdienst-funktionen-in-einem-system-behandeln\"\u003e\u003c/a\u003eGemeinsame Webdienst-Funktionen in einem System behandeln\u003c/h3\u003e\n\u003cp\u003eRails bietet offizielle Komponenten und Pfade für Datenbankzugriff, Routing, serverseitiges Rendering, asynchrone Jobs, E-Mails, Echtzeitkommunikation, Tests und Deployment. Dadurch lässt sich die Zahl der Verbindungsstellen zwischen separaten Tools reduzieren.\u003c/p\u003e\n\u003cp\u003eAllerdings gibt es auch klare Einschränkungen.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFür die Zahlungsabwicklung wird weiterhin ein externer Zahlungsdienstleister wie Stripe benötigt.\u003c/li\u003e\n\u003cli\u003eEine Administrationsoberfläche wird nicht automatisch passend für sämtliche Anforderungen fertiggestellt.\u003c/li\u003e\n\u003cli\u003eAuch wenn Authentifizierungsfunktionen generiert oder mithilfe einer Bibliothek eingerichtet werden, bleiben die Berechtigungskonzeption und Sicherheitsprüfung separate Aufgaben.\u003c/li\u003e\n\u003cli\u003eKomplexe Echtzeitoberflächen oder eigenständige mobile APIs erfordern zusätzliche Planung.\u003c/li\u003e\n\u003cli\u003eEin Team ohne Rails-Erfahrung muss mit Kosten für Schulung und Personalbeschaffung rechnen.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRails ist somit kein Werkzeug, mit dem die KI sämtliche Probleme löst, sondern \u003cstrong\u003eeine Option, die den grundlegenden Pfad eingrenzt, dem KI und Menschen folgen sollen\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#was-sich-in-4-stunden-l%C3%B6sen-l%C3%A4sst\" class=\"anchor\" id=\"was-sich-in-4-stunden-lösen-lässt\"\u003e\u003c/a\u003eWas sich in 4 Stunden lösen lässt\u003c/h2\u003e\n\u003cp\u003eEs gibt keine allgemeingültige Grundlage für die Annahme, dass ein beliebiger Dienst einschließlich Anmeldung, Zahlung, Verwaltungsfunktionen, Datenmigration, Sicherheitsprüfung und produktivem Deployment innerhalb von 4 Stunden fertiggestellt werden kann. Realistische Ziele für 4 Stunden sind folgende.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDie aktuelle Struktur und die Fehlerstellen werden ermittelt.\u003c/li\u003e\n\u003cli\u003eEs wird zwischen Wartung und Neuimplementierung gewählt.\u003c/li\u003e\n\u003cli\u003eEin besonders wichtiger Nutzerablauf wird funktionsfähig gemacht.\u003c/li\u003e\n\u003cli\u003eEine neue, testbare Ausgangsbasis wird geschaffen.\u003c/li\u003e\n\u003cli\u003eWenn möglich, erfolgt ein Deployment in einer Staging-Umgebung.\u003c/li\u003e\n\u003cli\u003eVerbleibende Risiken und Folgeaufgaben werden aufgelistet.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\n\u003ca href=\"#voraussetzungen-f%C3%BCr-eine-neuimplementierung-in-4-stunden\" class=\"anchor\" id=\"voraussetzungen-für-eine-neuimplementierung-in-4-stunden\"\u003e\u003c/a\u003eVoraussetzungen für eine Neuimplementierung in 4 Stunden\u003c/h3\u003e\n\u003cp\u003eJe mehr der folgenden Voraussetzungen erfüllt sind, desto eher ist eine kurzfristige Neuimplementierung möglich.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDie benötigten Ansichten und Nutzerabläufe sind bereits festgelegt.\u003c/li\u003e\n\u003cli\u003eDie zentralen Datenfelder und Beziehungen sind geklärt.\u003c/li\u003e\n\u003cli\u003eAnstatt das Design erneut zu diskutieren, können die vorhandenen Ansichten als Referenz verwendet werden.\u003c/li\u003e\n\u003cli\u003eAuf Repository, Domain, Deployment-Umgebung und Konten externer Dienste kann sofort zugegriffen werden.\u003c/li\u003e\n\u003cli\u003eDie Migration vorhandener Daten kann ausgelassen oder auf eine kleine Stichprobe beschränkt werden.\u003c/li\u003e\n\u003cli\u003eZahlungen werden auf einen engen Umfang wie den standardmäßigen Erfolgsablauf in einer Sandbox begrenzt.\u003c/li\u003e\n\u003cli\u003eEine mit Rails und der Deployment-Umgebung vertraute Person überprüft die Ausgaben der KI.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eAuch hierin liegt der Nutzen eines bestehenden Projekts, an dem mehrere Monate lang gearbeitet wurde. Wenn in dieser Zeit Nutzerabläufe, Pflichtfelder, Fehlerfälle und Prioritäten konkretisiert wurden, verkürzt sich der Rechercheaufwand. Das bedeutet jedoch nicht, dass die Planung automatisch perfekt geworden ist. Wiederverwendet werden sollten nur Anforderungen, die im bestehenden Projekt validiert wurden.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#praktischer-4-stunden-wiederherstellungssprint\" class=\"anchor\" id=\"praktischer-4-stunden-wiederherstellungssprint\"\u003e\u003c/a\u003ePraktischer 4-Stunden-Wiederherstellungssprint\u003c/h2\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eZeit\u003c/th\u003e\n\u003cth\u003eAufgabe\u003c/th\u003e\n\u003cth\u003eMinimales Ergebnis\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e0:00~0:30\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eRepository und Betriebszustand sichern, Technologie-Stack untersuchen\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eSicherung, Komponentenliste, Prüfung auf offengelegte Geheimnisse\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e0:30~1:00\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eZentralen Ablauf und Datenmodell festlegen, über Reparatur oder Neuimplementierung entscheiden\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eUmfang in einem Satz, Fertigstellungskriterien, Risikoliste\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e1:00~2:00\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eRails-Ausgangsbasis oder strukturelle Korrektur des bestehenden Projekts\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eAusführbare App, Datenmodell, Authentifizierungsgerüst\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e2:00~3:15\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eZentralen Nutzerablauf vertikal implementieren\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eEin durchgängiger Ablauf von der Benutzeroberfläche bis zur Datenspeicherung samt Test\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e3:15~3:45\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eExterne Integrationen minimal konfigurieren und Staging-Deployment durchführen\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eSandbox-Integration, Deployment-URL, Umgebungsvariablen-Konfiguration\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Zeit\"\u003e3:45~4:00\u003c/td\u003e\n\u003ctd data-label=\"Aufgabe\"\u003eSmoke-Test und Übergabe\u003c/td\u003e\n\u003ctd data-label=\"Minimales Ergebnis\"\u003eErfolgs- und Fehlerergebnisse, offene Punkte, Reihenfolge der nächsten Aufgaben\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003ch3\u003e\n\u003ca href=\"#schritt-1-das-original-sichern\" class=\"anchor\" id=\"schritt-1-das-original-sichern\"\u003e\u003c/a\u003eSchritt 1: Das Original sichern\u003c/h3\u003e\n\u003cp\u003eVor Änderungen wird ein separater Branch oder eine Kopie des Repositorys erstellt und die Datenbank gesichert. API-Schlüssel, Datenbankpasswörter und personenbezogene Daten dürfen nicht in KI-Gespräche eingefügt werden. Wurden sie bereits offengelegt, ist es sicherer, die betreffenden Geheimnisse zu widerrufen und neu auszustellen.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#schritt-2-den-technologie-stack-anhand-von-belegen-untersuchen\" class=\"anchor\" id=\"schritt-2-den-technologie-stack-anhand-von-belegen-untersuchen\"\u003e\u003c/a\u003eSchritt 2: Den Technologie-Stack anhand von Belegen untersuchen\u003c/h3\u003e\n\u003cp\u003eDie KI sollte den Technologie-Stack nicht einfach erraten, sondern aufgefordert werden, die folgenden Materialien zu prüfen.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManifest- und Lockdateien, in denen Pakete und Versionen verzeichnet sind\u003c/li\u003e\n\u003cli\u003eDatenbankschema und Migrationen\u003c/li\u003e\n\u003cli\u003eDateien zur Verarbeitung von Authentifizierung und Sitzungen\u003c/li\u003e\n\u003cli\u003eAPI-Routen und Serverfunktionen\u003c/li\u003e\n\u003cli\u003eDeployment-Einstellungen, Namen von Umgebungsvariablen und SDKs externer Dienste\u003c/li\u003e\n\u003cli\u003eAutomatisierte Tests und Einstellungen für Continuous Integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEin Beispiel für eine verwendbare Anfrage lautet:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLies das Repository und fasse Frontend, Server, Datenbank, Authentifizierung, Storage, Zahlung, Deployment und Testwerkzeuge in einer Tabelle zusammen. Nenne die Dateipfade, die jede Einschätzung belegen, und markiere Stellen mit doppelten Geschäftsregeln sowie mögliche Verletzungen der Server-Client-Grenzen. Ändere den Code noch nicht und gib keine geheimen Werte aus.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003e\n\u003ca href=\"#schritt-3-nur-einen-zentralen-vertikalen-ablauf-ausw%C3%A4hlen\" class=\"anchor\" id=\"schritt-3-nur-einen-zentralen-vertikalen-ablauf-auswählen\"\u003e\u003c/a\u003eSchritt 3: Nur einen zentralen vertikalen Ablauf auswählen\u003c/h3\u003e\n\u003cp\u003eEin vertikaler Ablauf ist ein vollständiger Pfad, der von der Benutzeroberfläche über die Serverlogik bis zur Datenspeicherung reicht. Beispiele dafür sind:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegistrierung → Anmeldung → Profilabruf\u003c/li\u003e\n\u003cli\u003eProduktauswahl → Auftragserstellung → Genehmigung der Zahlung in der Sandbox\u003c/li\u003e\n\u003cli\u003eAdministratoranmeldung → Beitrag erstellen → Anzeige auf der öffentlichen Seite\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStatt mehrere Ansichten gleichzeitig zu erstellen, sollten für einen zentralen Ablauf Erfolg, fehlende Berechtigung und ungültige Eingaben überprüft werden. Dadurch werden strukturelle Risiken schneller sichtbar.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#schritt-4-fertigstellungskriterien-durch-tests-festschreiben\" class=\"anchor\" id=\"schritt-4-fertigstellungskriterien-durch-tests-festschreiben\"\u003e\u003c/a\u003eSchritt 4: Fertigstellungskriterien durch Tests festschreiben\u003c/h3\u003e\n\u003cp\u003eWird die KI nur mit der Implementierung einer Funktion beauftragt, kann Code entstehen, der lediglich auf einen sichtbaren Erfolgsfall zugeschnitten ist. Mindestens die folgenden Bedingungen sollten durch automatisierte Tests oder eine wiederholbare Prüfliste festgeschrieben werden.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEin regulärer Nutzer kann die Aufgabe abschließen.\u003c/li\u003e\n\u003cli\u003eEin nicht angemeldeter Nutzer kann nicht auf geschützte Daten zugreifen.\u003c/li\u003e\n\u003cli\u003eAuch bei Eingabe der Kennung eines anderen Nutzers ist kein Zugriff auf dessen Daten möglich.\u003c/li\u003e\n\u003cli\u003eUngültige Eingaben werden nicht gespeichert und führen zu einer verständlichen Fehlermeldung.\u003c/li\u003e\n\u003cli\u003eDieselbe Zahlungs- oder Schreibanfrage wird auch bei Wiederholung nicht doppelt verarbeitet.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\n\u003ca href=\"#schritt-5-nur-bis-zum-staging-deployen\" class=\"anchor\" id=\"schritt-5-nur-bis-zum-staging-deployen\"\u003e\u003c/a\u003eSchritt 5: Nur bis zum Staging deployen\u003c/h3\u003e\n\u003cp\u003eDas Deployment eines 4-Stunden-Sprints sollte im Allgemeinen nicht als endgültige Produktivsetzung, sondern als Staging-Validierung betrachtet werden. Bevor echte Nutzer und Zahlungen zugelassen werden, müssen Sicherheit, Datenmigration, Wiederherstellung von Sicherungen, Monitoring und Störungsbehebung separat überprüft werden.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#kriterien-f%C3%BCr-die-entscheidung-zwischen-reparatur-und-neuimplementierung\" class=\"anchor\" id=\"kriterien-für-die-entscheidung-zwischen-reparatur-und-neuimplementierung\"\u003e\u003c/a\u003eKriterien für die Entscheidung zwischen Reparatur und Neuimplementierung\u003c/h2\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSituation\u003c/th\u003e\n\u003cth\u003eBestehende Struktur beibehalten und reparieren\u003c/th\u003e\n\u003cth\u003eNeuimplementierung mit Rails oder Ähnlichem prüfen\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eKernfunktionen und Tests\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003eFunktionieren größtenteils und Tests sind vorhanden\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eSelbst zentrale Abläufe brechen wiederholt ab\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eDaten\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003eViele Produktivdaten und hohes Migrationsrisiko\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eKeine Daten oder geringer Migrationsumfang\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eStruktur\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003eVerantwortungsgrenzen und Muster sind weitgehend konsistent\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eDieselbe Funktion ist auf mehreren Ebenen dupliziert\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eFrontend-Anforderungen\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003eKomplexe Interaktionen und vorhandene React-Ressourcen sind wichtig\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eServerzentriertes CRUD und Geschäftsabläufe stehen im Mittelpunkt\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eTeamkompetenzen\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003ePersonal für den Betrieb des aktuellen Stacks ist vorhanden\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eRails-Konventionen passen besser zur Arbeitsweise des Teams\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situation\"\u003eExterne Integrationen\u003c/td\u003e\n\u003ctd data-label=\"Bestehende Struktur beibehalten und reparieren\"\u003eViele stabile Integrationen sind bereits in Betrieb\u003c/td\u003e\n\u003ctd data-label=\"Neuimplementierung mit Rails oder Ähnlichem prüfen\"\u003eIntegrationen befinden sich in einer frühen Phase oder können ersetzt werden\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eEine vollständige Neuentwicklung sollte nicht allein wegen vieler Dateien oder vorhandener Fehler erfolgen. Bei einer Neuentwicklung können bereits gelöste Ausnahmefälle verloren gehen und neue Fehler entstehen. Empfehlenswert ist, zunächst einen kleinen vertikalen Ablauf mit beiden Methoden zu implementieren und Entwicklungsgeschwindigkeit, Testbarkeit, Codeverständlichkeit und Deployment-Risiko zu vergleichen.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#vor-der-ver%C3%B6ffentlichung-separat-zu-pr%C3%BCfende-punkte\" class=\"anchor\" id=\"vor-der-veröffentlichung-separat-zu-prüfende-punkte\"\u003e\u003c/a\u003eVor der Veröffentlichung separat zu prüfende Punkte\u003c/h2\u003e\n\u003cp\u003eAuch nach Erstellung einer 4-Stunden-Ausgangsbasis können folgende Punkte offenbleiben.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrüfung des Berechtigungsmodells und der Rails-Sicherheitseinstellungen\u003c/li\u003e\n\u003cli\u003eSignaturen von Zahlungs-Webhooks, Vermeidung doppelter Verarbeitung sowie Bearbeitung von Stornierungen und Rückerstattungen\u003c/li\u003e\n\u003cli\u003eMigration von Produktivdaten und Überprüfung von Datensatzanzahl und Summen\u003c/li\u003e\n\u003cli\u003eDatenbanksicherung und tatsächlicher Wiederherstellungstest\u003c/li\u003e\n\u003cli\u003eFehlerverfolgung, Protokollaufbewahrung und Verfügbarkeitsmonitoring\u003c/li\u003e\n\u003cli\u003eLasttests und Kostenschätzung\u003c/li\u003e\n\u003cli\u003eDatenschutz, Nutzungsbedingungen und zugehörige rechtliche Prüfung\u003c/li\u003e\n\u003cli\u003ePrüfung von Barrierefreiheit sowie Browser- und Mobilumgebungen\u003c/li\u003e\n\u003cli\u003eRollback-Verfahren bei Störungen und Festlegung der verantwortlichen Personen\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca href=\"#fazit\" class=\"anchor\" id=\"fazit\"\u003e\u003c/a\u003eFazit\u003c/h2\u003e\n\u003cp\u003eDas Stocken von Vibe-Coding-Projekten in der Schlussphase lässt sich nicht allein durch die Coding-Fähigkeiten der KI erklären. Werden bei einer Konfiguration mit vielen Freiheitsgraden keine Regeln, Verantwortungsgrenzen, Tests und Betriebskriterien festgelegt, können die lokalen Lösungen der KI leicht miteinander kollidieren.\u003c/p\u003e\n\u003cp\u003eRuby on Rails kann eine praktische Alternative sein, die diese Freiheitsgrade durch Konventionen und eine integrierte Struktur reduziert. Dennoch ist es nicht immer richtig, jedes Projekt mit Rails neu zu erstellen. Zunächst sollte der aktuelle Stack evidenzbasiert untersucht und ein zentraler Ablauf festgelegt werden. Die 4 Stunden sollten anschließend \u003cstrong\u003enicht als Zeit zur Herstellung eines fertigen Produkts, sondern als Zeit zur Validierung der Struktur und zur Schaffung einer wiederherstellbaren Ausgangsbasis\u003c/strong\u003e genutzt werden.\u003c/p\u003e\n","tags":["KI Coding","Vibe Coding","Ruby on Rails","Webentwicklung","Projektwiederherstellung"],"faqs":[{"question":"Warum ist ein Vibe-Coding-Projekt anfangs schnell und wird gegen Ende langsamer?","answer":"Am Anfang geht es häufig darum, sichtbare Standardabläufe zu erstellen, während sich gegen Ende Probleme häufen, bei denen mehrere Ebenen miteinander verbunden werden müssen, etwa Berechtigungen, Datenkonsistenz, Wiederherstellung nach Fehlern, Zahlungen, Bereitstellung und Sicherheit. Fehlen Strukturregeln und Tests, können die von der AI hinzugefügten punktuellen Änderungen mit dem bestehenden Code kollidieren und das Tempo weiter verringern."},{"question":"Führt die Kombination aus React, Next.js und Supabase zwangsläufig zu Spaghetticode?","answer":"Nein. Die drei Technologien sind Werkzeuge mit jeweils klar definierten Aufgaben, und ein erfahrenes Team kann damit stabile Dienste entwickeln. Problematisch ist eine Vorgehensweise, bei der dieselbe Funktion in mehreren Ebenen doppelt implementiert wird, ohne zuvor die Zuständigkeiten für Datenzugriff, Authentifizierung, Geschäftsregeln und Fehlerbehandlung festzulegen."},{"question":"Werden alle externen Dienste überflüssig, wenn man zu Ruby on Rails wechselt?","answer":"Nein. Rails ermöglicht es, Datenzugriff, Auftragsverarbeitung, E-Mails, Echtzeitkommunikation, Tests und Bereitstellung in einem einheitlichen System zu behandeln, doch externe Dienste wie Zahlungsanbieter, Infrastruktur für den E-Mail-Versand, Cloud-Hosting und Monitoring können weiterhin erforderlich sein."},{"question":"Kann man die gesamte App tatsächlich in nur 4 Stunden neu erstellen?","answer":"Das lässt sich nicht allgemein garantieren. Wenn die Anforderungen und das Datenmodell feststehen, der zentrale Ablauf sehr eng begrenzt ist, externe Konten und die Bereitstellungsumgebung vorbereitet sind und eine erfahrene Person die Ergebnisse der AI überprüft, kann eine funktionsfähige Ausgangsbasis oder ein kleines MVP erstellt werden. Für Sicherheit auf Produktionsniveau, die Behandlung von Zahlungsausnahmen, die Datenmigration und die Reaktion auf Störungen ist in der Regel zusätzliche Zeit erforderlich."},{"question":"Welche Anzeichen sprechen dafür, den bestehenden Code zu verwerfen und neu zu schreiben?","answer":"Wenn zentrale Geschäftsregeln an mehreren Stellen dupliziert sind, kleine Änderungen fortlaufend nicht zusammenhängende Funktionen beeinträchtigen, automatisierte Tests fehlen und noch wenige Daten vorhanden sind, sodass die Migrationskosten gering sind, kann eine Neuimplementierung erwogen werden. Wenn viele Produktivdaten und stabile externe Integrationen vorhanden sind oder die aktuelle Struktur über Tests verfügt, kann eine schrittweise Überarbeitung sicherer sein."},{"question":"Wie sollte man die AI anweisen, den Technologie-Stack des aktuellen Projekts zu untersuchen?","answer":"Man sollte sie auffordern, Paketdateien, Lockdateien, das Datenbankschema, den Authentifizierungscode, API-Pfade, Bereitstellungskonfigurationen und Testdateien zu lesen und eine Tabelle mit der Rolle der jeweiligen Technologie und den zugehörigen Belegdateien zu erstellen. Es empfiehlt sich, sie anzuweisen, den Code nicht sofort zu ändern, keine geheimen Werte auszugeben und auch duplizierte Geschäftsregeln sowie mögliche Verletzungen von Systemgrenzen zu kennzeichnen."},{"question":"Welche Funktion sollte bei einer Wiederherstellung innerhalb von 4 Stunden zuerst implementiert werden?","answer":"Es sollte ein zentraler Benutzerablauf ausgewählt werden, der den Wert des Dienstes repräsentiert. Dabei sollte nicht nur die Benutzeroberfläche erstellt werden, sondern auch Authentifizierung, serverseitige Validierung, Datenspeicherung und Fehlerbehandlung miteinander verbunden werden. Zudem sollten die Bedingungen für reguläre und nicht autorisierte Benutzer getestet werden, damit sich die Angemessenheit der Struktur schnell beurteilen lässt."},{"question":"Werden Sicherheitsprobleme durch die Verwendung von Rails automatisch gelöst?","answer":"Nein. Rails bietet verschiedene sichere Standardeinstellungen und Schutzfunktionen, verhindert jedoch nicht automatisch fehlende Berechtigungen, die Offenlegung geheimer Informationen, anfällige externe Integrationen oder fehlerhafte Bereitstellungskonfigurationen. Man sollte die Sicherheitsrichtlinien des Frameworks befolgen und die anwendungsspezifischen Berechtigungen und Datenflüsse gesondert überprüfen."}],"sources":[{"url":"https://react.dev/learn","title":"React lernen","type":"source"},{"url":"https://nextjs.org/docs","title":"Next.js-Dokumentation","type":"source"},{"url":"https://supabase.com/docs","title":"Supabase-Dokumentation","type":"source"},{"url":"https://rubyonrails.org/doctrine","title":"Die Rails-Doktrin","type":"source"},{"url":"https://guides.rubyonrails.org/","title":"Ruby-on-Rails-Leitfäden","type":"source"},{"url":"https://guides.rubyonrails.org/active_job_basics.html","title":"Grundlagen von Active Job","type":"source"},{"url":"https://guides.rubyonrails.org/action_mailer_basics.html","title":"Grundlagen von Action Mailer","type":"source"},{"url":"https://guides.rubyonrails.org/action_cable_overview.html","title":"Überblick über Action Cable","type":"source"},{"url":"https://guides.rubyonrails.org/security.html","title":"Sicherheitsleitfaden für Ruby on Rails","type":"source"},{"url":"https://guides.rubyonrails.org/testing.html","title":"Ein Leitfaden zum Testen von Rails-Anwendungen","type":"source"}],"images":[{"id":359,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDI0OSwicHVyIjoiYmxvYl9pZCJ9fQ==--671c6671ab2b4dd55a12c8db4a32cd95021e1402/ai-ff797ac5.webp","is_representative":true,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"얽힌 시스템 연결망과 정돈된 계층 구조 사이에 서 있는 개발자","caption":"복잡하게 얽힌 프로젝트를 명확한 계층 구조로 재정비하는 과정을 보여준다.","description":null},"en":{"alt":"Developer standing between tangled system connections and an orderly layered architecture","caption":"The illustration shows a tangled project being reorganized into a clear layered structure.","description":null},"ja":{"alt":"絡み合うシステム接続と整然とした階層構造の間に立つ開発者","caption":"複雑に絡んだプロジェクトを明確な階層構造へ整理する過程を表している。","description":null},"es":{"alt":"Desarrollador entre conexiones de sistema enredadas y una arquitectura ordenada por capas","caption":"La ilustración muestra un proyecto enredado que se reorganiza en una estructura clara por capas.","description":null},"id":{"alt":"Pengembang berdiri di antara koneksi sistem kusut dan arsitektur berlapis yang rapi","caption":"Ilustrasi ini menunjukkan proyek yang kusut sedang ditata ulang menjadi struktur berlapis yang jelas.","description":null},"pt":{"alt":"Desenvolvedor entre conexões de sistema emaranhadas e uma arquitetura organizada em camadas","caption":"A ilustração mostra um projeto emaranhado sendo reorganizado em uma estrutura clara de camadas.","description":null},"zh-hant":{"alt":"開發者站在糾結的系統連線與井然有序的分層架構之間","caption":"插圖呈現將混亂糾結的專案重新整理為清晰分層架構的過程。","description":null},"de":{"alt":"Entwickler zwischen verworrenen Systemverbindungen und einer geordneten Schichtenarchitektur","caption":"Die Illustration zeigt, wie ein verworrenes Projekt in eine klare Schichtenstruktur überführt wird.","description":null}}},{"id":360,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDI1NSwicHVyIjoiYmxvYl9pZCJ9fQ==--dd1b9b18b3b924f01625710e0b4bafd8fbbd0002/ai-74d32191.webp","is_representative":false,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"무너진 절벽과 견고한 플랫폼 사이의 다리를 수리하는 개발자들과 보안·배포 아이콘","caption":"개발자들이 불안정한 프로젝트 구조를 보강해 안정적인 시스템으로 복구하는 과정을 보여준다.","description":null},"en":{"alt":"Developers repairing a bridge between a crumbling cliff and a stable platform, with security and deployment icons","caption":"Developers reinforce a fragile project structure to restore it as a stable system.","description":null},"ja":{"alt":"崩れた崖と安定した基盤を結ぶ橋を修復する開発者と、セキュリティやデプロイのアイコン","caption":"開発者が不安定なプロジェクト構造を補強し、安定したシステムへ復旧する過程を表している。","description":null},"es":{"alt":"Desarrolladores reparan un puente entre un terreno agrietado y una plataforma estable con iconos tecnológicos","caption":"Los desarrolladores refuerzan una estructura frágil para recuperar un sistema estable.","description":null},"id":{"alt":"Pengembang memperbaiki jembatan antara tebing retak dan platform kokoh dengan ikon keamanan dan deployment","caption":"Para pengembang memperkuat struktur proyek yang rapuh untuk memulihkan sistem yang stabil.","description":null},"pt":{"alt":"Desenvolvedores consertam ponte entre penhasco rachado e plataforma estável, cercados por ícones de tecnologia","caption":"Desenvolvedores reforçam uma estrutura frágil para recuperar um sistema estável.","description":null},"zh-hant":{"alt":"開發人員修復連接崩裂懸崖與穩固平台的橋梁，周圍有安全與部署圖示","caption":"開發人員加固脆弱的專案結構，使其恢復為穩定的系統。","description":null},"de":{"alt":"Entwickler reparieren eine Brücke zwischen brüchiger Klippe und stabiler Plattform, umgeben von Technik-Symbolen","caption":"Entwickler verstärken eine fragile Projektstruktur und stellen ein stabiles System wieder her.","description":null}}}],"published_at":"2026-07-30T13:43:49+09:00","updated_at":"2026-07-30T13:43:49+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/en/articles/vibe-coding-project-architecture-and-four-hour-rescue-sprint"}