Page 15 - Monthly Archives: August 2025
-
Maxim Mironjuk
-
August 11, 2025
A schema migration without clear versioning and a rollback plan quickly turns into a risk on a large live table. This article shows naming conventions for migration files, the difference between forward-only and reversible migrations, the expand-contract pattern, and safe approaches for NOT NULL columns on tables with millions of rows, with concrete SQL for every step.
-
Maxim Mironjuk
-
August 10, 2025
A REST API without correctly documented security requirements is a black box for consumers. OpenAPI 3.x offers four security scheme types that can be made directly usable in the Swagger UI, if you know how to model them correctly, combine them globally and endpoint-specifically, and control them granularly with scopes.
-
Maxim Mironjuk
-
August 10, 2025
A star rating made of five filled and empty icons is instantly understandable for sighted users, but without extra markup it is either completely silent for screen reader users or a confusing sequence of five separate graphics with no recognizable overall value. Consistently making the rating's text alternative, the review form, and the sort and filter options for reviews accessible turns a purely visual trust signal into information every user can actually retrieve.
-
Maxim Mironjuk
-
August 10, 2025
EXPLAIN shows what the optimizer plans, EXPLAIN ANALYZE shows what actually happened. Anyone who correctly interprets type, key, rows and Extra, and compares estimated rows against real execution statistics, finds full table scans and filesorts before they become a problem in production.
-
Maxim Mironjuk
-
August 10, 2025
A ranking with thousands of players sounds like a sorting and scaling problem, but with Redis Sorted Sets it is a data structure built for exactly that. ZADD, ZRANK and ZREVRANGE deliver ranking, neighborhood queries and top-N lists in logarithmic time, without the application ever having to sort or cache anything itself.
-
Maxim Mironjuk
-
August 10, 2025
A savepoint marks an intermediate point inside a running transaction that you can later roll back to, without giving up the entire transaction. Especially in batch processing, this tool lets you discard individual failed items while keeping the work already completed successfully.
-
Maxim Mironjuk
-
August 10, 2025
Anyone who compiles on production servers couples the build environment and the runtime environment in a way that leads to non-reproducible deployments. Docker release images with multi-stage builds cleanly separate these phases, deliver lean artifacts, and turn every deployment into a controllable, reversible operation.
-
Maxim Mironjuk
-
August 09, 2025
Loading data in React has always meant the same thing: useEffect, useState, a loading state, an error state, boilerplate. The use() hook from React 19 makes this declarative: a Promise goes in, the resolved value comes out, and Suspense takes care of the rest.
-
Maxim Mironjuk
-
August 09, 2025
A solid CI/CD pipeline turns every merge into a reproducible, signed build, instead of relying on manually built binaries from individual developer machines. This article shows how GitHub Actions and Expo Application Services together automate lint, tests, cloud builds, code signing and store submission for a React Native app.
-
Maxim Mironjuk
-
August 09, 2025
TypeScript 5.2 introduced using and await using, based on the TC39 proposal for Explicit Resource Management. Resources such as file handles, database connections, or locks are now released automatically and deterministically as soon as their scope is left.
-