Seite 5 - Monthly Archives: June 2025
-
Maxim Mironjuk
-
Juni 24, 2025
Lange bevor PHP Reflection oder Attribute kannte, gab es bereits die Möglichkeit, Funktionsnamen und Variablennamen selbst zur Laufzeit als Werte zu behandeln. Variable Funktionen und variable Variablen sind die älteste Form der Metaprogrammierung in PHP, mächtig und riskant zugleich, und bis heute die Grundlage vieler dynamischer Dispatcher.
-
Maxim Mironjuk
-
Juni 24, 2025
Ein Deploy-Fehler, der sich nicht reproduzieren lässt, ist kein gelöster Fehler – er ist aufgeschobenes Chaos. set -x, trap ERR, LINENO und strukturierte Logfiles machen jeden Fehler in Deploy-Skripten nachvollziehbar, reproduzierbar und als Grundlage für Post-Mortem-Analysen nutzbar.
-
Maxim Mironjuk
-
Juni 23, 2025
Ein frisches Hyvä-Theme liefert im Entwicklungsmodus ein CSS-Bundle von mehreren Megabyte aus, weil Tailwind CSS im Watch-Modus bewusst nicht purged. Der CSS-Purge-Schritt im Production-Build scannt jede phtml- und Alpine.js-Datei nach tatsächlich verwendeten Klassennamen und reduziert das Stylesheet dadurch auf wenige Kilobyte, sofern dynamische Klassennamen korrekt behandelt und die Deploy-Sequenz sauber ausgeführt wird.
-
Maxim Mironjuk
-
Juni 23, 2025
Ein Klon der Produktivdatenbank ist für Tests verlockend praktisch: realistische Datenmengen, echte Kantenfälle, keine mühsame Testdatenerstellung. Genau das macht ihn aber zum Compliance-Risiko, sobald echte Kundendaten in einer Umgebung mit schwächerer Zugriffskontrolle und breiterem Nutzerkreis landen. Dieser Artikel zeigt, wie sich Staging-Datenbanken systematisch anonymisieren lassen, ohne dass Tests an Aussagekraft verlieren, und wie referenzielle Konsistenz über Fremdschlüssel hinweg dabei erhalten bleibt.
-
Maxim Mironjuk
-
Juni 23, 2025
Seit dem Helpful Content Update bewertet Google systematisch, ob Inhalte für Menschen oder für Suchmaschinen geschrieben wurden. Dieser Artikel erklärt Googles Selbstbewertungsfragen, typische Signale unhilfreichen Contents und zeigt, wie ihr eine bestehende Content-Bibliothek praktisch auf People-First-Qualität prüft und dauerhaft dort hält.
-
Maxim Mironjuk
-
Juni 23, 2025
String-Aggregation fasst mehrere Zeilen einer Gruppe zu einer einzigen, kommagetrennten Textliste zusammen, etwa alle Tags eines Produkts in einer Zeile statt in mehreren Zeilen. MySQL nutzt dafür GROUP_CONCAT, PostgreSQL und SQL Server STRING_AGG, Oracle LISTAGG. Dieser Artikel zeigt Syntax, Reihenfolge, Trennzeichen und Längenlimits aller vier Systeme im direkten Vergleich.
-
Maxim Mironjuk
-
Juni 23, 2025
Ein falsch gewaehlter Join-Typ liefert entweder zu wenige Zeilen, weil unpassende Datensaetze stillschweigend verschwinden, oder zu viele Zeilen, weil eine fehlende Join-Bedingung ein kartesisches Produkt erzeugt. Inner Join, Left Join, Right Join und Full Join unterscheiden sich genau darin, welche Zeilen aus den beteiligten Tabellen in der Ergebnismenge landen, wenn eine Bedingung nicht erfuellt ist, und wer das nicht versteht, baut Reports mit stillschweigend falschen Zahlen.
-
Maxim Mironjuk
-
Juni 23, 2025
Warum MySQL's utf8 kein echtes UTF-8 ist, welche Collation für Magento und deutschen Shopbetrieb passt, und wie du sicher auf utf8mb4 migrierst.
-
Maxim Mironjuk
-
Juni 23, 2025
Wer GraphQL-Queries manuell mit Typen synchron hält, baut technische Schulden auf – jeden Mal, wenn sich ein Schema-Feld ändert. Code-Generation aus Schema und Operations-Dateien macht Typen zur Automatisierung statt zur Wartungsaufgabe.
-
Maxim Mironjuk
-
Juni 22, 2025
Ohne Skip-Link müssen Tastaturnutzer und Screenreader-Nutzer bei jedem einzelnen Seitenaufruf zuerst durch die komplette Navigation tabben, bevor sie den eigentlichen Inhalt erreichen. Ein korrekt implementierter Skip-Link, unsichtbar bis zum Fokus, mit echtem Sprungziel und funktionierendem tabindex, löst dieses Problem zuverlässig und macht jede Seite sofort nutzbar.
-