Seite 16 - Monthly Archives: August 2025
-
Maxim Mironjuk
-
August 11, 2025
Eine langsame GraphQL-Query ist selten GraphQLs Schuld. Die eigentlichen Probleme liegen tiefer: N+1 in Resolver-Ketten, EAV-Tabellen, die für jedes Produkt dutzende Joins erzeugen, und Queries ohne Komplexitätsgrenzen, die den Server beliebig belasten können. Dieser Artikel zeigt, wo man suchen muss und was wirklich hilft.
-
Maxim Mironjuk
-
August 11, 2025
Bare Metal, virtuelle Maschinen und Container bilden ein Spektrum aus Isolation, Overhead und Bereitstellungsgeschwindigkeit, keine einfache Entweder-oder-Entscheidung. Dieser Artikel erklärt, wann volle Hardware-Kontrolle nötig ist, wann Hypervisor-Isolation für Multi-Tenancy sinnvoll wird und wann Container die schnellere Wahl sind, sowie den hybriden Ansatz, den die meisten produktiven Hosting-Umgebungen tatsächlich einsetzen, um Kosten, Sicherheit und Betriebsaufwand auszubalancieren.
-
Maxim Mironjuk
-
August 11, 2025
Ein Deployment, das auf dem Entwickler Rechner funktioniert, aber in Produktion mit einer anderen Paketversion fehlschlägt, ist meistens auf eine fehlende oder falsch behandelte composer.lock Datei zurückzuführen. Wer versteht, wie Composer Hashes bildet, wie platform Config die Auflösung beeinflusst und wie Merge Konflikte in der Lock Datei entstehen, baut PHP Anwendungen, die in jeder Umgebung exakt dieselben Paketversionen installieren.
-
Maxim Mironjuk
-
August 11, 2025
Color Fonts speichern mehrere Farbschichten pro Glyphe direkt in der Schriftdatei, von mehrfarbigen Icon-Sets bis zu Emoji-Fonts. Mit @font-palette-values lässt sich diese Werkspalette per CSS überschreiben und an das eigene Theme anpassen, ganz ohne SVG-Sprites oder mehrere Icon-Dateien pro Farbvariante.
-
Maxim Mironjuk
-
August 11, 2025
Praxisfertige SQL-Abfragen für systematisches MySQL Monitoring — von der Buffer Pool Hit Ratio über hängende Transaktionen bis zum Replikations-Lag. Direkt einsetzbar in Monitoring-Systemen und für manuelle Diagnose.
-
Maxim Mironjuk
-
August 10, 2025
TypeScript erlaubt Generics über konkreten Typen, aber keine Generics über Typkonstruktoren selbst. Eine Funktion, die für jeden beliebigen Container-Typ wie Array, Option oder Promise gleichermaßen funktioniert, lässt sich deshalb nicht direkt schreiben. Über eine Technik namens Defunctionalization, bekannt als URI-Pattern aus fp-ts, lässt sich dieses fehlende Feature dennoch praktikabel simulieren.
-
Maxim Mironjuk
-
August 10, 2025
Ein falsch dimensioniertes Connection-Pooling führt entweder zu Too-many-connections-Fehlern unter Last oder zu verschwendeten Ressourcen durch tausende ungenutzte Leerlaufverbindungen. Dieser Artikel zeigt, wie max_connections richtig dimensioniert wird, wie wait_timeout und interactive_timeout zusammenspielen, wie PHP-FPM-Pool-Größe und MySQL-Verbindungslimit aufeinander abgestimmt werden und wann ein externer Connection Pooler wie ProxySQL sinnvoll ist.
-
Maxim Mironjuk
-
August 10, 2025
Ein Projekt ohne Compiler-Fehler ist nicht automatisch typsicher. any breitet sich unbemerkt aus, über externe Bibliotheken ohne Typen, über JSON.parse und über implizit inferierte Parameter. Type Coverage macht diese Lücken sichtbar, quantifiziert sie in einer einzigen Kennzahl und lässt sich als CI-Gate gegen schleichende Verschlechterung absichern.
-
Maxim Mironjuk
-
August 10, 2025
Wiederkehrender, gut verstandener Code wie Data Transfer Objects, CRUD-Scaffolding und Testfixtures lässt sich mit Claude schnell und zuverlässig generieren, weil die Muster bekannt und die Fehlerflächen klein sind. Dieser Artikel erklärt, warum Boilerplate-Generierung risikoärmer ist als das Erzeugen neuer Geschäftslogik, und zeigt das Vorgehen an einer echten Magento-Repository-Interface-Implementierung.
-
Maxim Mironjuk
-
August 10, 2025
PHPUnit 10 hat den jahrelang gewachsenen TestListener durch eine sauber typisierte Extension API ersetzt. Wer eigenes Logging, Slack-Benachrichtigungen bei Fehlschlägen oder projektspezifische Regeln in die Testsuite einbauen will, findet hier den Umstieg mit lauffähigen Beispielen.
-