Seite 166 - Mironsoft Blog
-
Maxim Mironjuk
-
September 24, 2025
MVCC erlaubt es einer Datenbank, jeder Transaktion eine konsistente Momentaufnahme der Daten zu zeigen, ohne dass Lesevorgänge Schreibvorgänge blockieren oder umgekehrt. Statt Zeilen zu sperren, verwaltet die Datenbank mehrere Versionen jeder Zeile gleichzeitig, PostgreSQL und InnoDB lösen das auf unterschiedliche Weise, mit direkten Folgen für Vacuum, Purge und die Auswahl des Isolation Levels.
-
Maxim Mironjuk
-
September 24, 2025
Ein Async Generator liefert Werte einzeln und bei Bedarf, statt eine komplette Ergebnisliste im Speicher zu halten. Für paginierte APIs, große Exporte und Live-Datenströme ersetzt async function* zusammen mit for await...of fehleranfällige Schleifen-Konstrukte durch lesbaren, komponierbaren Code.
-
Maxim Mironjuk
-
September 23, 2025
Ein Play Console Eintrag ist mehr als ein Titel und ein Icon: Store-Listing, Content-Rating, Data Safety und Testing-Tracks entscheiden gemeinsam darüber, ob eine React Native App überhaupt live gehen kann. Dieser Leitfaden erklärt Schritt für Schritt, wie ein Play Console Eintrag richtig aufgebaut wird und welche Felder in der Praxis am häufigsten für Verzögerungen sorgen.
-
Maxim Mironjuk
-
September 23, 2025
Ein Skript mit & im Hintergrund zu starten macht noch keinen Daemon. Ein echter Daemon löst sich vollständig vom Terminal, verhindert Mehrfachstart über eine PID-Datei, reagiert kontrolliert auf Signale wie SIGTERM und SIGHUP, und schreibt sein Log an eine Stelle, die auch ohne Terminal erreichbar bleibt.
-
Maxim Mironjuk
-
September 23, 2025
useCallback und useMemo sind die am häufigsten falsch eingesetzten Hooks in React. Sie kosten immer etwas – Speicher, Laufzeit für den Vergleich, kognitive Komplexität – und helfen nur in spezifischen, messbaren Situationen. Wer sie überall einsetzt, macht seine Applikation langsamer, nicht schneller.
-
Maxim Mironjuk
-
September 23, 2025
Ein Dark Mode der beim nächsten Seitenaufruf vergessen ist, oder der beim Laden kurz hell aufblitzt bevor er dunkel wird – das sind die häufigsten Fehler. Alpine.js löst beides: $persist speichert die Nutzerpräferenz dauerhaft in localStorage, und ein Blocking-Script vor Alpine.js verhindert den Flash of Wrong Theme.
-
Maxim Mironjuk
-
September 23, 2025
Manche Tests scheitern nicht, weil der getestete Code fehlerhaft ist, sondern weil sie von Faktoren abhaengen, die sich der Kontrolle des Tests entziehen: Netzwerklatenz, Timing-Fenster oder externe Dienste mit gelegentlichen Aussetzern. Retry-Plugins wiederholen einen fehlgeschlagenen Test automatisch, bevor sie ihn endgueltig als rot werten, und koennen so eine instabile CI-Pipeline kurzfristig stabilisieren. Wer Retry aber als dauerhafte Loesung statt als befristete Uebergangsmassnahme einsetzt, verschiebt echte Probleme nur in eine bequeme Grauzone.
-
Maxim Mironjuk
-
September 23, 2025
Ein gutes Kanban-Board lebt von klaren Spaltengrenzen, gut lesbaren Karten und sichtbarem Feedback während des Ziehens. Mit Tailwind CSS für Layout und Zustände sowie Alpine.js für Drag-and-drop-Interaktion entsteht ein Board, das auch bei vielen Karten und Spalten übersichtlich bleibt.
-
Maxim Mironjuk
-
September 23, 2025
Nicht jedes Team nutzt die GitLab-eigene Kubernetes-Integration. Oft reicht ein einfacher kubectl-Aufruf direkt aus der Pipeline heraus, solange Kubeconfig und Zugriffsrechte sauber und sicher konfiguriert sind. Dieser Artikel zeigt den kompletten Weg von der Kubeconfig-Variable bis zum geprueften Rollout.
-
Maxim Mironjuk
-
September 22, 2025
Migrationslogik im Entrypoint des App-Containers zu verstecken, funktioniert eine Weile gut und faellt dann bei Skalierung, parallelen Starts oder fehlgeschlagenen Migrationen unangenehm auf. Ein eigener, kurzlebiger Init-Container mit klarer Erfolgsbedingung loest dieses Problem strukturell.
-