Seite 19 - Monthly Archives: March 2025
-
Maxim Mironjuk
-
März 08, 2025
Eine verworrene Git-History mit hunderten WIP-Commits macht Bisect nutzlos, Reviews mühsam und Blame unzuverlässig. Klare Konventionen wie atomare Commits, Rebase vor dem Merge und disziplinierte Commit-Messages verwandeln das Log in ein verlässliches Werkzeug für Debugging und Nachvollziehbarkeit, ohne die Geschwindigkeit im Team zu bremsen.
-
Maxim Mironjuk
-
März 08, 2025
Ein Cookie-Banner, der den Fokus verschluckt, Ablehnen nur über einen versteckten Link erlaubt und Screenreadern verborgen bleibt, ist nicht nur ein Dark Pattern, sondern gleich mehrfach eine handfeste Barrierefreiheits-Verletzung.
-
Maxim Mironjuk
-
März 07, 2025
Wiederholtes Nachfragen per setInterval ist der naheliegendste Weg, um eine Alpine-Komponente aktuell zu halten, aber es ist selten der effizienteste. Server-Sent Events bieten dafür eine schlanke Alternative: Der Browser öffnet über die native EventSource-API eine einzige, dauerhafte HTTP-Verbindung, und der Server schickt neue Daten genau dann, wenn sich tatsächlich etwas ändert, statt auf eine Anfrage zu warten. Dieser Artikel zeigt, wie eine solche Verbindung sauber in x-data initialisiert wird, wie eingehende Events in reaktiven Alpine-State übersetzt werden, wie sich Verbindungsabbrüche zuverlässig abfangen lassen und wo die technischen Grenzen von Server-Sent Events gegenüber Polling und WebSocket liegen.
-
Maxim Mironjuk
-
März 07, 2025
performance_schema, Slow Query Log, EXPLAIN und typische Magento-Anti-Pattern – ein systematischer Ansatz, um die langsamsten SQL-Abfragen zu finden, zu verstehen und gezielt zu beheben.
-
Maxim Mironjuk
-
März 07, 2025
Eine Many-to-Many-Beziehung lässt sich nicht direkt in zwei Tabellen abbilden, sondern braucht eine dritte Tabelle als Vermittler. Dieser Beitrag zeigt, wie Junction-Tabellen aufgebaut werden, ob ein zusammengesetzter oder ein künstlicher Primärschlüssel sinnvoller ist und wie zusätzliche Attribute an der Beziehung selbst gespeichert werden, ohne die referenzielle Integrität zu gefährden.
-
Maxim Mironjuk
-
März 07, 2025
Die Standard-codegen.yml aus dem Quickstart deckt gerade mal die Hälfte dessen ab, was GraphQL Code Generator wirklich kann. Custom Scalars, Fragment Masking und das near-operation-file Preset entscheiden darüber, ob generierter Code eine Freude oder eine Zumutung ist.
-
Maxim Mironjuk
-
März 07, 2025
Ein einzelner Aufruf von htmlspecialchars() wird gerne als vollständiger XSS Schutz missverstanden, dabei hängt sicheres Output Encoding immer vom Ausgabekontext ab: HTML-Body, HTML-Attribut, JavaScript-String und URL erfordern jeweils eigene Escaping-Regeln, die bei Verwechslung genau die Lücke offen lassen, die eigentlich geschlossen werden sollte.
-
Maxim Mironjuk
-
März 07, 2025
Wer JSON-Daten bisher als String in Redis abgelegt hat, kennt das Problem: Jede noch so kleine Änderung an einem einzelnen Feld erfordert, das komplette Dokument zu laden, zu deserialisieren, zu ändern und wieder als Ganzes zurückzuschreiben. RedisJSON löst dieses Problem, indem es JSON-Dokumente als eigenen, nativen Datentyp verwaltet und über JSONPath-Ausdrücke gezielten Zugriff auf einzelne Pfade erlaubt, ohne das gesamte Dokument zu bewegen.
-
Maxim Mironjuk
-
März 06, 2025
Ein Natural Key wie eine E-Mail-Adresse oder eine Artikelnummer wirkt beim ersten Schema-Entwurf verlockend praktisch: Er ist ohnehin eindeutig, spart scheinbar eine zusätzliche Spalte und macht Fremdschlüssel auf den ersten Blick lesbarer. Das Problem zeigt sich erst später, wenn sich genau dieser fachliche Wert ändern muss, ein Fall, der in praktisch jedem langlebigen System irgendwann eintritt. Dieser Artikel erklärt, warum Natural Keys als Fremdschlüssel-Ziel strukturell fragil sind, wie ein stabiler Surrogate Key diese Fragilität auflöst, und zeigt an einer realistischen Migration, wie teuer die nachträgliche Korrektur wird.
-
Maxim Mironjuk
-
März 06, 2025
Der Vue 3 Template Compiler analysiert jedes Template zur Build-Zeit und erzeugt Render-Funktionen, die bereits wissen, welche Teile sich zur Laufzeit ändern können. Wer diese Compiler Optimierungen versteht, kann Templates so schreiben, dass sie davon maximal profitieren, statt versehentlich langsame Fallback-Pfade auszulösen.
-