Seite 262 - Mironsoft Blog
-
Maxim Mironjuk
-
Mai 15, 2025
Ein Design System ohne lebende Dokumentation ist nach sechs Monaten veraltet. Storybook 8 verbindet Component-Driven Development, automatisch generierte Docs und visuelles Regressionstesting zu einem Workflow, der tatsächlich durchgehalten wird – von der ersten Button-Komponente bis zur produktionsreifen Bibliothek.
-
Maxim Mironjuk
-
Mai 15, 2025
Viele Entwickler setzen declare(strict_types=1) an den Anfang jeder Datei und glauben damit, ihr Code sei vollständig gegen die berüchtigten Type-Juggling-Überraschungen von PHP abgesichert. Tatsächlich deckt strict_types nur einen Teil des Problems ab, nämlich Funktionsargumente und Rückgabewerte. Interne Vergleiche mit == bleiben davon vollkommen unberührt und lose typisiert. Dieser Artikel zeigt die Grenzen von strict_types genau auf und beschreibt konkrete Fallstricke, denen erfahrene PHP-Entwickler trotzdem regelmässig begegnen.
-
Maxim Mironjuk
-
Mai 15, 2025
Magentos DI-Container erstellt standardmäßig Shared Objects – das ist Singleton-Verhalten. Wo es nützlich ist, wo es Probleme verursacht und wie du Legacy-Singletons sauber refaktorierst.
-
Maxim Mironjuk
-
Mai 15, 2025
Ob Bestellverlauf, Audit-Log oder Aktivitäts-Feed eines Projekts: Chronologisch geordnete Ereignisse gehören zu den häufigsten wiederkehrenden UI-Mustern in Webanwendungen. Optisch stecken darin mehr Details als es zunächst scheint, von der vertikalen Verbindungslinie zwischen den Ereignissen über Icon-Badges pro Ereignistyp bis zum Umgang mit unterschiedlich langen Beschreibungstexten, die das Raster nicht durcheinanderbringen dürfen. Dieser Artikel zeigt, wie sich eine Timeline-Komponente mit reinem Tailwind CSS strukturiert aufbauen lässt und wo sich eine kompakte Activity-Liste von einer ausführlichen Timeline-Ansicht unterscheidet.
-
Maxim Mironjuk
-
Mai 15, 2025
Wer in Symfony Event Listener bisher über services.yaml mit Tags und Methodennamen registriert hat, kennt die Pflege mehrerer Dateien für eine einzige Klasse. Das PHP-Attribut #[AsEventListener] eliminiert diese YAML-Konfiguration vollständig — der Listener ist direkt an der Klasse oder Methode deklariert, typsicher und sofort lesbar.
-
Maxim Mironjuk
-
Mai 15, 2025
Logs in Bash zu verarbeiten bedeutet mehr als grep und ein Auge drauf werfen. Zeitfenster-Filterung, strukturiertes Fehler-Reporting, Frequenzanalysen und die Kombination von grep, awk, sed und jq in effizienten Pipelines machen den Unterschied zwischen reaktiver Fehlersuche und proaktivem Log-Monitoring.
-
Maxim Mironjuk
-
Mai 15, 2025
Eine WebSocket-Verbindung unterscheidet sich fundamental von einer klassischen HTTP-Anfrage, weil sie nicht eine einzelne Anfrage mit genau einer Antwort darstellt, sondern eine dauerhafte, bidirektionale Verbindung, über die zu unvorhersehbaren Zeitpunkten mehrere Nachrichten in beide Richtungen fliessen. Diese fundamentale Eigenschaft macht klassische Request-Response-Testmuster ungeeignet und verlangt nach eigenen Testansätzen für Verbindungsaufbau, laufenden Nachrichtenaustausch und das Verhalten bei einem unerwarteten Verbindungsabbruch.
-
Maxim Mironjuk
-
Mai 15, 2025
Wer in einem größeren Team mit GitLab CI/CD arbeitet, kennt das Phänomen: Jobs landen in der Queue, obwohl die Pipeline schon längst abgeschickt wurde. Die Ursache liegt fast immer in zu niedrig konfigurierten concurrent-Limits, fehlenden Runner-Tags oder unausgewogener Lastverteilung zwischen Build-, Test- und Deploy-Jobs.
-
Maxim Mironjuk
-
Mai 14, 2025
Ein grünes Häkchen in der CI-Pipeline sagt wenig darüber aus, ob eine Testsuite dem Team wirklich vertraut werden kann. Erst wenn Testergebnisse als HTML-Report, Slack-Benachrichtigung und Trenddashboard sichtbar werden, erkennen Entwickler, Tester und Product Owner gemeinsam, wie stabil, wie flaky und wie schnell die eigenen End-to-End-Tests tatsächlich sind.
-
Maxim Mironjuk
-
Mai 14, 2025
Eine Produktliste mit hundert Vorschaubildern oder ein Feed mit hochauflösenden Fotos bringt die eingebaute Image-Komponente von React Native schnell an ihre Grenzen, weil ihr aggressives Caching fehlt. FastImage schließt diese Lücke mit nativer Disk- und Memory-Caching-Logik. Dieser Artikel zeigt die Grenzen der Standard-Komponente und die praktische Konfiguration von FastImage.
-