Page 316 - Maxim Mironjuk
-
Maxim Mironjuk
-
February 28, 2025
A covering index contains every column a query needs, so the server never has to touch the actual table. Anyone who applies this technique deliberately turns expensive random I/O against the table into pure, sequential index-only scans, often saving more time than any additional hardware would.
-
Maxim Mironjuk
-
February 28, 2025
A TypeScript library that extends React, Vue or another host library must not bundle its types itself, otherwise two copies of the same type declaration collide for the consumer. Declaring peer dependencies in a type-safe way means setting up the right version range, the right imports and the right CI test matrix for exactly that problem.
-
Maxim Mironjuk
-
February 28, 2025
GraphQL has no HTTP equivalent for business errors. Anyone who models business errors as resolver exceptions, fails to distinguish transport errors from network problems, and ignores extensions.category ends up with error handling that forces the frontend to react to heuristics instead of structure.
-
Maxim Mironjuk
-
February 28, 2025
Snapshot isolation rightly enjoys a reputation as a comfortable compromise: it prevents dirty reads, non-repeatable reads, and most phantom reads, without the locking overhead of a full serializable level. Even so, it still allows a subtle but dangerous anomaly known as write skew, where two transactions independently make decisions that each look consistent on their own but together violate a business rule. Serializable snapshot isolation, or SSI, closes exactly that last gap. This article explains both isolation levels in detail and walks through a classic write skew example step by step.
-
Maxim Mironjuk
-
February 27, 2025
An error inside an async function disappears without a trace, the console shows an unhandled rejection, an empty catch block hides exactly the problem you were looking for. Promise error handling follows its own rules, different from synchronous try catch. This article shows the concrete pitfalls and how to reliably avoid them.
-
Maxim Mironjuk
-
February 27, 2025
Monorepo or polyrepo is one of the most consequential architecture decisions for Git projects, because it shapes commit behavior, access rights, CI/CD pipelines, and daily developer routine for years to come. This article compares both strategies against concrete criteria such as team size, coupling, and tooling, and shows how Magento agencies can sensibly split client projects and custom modules between app/code and their own Composer packages.
-
Maxim Mironjuk
-
February 27, 2025
Social media traffic and organic traffic get blended together in many analytics setups, because in-app browsers swallow referrer data and UTM parameters are applied inconsistently. Without clean channel definitions in GA4, social effects wrongly end up in the organic channel and distort every decision based on those numbers.
-
Maxim Mironjuk
-
February 27, 2025
A Magento schema with several hundred tables cannot be read casually out of a SQL dump. PhpStorm's database tool automatically generates a visual ER diagram from a connected MySQL or MariaDB instance, which gets you up to speed on unfamiliar code and documentation far faster than manually tracing foreign keys.
-
Maxim Mironjuk
-
February 27, 2025
Magento's old jQuery based validation.js does not fit a theme without jQuery, nor a strict Content Security Policy. Alpine based live validation closes that gap, but it never replaces server side checking, since every client side rule can be bypassed with JavaScript disabled or a direct POST request.
-
Maxim Mironjuk
-
February 26, 2025
A skill packages recurring instructions for Claude Code into a reusable, version-controlled structure instead of rephrasing them for every single request. The difference from slash commands and subagents is not just terminology, it is about how and when an ability actually gets activated. This article shows the structure and a practical team example.
-