Page 225 - Maxim Mironjuk
-
Maxim Mironjuk
-
July 04, 2025
Adding fields, mutations or complex types to the GraphQL schema from your own Magento module takes more than extend-type syntax: resolver architecture, cross-module schema merging and batch resolving against N+1 queries are all part of the job. This article walks through real code showing how a custom schema extension in Magento 2.4.8 is built cleanly, testably and in a version safe way.
-
Maxim Mironjuk
-
July 04, 2025
A test suite can reach 100 percent code coverage and still miss an obvious bug in a REST endpoint's validation logic, because code coverage only measures whether a line was executed, not whether its actual behavior was verified by a test. Mutation testing closes exactly this gap by artificially introducing small bugs into the code and checking whether the existing test suite actually catches these artificial bugs, instead of blindly relying on pure line coverage as a quality measure.
-
Maxim Mironjuk
-
July 04, 2025
A full git clone transfers every version of every file across the entire history, even when only the current state is needed. Partial clone and shallow clone reduce the transferred data volume in different ways, each suited to different scenarios, from CI runners to developer workstations.
-
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.
-