Page 23 - Monthly Archives: July 2025
-
Maxim Mironjuk
-
July 04, 2025
Immutable objects fundamentally change how reliably PHP code behaves: once constructed, a value object can no longer be secretly changed from anywhere else in the program, because there simply are no setters left. Instead of mutating existing instances, with-methods create a new, fully initialized copy with the changed value on every change. This article uses a running Money example to show how readonly properties, with-methods, and named constructors work together, and why cloning followed by mutation simply does not work technically for readonly properties in PHP.
-
Maxim Mironjuk
-
July 04, 2025
A keyboard trap happens when keyboard focus enters a modal, dropdown, or third-party widget and can't find its way back out with Tab or Shift Tab. For keyboard users and screen reader users, that means a complete blocking point. This article covers common causes, a systematic test procedure, and a correct focus trap implementation that can always be exited reliably with the Escape key.
-
Maxim Mironjuk
-
July 04, 2025
Anyone who keeps GraphQL queries manually in sync with types builds up technical debt, every single time a schema field changes. Code generation from the schema and operations files turns types into automation instead of a maintenance chore.
-
Maxim Mironjuk
-
July 04, 2025
Release notes speak to users and stakeholders, not developers, and therefore need a different tone than a technical changelog. This article shows how a Bash script automatically builds readable release notes with contributors, highlighted key changes, and a comparison link from the commit range between two tags, and pushes them directly to the GitHub or GitLab Release API.
-
Maxim Mironjuk
-
July 04, 2025
Constantly jumping between a feature branch, a hotfix, and a pull request review wastes time on stashing, switching, and waiting for freshly installed dependencies. Git worktree solves this structurally: multiple branches at once in their own directories, one shared repository, no lost context, and no interrupted work.
-
Maxim Mironjuk
-
July 04, 2025
Pipeline aggregations do not run over individual documents, they run over the results of other aggregations. That lets trends, moving averages and cumulative sums be computed directly in the query, instead of rebuilding them in application code where they are error-prone. Confuse sibling and parent pipelines, and you get aggregation errors or incorrectly nested results.
-
Maxim Mironjuk
-
July 04, 2025
Every CI pipeline that reinstalls dependencies or rebuilds artifacts from scratch on every run wastes time and money. A Bash script that consistently derives its cache key from a checksum of the relevant files ensures a cache gets invalidated automatically the moment something changes, and reused reliably otherwise.
-
Maxim Mironjuk
-
July 03, 2025
CI/CD variables are the configuration contract of every GitLab pipeline. Get SSH keys, Composer auth tokens and ENV files wrong, and you risk exposed secrets, broken builds and unclear environment separation. This article shows how to set up variables in GitLab correctly, scope them properly and consume them safely in pipelines.
-
Maxim Mironjuk
-
July 03, 2025
A mini-cart that updates only visually leaves screen reader users unsure whether a product was actually added. With a correct live region, full keyboard operability and clean focus management, the flyout becomes usable, testable and WCAG compliant for every visitor alike.
-
Maxim Mironjuk
-
July 03, 2025
The Supply Chain Due Diligence Act, known in Germany as the Lieferkettensorgfaltspflichtengesetz or LkSG, requires large companies in Germany to respect human rights and environmental standards in their own business operations and along their supply chain. Many owners of smaller online shops believe this law has nothing to do with them, because it officially only applies to very large companies. In reality, small retailers can be indirectly affected as soon as they supply products to larger business partners or sell imported goods from countries with elevated risk.
-