Seite 20 - Monthly Archives: March 2025
-
Maxim Mironjuk
-
März 06, 2025
Exploratives Testen lebt vom spontanen Entdecken unerwarteten Verhaltens, nicht von starren Skripten. Claude ersetzt diesen kreativen Prozess nicht, unterstützt ihn aber als Co-Pilot: beim Schärfen des Testcharters, beim Anwenden von Heuristiken und beim strukturierten Festhalten von Beobachtungen während der Session.
-
Maxim Mironjuk
-
März 05, 2025
Badges, Tags und Chips wirken einzeln betrachtet wie triviale kleine Bauteile, doch sobald sie in einer größeren Anwendung an zig verschiedenen Stellen auftauchen, entscheidet ein konsistentes System aus Größen, Farbvarianten und klaren Regeln für Interaktivität darüber, ob die Oberfläche aufgeräumt oder chaotisch wirkt. Dieser Artikel zeigt, wie sich ein wiederverwendbares Badge- und Chip-System mit Tailwind CSS aufbauen lässt, das auf Design-Tokens statt auf hartkodierten Farben pro Einzelfall basiert und klar zwischen statischen Badges und interaktiven, entfernbaren Chips unterscheidet.
-
Maxim Mironjuk
-
März 05, 2025
1. Was ist ein MySQL Deadlock?
Ein MySQL Deadlock entsteht, wenn zwei oder mehr Transaktionen jeweils eine Ressource halten und gleichzeitig auf eine Ressource warten, die die andere Transaktion hält. Das ergibt einen zyklischen Wartegraph, aus dem keine Transaktion selbstständig herauskommt. InnoDB erkennt diesen Zyklus typischerweise innerhalb von Millisekunden, wählt eine Opfer-Transaktion (die mit dem geringsten Rollback-Aufwand) und rollt diese zurück — die andere kann dann weitermachen.
Das klassische Szenario mit zwei Transaktionen: Transaktion A sperrt Zeile 1 und wartet auf Zeile 2. Transaktion B hat Zeile 2 gesperrt und wartet auf Zeile 1. Beide warten aufeinander — zyklischer Deadlock. InnoDB wählt Transaktion B als Opfer, rollt sie zurück, Transaktion A kann weitermachen. Der Aufrufer von Transaktion B erhält den Fehler ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction.
Deadlocks sind kein Zeichen eines kaputten Systems — sie sind ein normales
-
Maxim Mironjuk
-
März 05, 2025
Ein Magento-Projekt mit 40 Drittanbieter-Modulen hat schnell hunderte transitive Abhaengigkeiten. Wer vor einem Composer-Update nicht weiss, welche Pakete sich gegenseitig einschraenken, verliert Stunden mit Trial-and-Error. PhpStorm macht diesen Graphen sichtbar.
-
Maxim Mironjuk
-
März 05, 2025
Fetch und XHR beim Seitenende zu nutzen ist eine Race-Condition gegen den Browser. Wenn der Tab geschlossen oder die Seite entladen wird, bricht der Browser offene Anfragen ab. navigator.sendBeacon überträgt Daten garantiert, ohne die Navigation zu verzögern – das ist die richtige Lösung für Analytics, Session-Daten und Exit-Tracking.
-
Maxim Mironjuk
-
März 04, 2025
Wer InnoDB ohne bewusste Tablespace-Strategie betreibt, sammelt über Jahre einen unaufgeräumten system tablespace an, der nicht mehr schrumpft. innodb_file_per_table, OPTIMIZE TABLE und General Tablespaces geben die Kontrolle über Speicherplatz, Backup-Granularität und Wartungsfenster zurück, die im Standardbetrieb sonst verloren geht.
-
Maxim Mironjuk
-
März 04, 2025
Der ObjectNormalizer der Symfony Serializer-Komponente liest per Reflection alle Properties eines Objekts aus und baut daraus ein Array, was für einfache DTOs hervorragend funktioniert. Sobald ein Objekt aber ein Value Object mit eigener interner Struktur ist, eine polymorphe Klassenhierarchie abbildet oder Objekte referenziert, die wiederum aufeinander zeigen, stößt diese generische Reflection-Logik an klare Grenzen. Dieser Artikel zeigt, wie man mit NormalizerInterface und DenormalizerInterface eigene Transformationen schreibt, wie man deren Priorität gegenüber eingebauten Normalizern steuert und wie man Zirkelreferenzen kontrolliert auflöst, statt in eine Endlosschleife zu laufen.
-
Maxim Mironjuk
-
März 04, 2025
Pinterest wird oft als reines Inspirations-Netzwerk abgetan, funktioniert technisch aber wie eine visuelle Suchmaschine mit eigenem Ranking-Algorithmus und langlebigen Inhalten. Rich Pins ziehen automatisch Preis, Verfügbarkeit und Produktdaten direkt von der Website, statt sie manuell zu pflegen. Für Onlineshops mit stark visuellen Produkten ist Pinterest-SEO deshalb ein eigenständiger, planbarer Traffic-Kanal, der weit über die Lebensdauer eines einzelnen Social-Media-Posts hinausreicht.
-
Maxim Mironjuk
-
März 03, 2025
Claude kann aus bestehendem Code, Tests und Commit-Historie zuverlässig einen ersten Dokumentationsentwurf erstellen und spart damit Zeit gegenüber dem Schreiben von Grund auf. Der Entwurf ersetzt aber keine menschliche Prüfung, denn Genauigkeit, Tonalität und die Synchronisation mit dem tatsächlichen Code bleiben Aufgaben, die Entwicklerinnen und Entwickler aktiv übernehmen müssen.
-
Maxim Mironjuk
-
März 03, 2025
Nicht jede ALTER-TABLE-Anweisung ist in MySQL gleich teuer. Manche Änderungen sind reine Metadaten-Operationen, die in Millisekunden abgeschlossen sind, andere kopieren im Hintergrund die komplette Tabelle und blockieren Schreibzugriffe für Sekunden oder Minuten. Wer bei mehreren hundert Gigabyte großen Magento-Tabellen den Unterschied zwischen ALGORITHM=INSTANT, INPLACE und COPY nicht kennt, riskiert ungeplante Downtime mitten im Tagesgeschäft.
-