Seite 230 - Maxim Mironjuk
-
Maxim Mironjuk
-
Juni 24, 2025
Insert oder Update in einer einzigen Anweisung klingt nach einem einfachen Problem, doch jede Datenbank loest es mit eigener Syntax, eigener Atomaritaet und eigenen Fallstricken. Wer Upsert-Code zwischen MySQL, PostgreSQL, SQL Server, Oracle und SQLite portabel halten will, muss die Unterschiede kennen, bevor der erste produktive Wechsel ansteht.
-
Maxim Mironjuk
-
Juni 24, 2025
Ein MySQL-Major-Version-Upgrade ist kein einfacher Paket-Update-Befehl, sondern eine Einbahnstraße mit mehreren stillen Verhaltensänderungen, die erst nach dem Upgrade sichtbar werden. Zwischen MySQL 5.7 und 8.0 liegen Änderungen am Optimizer, an der Standard-Zeichenkodierung, an der Authentifizierung und am gesamten Query-Cache-Subsystem, die einen produktiven Magento-Shop empfindlich treffen können, wenn sie vor dem Upgrade nicht bekannt sind.
-
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.
-