Seite 217 - Maxim Mironjuk
-
Maxim Mironjuk
-
Juli 15, 2025
Tests, die Implementierungsdetails prüfen, brechen bei jedem Refactoring. React Testing Library erzwingt Tests aus Nutzerperspektive — mit getByRole statt getByTestId, userEvent statt fireEvent und MSW statt fetch-Mocks.
-
Maxim Mironjuk
-
Juli 14, 2025
Ein Failover-Mechanismus, der niemals unter realistischen Bedingungen getestet wurde, ist nur eine Annahme über Ausfallsicherheit, kein Beweis dafür. Systematisches Failover-Testen mit kontrollierten Ausfallsimulationen, klaren Messwerten wie RTO und RPO und einem wiederholbaren Testplan deckt genau die Lücken auf, die im echten Ernstfall zu langen Ausfallzeiten führen würden.
-
Maxim Mironjuk
-
Juli 14, 2025
Runtime Fields berechnen ein Feld erst zur Abfragezeit mit einem Painless-Skript, statt es beim Indexieren fest im Mapping zu speichern. Damit lassen sich neue Auswertungsideen sofort ausprobieren, ohne Milliarden Dokumente neu zu indexieren, bevor feststeht, ob sich die Idee überhaupt lohnt.
-
Maxim Mironjuk
-
Juli 14, 2025
Eine ungeregistrierte Custom Property vererbt in CSS immer, unabhängig davon, ob ihr Name einen lokalen, komponentenspezifischen Wert suggeriert. Erst @property gibt einer Custom Property einen festen Typ, einen garantierten Initialwert und ein explizites Vererbungsverhalten, und schließt damit eine ganze Klasse von Bugs, die in großen Design-Systemen sonst schwer aufzuspüren sind.
-
Maxim Mironjuk
-
Juli 14, 2025
Ein unverschlüsseltes Datenbank-Backup, das in einem externen Speicher oder bei einem Cloud-Anbieter landet, ist ein vollständiger Abzug aller Kundendaten, sobald ein Angreifer Zugriff auf diesen Speicher erlangt. Dieser Artikel zeigt, wie Percona XtraBackup mit den --encrypt-Optionen verschlüsselte Backups erzeugt, wie Schlüssel sicher verwaltet werden, wie der Wiederherstellungs-Workflow mit Entschlüsselung abläuft und wie sich eine Aufbewahrungsstrategie für mehrere Backup-Generationen mit unterschiedlichen Schlüsseln aufbauen lässt.
-
Maxim Mironjuk
-
Juli 14, 2025
Bedingte Aggregation gehört zu den häufigsten Anforderungen in Reporting-Queries: Wie viele Bestellungen sind storniert, wie viele abgeschlossen, wie viele noch offen, alles in einer einzigen Zeile pro Gruppe. Der klassische Weg dorthin führt über COUNT in Kombination mit einem CASE-WHEN-Ausdruck, der je nach Bedingung entweder einen Wert oder NULL zurückgibt. Der SQL-Standard bietet seit einiger Zeit eine deutlich klarere Alternative: die FILTER-Klausel, direkt an die Aggregatfunktion angehängt. Dieser Artikel zeigt, wie FILTER funktioniert, warum es CASE-WHEN in vielen Fällen an Lesbarkeit übertrifft, wie es sich mit Window Functions für mehrere parallele Kennzahlen kombinieren lässt und wo die Grenzen der Datenbank-Verfügbarkeit liegen.
-
Maxim Mironjuk
-
Juli 13, 2025
Der Crawl-Stats-Report versteckt sich in den Einstellungen der Search Console und wird deutlich seltener genutzt als der Leistungsbericht oder die Indexierungsübersicht, obwohl er als einziger Bericht direkt zeigt, wie Googlebot eine Website tatsächlich crawlt. Wer versteht, wie sich Crawl-Anfragen nach Antwortcode, Dateityp und Zweck aufschlüsseln lassen, erkennt technische Probleme oft Wochen bevor sie sich in Rankings oder im Indexierungsstatus bemerkbar machen.
-
Maxim Mironjuk
-
Juli 13, 2025
Ein Cronjob, der nachts laeuft, verschwindet fuer Prometheus normalerweise spurlos: Kein laufender Prozess bedeutet keinen abfragbaren HTTP-Endpunkt. Der Node Exporter Textfile Collector loest dieses Problem, indem er einfache .prom-Dateien im Dateisystem einliest, die ein Bash-Skript selbst schreibt, und macht Cronjob-Dauer, Erfolg oder Fehlschlag damit ohne zusaetzlichen Dienst fuer Prometheus abfragbar.
-
Maxim Mironjuk
-
Juli 13, 2025
Echte Komponentenisolation braucht zwei getrennte Garantien: kollisionsfreie Klassennamen und eine vorhersagbare Spezifitätsreihenfolge. CSS Modules liefern die erste Garantie zur Build-Zeit, native Cascade Layers die zweite zur Laufzeit, und zusammen entsteht eine Isolation, die ohne Shadow DOM und ohne UI-Framework auskommt.
-
Maxim Mironjuk
-
Juli 13, 2025
Global Transaction Identifiers lösen ein Problem, das jeder kennt, der nach einem Crash manuell die richtige Binlog-Position für CHANGE MASTER TO gesucht hat. Wer eine bestehende, positionsbasierte Replikation ohne Datenverlust auf GTIDs umstellt, gewinnt automatisches Failover-Handling und verliert eine ganze Klasse von Betriebsfehlern gleichzeitig.
-