Seite 19 - Monthly Archives: May 2025
-
Maxim Mironjuk
-
Mai 09, 2025
Vollständige REST-Antworten enthalten meist deutlich mehr Felder und Relationen, als ein einzelner Client tatsächlich braucht, besonders bei verschachtelten Ressourcen. Ein generischer ?fields=-Parameter mit Unterstützung für Punkt-Notation löst dieses Problem einmal zentral im Serializer, statt es für jeden Endpoint erneut zu implementieren.
-
Maxim Mironjuk
-
Mai 09, 2025
Eine einzelne Common Table Expression macht eine Abfrage schon deutlich lesbarer als eine tief verschachtelte Subquery, aber der eigentliche Mehrwert zeigt sich erst, wenn mehrere CTEs nacheinander aufeinander aufbauen und eine komplexe Auswertung in klar benannte, nachvollziehbare Zwischenschritte zerlegen. Diese Lesbarkeit hat allerdings ihren Preis, denn nicht jede Datenbank behandelt eine Kette aus CTEs technisch gleich: Manche materialisieren jede CTE als eigenständiges Zwischenergebnis, andere binden sie transparent in die umgebende Abfrage ein. Dieser Artikel zeigt, wie sich mehrstufige CTE-Ketten sinnvoll strukturieren lassen, wie sich das Materialisierungsverhalten zwischen PostgreSQL vor und nach Version 12 sowie anderen Datenbanken unterscheidet, und ab welchem Punkt eine CTE-Kette in der Praxis zum echten Performance-Problem wird.
-
Maxim Mironjuk
-
Mai 09, 2025
Terraform provisioniert Infrastruktur, Ansible konfiguriert sie, aber zwischen beiden Werkzeugen klafft in vielen Teams eine manuelle Lücke. Bash Glue Code schließt diese Lücke: State auslesen, Inventory generieren, Playbooks anstoßen und Fehler an einer zentralen Stelle behandeln, statt zwei Tools per Copy-Paste zu verbinden.
-
Maxim Mironjuk
-
Mai 09, 2025
Dashboards und Diagramme in Symfony erfordern normalerweise eigenes JavaScript: Chart.js initialisieren, Daten per AJAX laden, Optionen konfigurieren. Das Symfony UX Chart.js-Paket übernimmt das vollständig — Charts entstehen aus PHP-Objekten, werden als Twig-Komponenten eingebettet und von Symfony UX automatisch initialisiert.
-
Maxim Mironjuk
-
Mai 09, 2025
Dragonfly ist ein 2022 vorgestellter In-Memory-Datenspeicher, der sich als kompatibler Ersatz für Redis positioniert, dabei aber intern eine komplett andere Architektur verfolgt. Statt eines einzigen Threads verteilt Dragonfly Arbeit über einen Shared-Nothing-Ansatz auf mehrere Kerne, verwendet eine eigene Speicherstruktur namens Dashtable und verspricht deutlich schnellere Snapshots als Redis' forkbasiertes RDB-Verfahren. Dieser Artikel ordnet ein, wie diese Architektur technisch funktioniert, wie belastbar die Performance-Versprechen sind und für welche Magento-Betriebsszenarien ein Testeinsatz heute schon sinnvoll erscheint.
-
Maxim Mironjuk
-
Mai 09, 2025
Ein Bild, das erst nach dem restlichen Layout nachlaedt, verschiebt sichtbare Inhalte und verschlechtert den Cumulative-Layout-Shift-Wert. Mit React Suspense laesst sich das Rendern einer Bildkomponente gezielt zurueckhalten, bis die Bilddatei tatsaechlich im Browser-Cache liegt. Dieser Artikel zeigt ein eigenes Preload-Pattern auf Basis von Promise-Wrapping, inklusive Caching, Fehlerbehandlung und Grenzen des Ansatzes.
-
Maxim Mironjuk
-
Mai 09, 2025
EAS Build kompiliert React Native und Expo Apps in der Cloud zu installierbaren iOS- und Android-Binaries, verwaltet Zertifikate, Provisioning Profiles und Keystores automatisch und macht Builds über eas.json reproduzierbar. Dieser Leitfaden erklärt Build-Profile, Umgebungsvariablen, Config Plugins für native Module und den Weg vom Build bis zur Einreichung mit eas submit.
-
Maxim Mironjuk
-
Mai 09, 2025
Ein Deployment, das ohne Fehler abgeschlossen wird, muss nicht korrekt funktionieren. Der Symlink wurde gesetzt, der Cache geleert — aber lädt die Startseite? Antwortet der Checkout? Ist der Cache-Status grün? Smoke Tests schließen diese Lücke und geben dem Deployment-Prozess einen fachlichen Abschluss statt nur einen technischen.
-
Maxim Mironjuk
-
Mai 08, 2025
Chat-Buttons, die per Tastatur nicht erreichbar sind, Fokus-Fallen beim Öffnen des Chat-Fensters und Nachrichten, die Screenreadern verborgen bleiben: Live-Chat-Widgets gehören zu den am häufigsten übersehenen Barrieren im E-Commerce-Frontend.
-
Maxim Mironjuk
-
Mai 08, 2025
Wendet man einen Conditional Type auf einen Union-Typ an, wird die Bedingung standardmäßig auf jedes Mitglied der Union einzeln angewendet, nicht auf die Union als Ganzes. Dieses Verhalten heißt Distribution und ist die stille Grundlage von Utility-Typen wie Exclude und Extract. Wer die Naked-Type-Parameter-Regel nicht kennt, stolpert über unerwartete Ergebnisse, sobald ein eigener Utility-Typ Distribution bewusst verhindern soll.
-