Zum Inhalt springen

Spaghetti Code refactoren. Ohne von vorn anzufangen.

God Classes mit 3.000 Zeilen, Business-Logik in Controllern, Datenbankabfragen in Views. Das Problem ist nicht fehlendes Wissen. Das Problem ist fehlende Struktur. Jardis gibt eurem PHP-Code Schichten, Trennung und eine Zielarchitektur.

Warum Spaghetti Code kein Werkzeugproblem ist, sondern ein Strukturproblem.

59% der PHP-Entwickler debuggen mit var_dump. Nicht weil bessere Tools fehlen, sondern weil der Code keine Struktur hat, die Tools nutzen könnten.

God Classes, die alles können und nichts trennen

Eine Klasse für Bestellung, Validierung, E-Mail-Versand und PDF-Erzeugung. 3.000 Zeilen, 40 Methoden, keine klare Verantwortung. Jede Änderung kann alles brechen, weil alles zusammenhängt.

Business-Logik steckt in der falschen Schicht

Validierungsregeln im Controller, Preisberechnung im View, SQL-Queries direkt neben HTML-Output. Wenn die Logik überall ist, kann sie nirgends sauber getestet oder wiederverwendet werden.

Kein Refactoring möglich, weil keine Schichten existieren

Es gibt keinen sicheren Einstiegspunkt für ein Refactoring. Keine klare Architektur, keine definierten Schnittstellen, keine Trennung von Zuständigkeiten. Wer anfängt aufzuräumen, reißt das ganze System mit.

Wie Jardis Spaghetti Code in Struktur verwandelt.

Jardis generiert die Zielarchitektur und gibt eurem bestehenden Code einen Migrationspfad. Schicht für Schicht, nicht alles auf einmal.

SCHEMA IMPORT

Bestehendes Datenbankschema als Ausgangspunkt

Der Builder importiert euer bestehendes Schema und generiert daraus eine hexagonale Architektur. Entities, Value Objects, Repository Interfaces. Die Zielstruktur entsteht aus dem was ihr bereits habt, nicht aus einer leeren Seite.

SCHICHTENTRENNUNG

Domain, Application, Infrastructure als physische Packages

Keine Konventionen die nach zwei Wochen niemand einhält. Der Builder erzeugt physische Verzeichnisse mit klaren Abhängigkeitsregeln. Business-Logik in der Domain, Use Cases in der Application, Datenbank in der Infrastructure. Controller rufen Use Cases auf, nicht umgekehrt.

SCHRITTWEISE MIGRATION

Ein Use Case nach dem anderen, nicht Big Bang

Ihr müsst nicht alles auf einmal migrieren. Fangt mit dem schmerzhaftesten Teil an: dem Bestellprozess, der Rechnungslogik, dem User-Management. Der Builder generiert die Zielstruktur für einzelne Bounded Contexts. Der Rest eures Codes läuft weiter.

Sieh selbst, was aus drei Dateien entsteht.

Drei Definitionsdateien rein, ein kompletter Bounded Context raus. Klick dich durch den generierten Code.

E-Commerce / Sales
schema.yaml
# Database Schema — Sales Bounded Context
# This file defines the persistent storage structure.

schema:
  domain: ECommerce
  boundedContext: Sales

tables:
  order:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      public_id:
        type: uuid7
        unique: true
      customer_email:
        type: string
        length: 255
      status:
        type: string
        length: 32
        default: "draft"
      total_amount:
        type: integer
      currency:
        type: string
        length: 3
        default: "EUR"
      created_at:
        type: datetime
      updated_at:
        type: datetime
        nullable: true

  order_item:
    columns:
      id:
        type: integer
        primary: true
        autoIncrement: true
      order_id:
        type: integer
        foreignKey:
          table: order
          column: id
          onDelete: cascade
      product_name:
        type: string
        length: 255
      sku:
        type: string
        length: 64
      quantity:
        type: integer
      unit_price:
        type: integer
      line_total:
        type: integer
Dateien
Definitions (Input)
Generated Code (Output)
BUILDER OUTPUT
80%
Infrastruktur-Code generiertEntities, Repositories, Commands, Queries, Events und die komplette Hexagonal-Architektur.
3x
schnelleres Onboarding neuer Devs
0
Logik in der falschen Schicht
ARCHITEKTUR
100%
Schichtentrennung ab Tag 1Jede generierte Datei liegt in der richtigen Schicht. Domain kennt keine Infrastructure. Controller kennen keine Datenbank.

Warum Teams mit Spaghetti Code auf Jardis setzen.

Vom Chaos zur Struktur. Ohne Rewrite, ohne Stillstand.

> Klare Schichten

Jede Klasse hat genau eine Verantwortung

Domain-Logik in der Domain, Persistenz in der Infrastructure, Orchestrierung in der Application. Der Builder erzwingt diese Trennung auf Dateisystem-Ebene. God Classes werden unmöglich.

> Sofort testbar

Unit Tests ohne Datenbank, ohne Framework

Die generierte Domain-Schicht hat keine Abhängigkeiten zu Framework oder Datenbank. Business-Logik lässt sich isoliert testen. Kein Setup, kein Mocking von 15 Services.

> Inkrementell migrierbar

Alter und neuer Code laufen parallel

Ihr migriert einen Use Case nach dem anderen. Der bestehende Spaghetti Code läuft weiter, während die neuen Bounded Contexts daneben entstehen. Kein Feature-Freeze, kein Rewrite.

Bereit, eurem Spaghetti Code Struktur zu geben?

Auf die Waitlist

Struktur kostet weniger als Chaos.

Kostenloser Trial

Teste Jardis 7 Tage kostenlos

Lass Jardis an deiner echten Domäne los. Discovery, Struktur und dein erster Platform Build.

Join Waitlist
20 Discovery Runs
5 Structure Builds
1 Platform Build
Alle Jardis Packages als Open Source
Jardis Base
29 €pro Monat

Die komplette DDD-Architektur mit allen Klassen und Contracts. Dein Team schreibt Features, nicht Infrastruktur.

Join Waitlist
Unlimited Discovery Runs
Unlimited Structure Builds
Alle 26 Jardis Packages enthalten
PHPStan Level 8 von Anfang an
Jardis Pro
180 €pro Monat

Die komplette Business-Logik mit Handlern, Validierung und Pipelines. Was früher ein Sprint war, ist jetzt ein Build.

Join Waitlist
Alles aus Jardis Base
Commands, Queries, Events direkt implementiert
Platform Code in Sekunden statt Wochen
Weitere Runs für 89 € einzeln
Enterprise

Mehr als 20 Platform Builds pro Monat?

Lass uns sprechen

Sei dabei, wenn Jardis startet.

Trag dich ein. Du bekommst Zugang, sobald wir live gehen. Inklusive kostenlosem Trial.

100+ Entwickler warten bereits auf den Launch

Neugierig, wie Jardis funktioniert?

Jardis entdecken

Häufige Fragen

Antworten zu Jardis und Spaghetti Code Refactoring.

Genau dafür ist Jardis gebaut. Der Builder importiert euer bestehendes Datenbankschema und generiert daraus eine hexagonale Zielarchitektur. Ihr braucht keine bestehende Struktur als Ausgangspunkt.