Page 17 - Monthly Archives: June 2025
-
Maxim Mironjuk
-
June 06, 2025
Teams that never cleanly separate branches from deployment environments eventually push untested code straight to production by accident. This article shows how Magento teams can map branches unambiguously to dev, staging, and prod, promote code through environments via merge and tag instead of rebase, keep configuration out of the shared history, and lock down branches and pipelines per environment.
-
Maxim Mironjuk
-
June 05, 2025
Anyone repeating the same code across several Symfony projects should build a custom Symfony bundle. This article walks through the full directory structure, the bundle class, the Composer package and kernel registration, so recurring logic becomes a maintained, testable component.
-
Maxim Mironjuk
-
June 05, 2025
Joining two strings or extracting a substring sounds like the simplest task in SQL, yet MySQL, PostgreSQL, SQL Server, and Oracle differ in operators, function names, and even how character positions are counted. Anyone who wants to keep string functions portable across these systems needs to know these differences before Unicode and multibyte characters add further pitfalls.
-
Maxim Mironjuk
-
June 05, 2025
As soon as a project needs to pull in code from another repository, two built in Git mechanisms come into play: submodules and subtree. Both solve the same underlying problem of making external history referenceable inside your own repository, but with very different consequences for checkout, CI pipelines, and who maintains which code where. This article compares both approaches through concrete workflows and explains when each one makes sense in a Magento context.
-
Maxim Mironjuk
-
June 05, 2025
Redux Toolkit has largely replaced classic Redux with its endless switch statements and action type constants. With createSlice, RTK Query and Entity Adapter, global state in React applications can be modeled with far less code, more type safety and built in server state caching.
-
Maxim Mironjuk
-
June 05, 2025
A publicly reachable API without rate limiting is an open invitation for brute force attacks, credential stuffing and automated data scraping. The Symfony Rate Limiter offers three different algorithms, Token Bucket, Sliding Window and Fixed Window, and can be integrated into any controller, service or event listener within minutes.
-
Maxim Mironjuk
-
June 04, 2025
mask-image masks an element through a gradient or image file with stepless transparency, instead of only clipping it hard and geometrically like clip-path. That makes the property the right tool for frayed product images, organic hero areas, and a reusable icon system that needs no extra SVG exports at all.
-
Maxim Mironjuk
-
June 04, 2025
Anyone who designs REST APIs without clear patterns builds in inconsistencies that multiply over months. Shaping resource structure, status codes, error formats, pagination and versioning according to proven patterns separates APIs that survive in production from ones that produce breaking changes with every release.
-
Maxim Mironjuk
-
June 04, 2025
Elasticsearch's text based BM25 scoring evaluates relevance purely on text matching, ignoring business relevant signals such as stock level or margin. Painless scripts inside a function score query can close that gap, but only once the Magento integration point and the performance implications are properly understood.
-
Maxim Mironjuk
-
June 04, 2025
Self-healing tests promise that a selector broken by a harmless layout change gets automatically detected and swapped for a matching alternative, without a human ever manually touching the test code. That promise sounds tempting given the well-known maintenance burden of brittle E2E tests, but it hides a fundamental misunderstanding of what a selector actually does, and where automatic heuristics hit their real limits the moment not just the structure but an element's actual meaning changes.
-