Was ist CORS und wie behebt man CORS-Fehler

Ihr Frontend läuft auf http://localhost:5173, Ihre API auf http://localhost:4000, und der fetch-Aufruf, der in Postman anstandslos funktionierte, schlägt im Browser mit einer Wand aus rotem Text fehl: Access to fetch at 'http://localhost:4000/api/users' from origin 'http://localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Ihr Server hat die Anfrage womöglich verarbeitet und eine 200 zurückgegeben. Der Browser hat sich einfach geweigert, die Antwort an Ihr JavaScript weiterzugeben. ...

26. September 2026 · 8 Minuten · 1551 Wörter · SpaghettiCoder

Was ist Spaghetti-Code und wie man ihn refactort

Sie öffnen eine Funktion, um einen Ein-Zeilen-Bug zu beheben, und vierzig Minuten später verfolgen Sie immer noch, welcher Zweig welche Variable setzt. Drei voneinander unabhängige Aufgaben sind in einem einzigen Block zusammengeschweißt, und keine von ihnen hat einen Namen. Sie ziehen an einem Faden und können nicht sagen, welche anderen sich mitbewegen. Das ist Spaghetti-Code, und der Name hat nichts mit Einrückung oder Namensstil zu tun. Er beschreibt den Kontrollfluss: Die Ausführung springt zwischen Bedingungen hin und her, so wie ein Nudelstrang jeden anderen in der Schüssel kreuzt, und einem einzigen Pfad bis zum Ende zu folgen bedeutet, vier Ebenen von if gleichzeitig im Kopf zu behalten. ...

25. September 2026 · 10 Minuten · 2019 Wörter · SpaghettiCoder

SSH-Tunnel: Lokales, Remote- und Dynamisches Port-Forwarding

Wie erreichen Sie eine Datenbank, die nur auf localhost lauscht? Eine Postgres-Instanz auf einem entfernten Server ist absichtlich an 127.0.0.1 gebunden. Nichts im Netzwerk kann sie erreichen, nur Prozesse, die auf genau dieser Maschine laufen. Ihr Laptop ist nicht diese Maschine, also scheitert psql -h remote-server -p 5432, bevor es überhaupt zur Authentifizierung kommt. Den Port nach außen zu öffnen, hebt genau den Grund auf, aus dem er an Loopback gebunden wurde. ...

24. September 2026 · 7 Minuten · 1422 Wörter · SpaghettiCoder

Abhängigkeiten in GitHub Actions cachen

Ein Workflow, der bei jedem Push npm ci ausführt, lädt jedes Mal dieselben paar Hundert Pakete aus der Registry herunter, selbst wenn sich die Lockfile seit einer Woche nicht geändert hat. Bei einem Projekt mit einem echten Abhängigkeitsbaum sind das ein bis zwei Minuten, bevor der erste Test überhaupt startet, und Sie zahlen das bei jedem Push und jeder Pull Request erneut. actions/cache behält diese Downloads zwischen den Ausführungen und gibt sie zurück, wenn sich nichts Relevantes geändert hat. ...

23. September 2026 · 6 Minuten · 1154 Wörter · SpaghettiCoder

Lokalen Server mit Cloudflare Tunnel freigeben

Warum niemand außerhalb Ihres Netzwerks localhost erreicht Ein Webhook-Anbieter braucht eine URL, an die er POSTen kann, und Ihr Server läuft auf localhost:3000. Oder ein Teamkollege möchte sich durch den Branch klicken, den Sie gerade laufen haben, oder Ihr Handy muss den Dev-Server erreichen, um ein Layout zu prüfen. Der Server läuft. Von außerhalb Ihres Netzwerks kommt niemand heran. Portweiterleitung auf dem Router würde funktionieren, legt aber Ihre private IP offen und braucht Admin-Zugriff, den Sie oft gar nicht haben. Cloudflare Tunnel geht den anderen Weg. cloudflared, ein kleiner Daemon, den Sie neben Ihrem Server laufen lassen, baut eine ausgehende Verbindung zum Edge-Netzwerk von Cloudflare auf, und Cloudflare schickt den Traffic durch genau diese Verbindung zurück. Sie öffnen keinen eingehenden Port und brauchen keine öffentliche IP. ...

23. September 2026 · 7 Minuten · 1372 Wörter · SpaghettiCoder

Remote-Debugging in Visual Studio einrichten

