Seite 10 - Monthly Archives: June 2025
-
Maxim Mironjuk
-
Juni 18, 2025
Das Composite Pattern macht einzelne Objekte und ganze Baumstrukturen über dieselbe Schnittstelle nutzbar. In Magento 2 sieht man das besonders bei Preisregeln, Sales Rule Conditions, Layout-Containern und Konfigurationsbäumen.
-
Maxim Mironjuk
-
Juni 17, 2025
Filter, Sortierung, Pagination und aktive Tabs landen in vielen React Anwendungen in useState, obwohl sie eigentlich Teil der Adresse sind. Wer diesen Zustand stattdessen in der URL speichert, bekommt Deep Linking, funktionierenden Browser Zurück Button und teilbare Links geschenkt, ganz ohne zusätzlichen Store.
-
Maxim Mironjuk
-
Juni 17, 2025
Doppelte Datensätze entstehen in jeder produktiven Datenbank — durch Importfehler, Race Conditions bei gleichzeitigen Schreibzugriffen, fehlende UNIQUE Constraints oder migrierte Altdaten. In Magento können Kundenduplikate zu falschen Bestellzuordnungen führen, doppelte Produkteinträge die Suche verwirren und redundante Preisdaten die Kalkulation brechen. Dieser Artikel zeigt, wie man SQL Duplikate entfernen kann und anschließend dauerhaft verhindert — von der einfachen GROUP-BY-Analyse bis zum sicheren Massen-Delete auf Tabellen mit Millionen von Zeilen.
Duplikate finden mit GROUP BY und HAVING
Der erste Schritt ist immer das Sichtbarmachen der Duplikate. Die klassische Methode verwendet GROUP BY auf den Spalten, die eindeutig sein sollten, und filtert Gruppen mit mehr als einem Eintrag per HAVING COUNT(*) > 1. Dieser Query zeigt das Problem, aber noch nicht die konkreten Zeilen-IDs.
-- Einfache Duplikatsuche über eine Spalte
SELECT
email,
COUNT(*) AS anzahl
FROM customer_entity
GROUP
-
Maxim Mironjuk
-
Juni 17, 2025
Ein Composable, das Daten lädt, aber laufende Requests nicht abbrechen kann, produziert schleichend zwei Arten von Problemen: veraltete Antworten, die nach dem Unmount noch versuchen, einen längst zerstörten Zustand zu aktualisieren, und Race Conditions, bei denen ein schneller zweiter Request von einem langsameren ersten überschrieben wird. AbortController löst beide Probleme, wenn man ihn konsequent in das eigene useFetch-Composable integriert.
-
Maxim Mironjuk
-
Juni 17, 2025
Claude Code, Cursor und Windsurf loesen dasselbe Grundproblem mit unterschiedlicher Architektur: der CLI-Agent Claude Code arbeitet editor-unabhaengig direkt im Terminal, Cursor ist ein VS-Code-Fork mit tiefer Tab-Vervollstaendigung, Windsurf setzt auf den Cascade-Agenten in einer eigenen Editor-Oberflaeche. Wer die Unterschiede kennt, waehlt das richtige Werkzeug fuer den jeweiligen Workflow statt sich auf Marketing-Versprechen zu verlassen.
-
Maxim Mironjuk
-
Juni 17, 2025
Local History speichert in PhpStorm lückenlos jede gespeicherte Änderung, ganz ohne Commit. Git dagegen speichert nur, was bewusst committet wurde, dafür teamfähig und dauerhaft. Wer beide Werkzeuge kennt und richtig einsetzt, verliert deutlich seltener Arbeit, egal ob durch einen fehlerhaften Refactoring-Schritt oder einen IDE-Absturz.
-
Maxim Mironjuk
-
Juni 17, 2025
Bash-Skripte, die im Terminal korrekt funktionieren, versagen oft in Pipes, als Cronjob oder in CI-Umgebungen. Die Ursache liegt im unterschiedlichen Verhalten von stdin, stdout und interaktiven Tools je nach Kontext. /dev/null, /dev/tty, isatty-Erkennung und Non-Interactive-Mode sind die Werkzeuge für Skripte, die in allen Kontexten zuverlässig funktionieren.
-
Maxim Mironjuk
-
Juni 17, 2025
Code-Generierung aus OpenAPI-Spezifikationen klingt verlockend, produziert in der Praxis aber oft unlesbaren Müll, der sofort manuell gepatcht werden muss. Das zerstört den Hauptvorteil der Generierung. Dieser Artikel zeigt, wie man openapi-generator so konfiguriert, dass der Ausgabecode wartbar ist – und warum Template-Overrides der Schlüssel dazu sind.
-
Maxim Mironjuk
-
Juni 17, 2025
Der offizielle TypeScript-Compiler tsc ist in JavaScript geschrieben und für Typsicherheit optimiert, nicht für Geschwindigkeit. esbuild und swc kompilieren denselben TypeScript-Code in Go beziehungsweise Rust und erreichen dabei zehn- bis zwanzigfach kürzere Build-Zeiten, verzichten dafür aber bewusst auf die vollständige Typprüfung während der Transformation.
-
Maxim Mironjuk
-
Juni 17, 2025
Ein schwerfälliger Pull-Request-Workflow bremst ganze Teams aus, riesige Diffs, fehlender Kontext und manuelle Merge-Koordination summieren sich zu Reibungsverlusten. Dieser Artikel zeigt, wie kleine Pull Requests, Draft PRs, PR-Templates sowie Required Checks und Auto-Merge zusammenspielen, um Reviews schneller und den gesamten Workflow planbarer zu machen.
-