Einen Bug debuggen, der nur auf einer Maschine ohne Visual Studio auftritt Ein Bug reproduziert auf dem Testserver, aber nicht auf Ihrem Laptop. Der Testserver hat kein Visual Studio, und dort eine komplette IDE zu installieren, nur um einen Breakpoint zu setzen, kommt nicht infrage. Genau dafür ist Remote-Debugging gemacht. Ein kleines, eigenständiges Programm läuft auf der Zielmaschine, Ihr lokales Visual Studio verbindet sich über das Netzwerk damit, und Sie bekommen Breakpoints und Variableninspektion auf einem Prozess, der nirgendwo in der Nähe Ihres Schreibtischs läuft. ...

23. September 2026 · 7 Minuten · 1349 Wörter · SpaghettiCoder

Was ist ein System-One-Modell und wann Sie eines einsetzen

Warum so viele LLM-Aufrufe eigentlich Klassifikation sind Ein großer Teil des produktiven LLM-Traffics liefert am Ende ein einziges Wort. Dieses Ticket eskalieren oder nicht. Spam oder kein Spam. Welcher von sechs Handlern übernimmt dieses Event. Um dieses eine Wort zu bekommen, schicken Sie den kompletten Prompt an ein General-Purpose-Modell, warten, während es Token für Token eine Antwort dekodiert, und parsen anschließend ein JSON-Objekt aus dem Ergebnis. Sie zahlen den Preis und die Latenz von Textgenerierung für eine Entscheidung, die in ein Enum passt. ...

23. September 2026 · 6 Minuten · 1224 Wörter · SpaghettiCoder

Wie CLI-Coding-Agenten funktionieren und welchen Sie wählen

Was einen CLI-Coding-Agenten von einem anderen unterscheidet Bitten Sie einen CLI-Coding-Agenten, einen fehlschlagenden Test zu reparieren, antwortet er nicht mit einem Vorschlag. Er liest die Testausgabe, öffnet die Datei, ändert eine Zeile, führt den Test erneut aus und meldet sich zurück, sobald er grün ist. Diese Schleife ist das Produkt, nicht das Chatfenster. Das Modell in dieser Schleife bekommt die meiste Aufmerksamkeit, und es ist auch der Teil, der sich am schnellsten ändert: Anbieter tauschen alle paar Monate ein neues ein, und bei mehreren Agenten können Sie selbst wählen. Was bleibt, ist der Harness um das Modell herum — welche Tools er erreichen kann, wie er mit Kontext umgeht, was er ohne Nachfrage ausführen darf und wo diese Befehle laufen. Zwei Agenten mit demselben Modell können sich dadurch völlig unterschiedlich verhalten. Der Harness ist es, was Sie eigentlich auswählen. ...

23. September 2026 · 8 Minuten · 1537 Wörter · SpaghettiCoder

Git Bisect: den Commit finden, der einen Bug eingeführt hat

Die Test-Suite ist seit drei Wochen grün. Heute schlägt npm test bei einer Assertion fehl, die nichts mit Ihrer letzten Änderung zu tun hat, und git log v1.4.0..HEAD zeigt 340 Commits von vier Personen seit dem letzten Release, von dem jemand sicher war, dass er funktioniert. Jeden Diff zu lesen kostet Sie einen ganzen Tag. Wahllos Commits auszuchecken geht schneller, ist aber immer noch kein Plan. git bisect macht daraus eine Binärsuche. Sie nennen ihm einen Commit, der nachweislich gut ist, und einen, der nachweislich kaputt ist; das Tool checkt den Commit in der Mitte dazwischen aus und wartet, bis Sie genau diesen Commit testen und das Ergebnis melden. Jede Antwort halbiert den Bereich. 340 Commits lassen sich in höchstens 9 Tests auflösen, denn 2^9 = 512. ...

22. September 2026 · 6 Minuten · 1169 Wörter · SpaghettiCoder

Was ist DNS und wie funktioniert die Namensauflösung

Was DNS bei jeder Anfrage wirklich tut Jede Anfrage an example.com beginnt mit einer Abfrage, die mit Ihrer Anwendung nichts zu tun hat: Etwas muss diesen Namen erst in eine IP-Adresse umwandeln, bevor ein einziges TCP-Paket die Maschine verlässt. Diese Übersetzung ist DNS, das Domain Name System, und sie läuft bei jeder Anfrage, egal ob der Client ein Browser, curl oder ein Backend-Dienst ist, der einen anderen über dessen Hostnamen aufruft. ...

21. September 2026 · 7 Minuten · 1452 Wörter · SpaghettiCoder