Искусство написания непереносимого кода: Когда выгодно использовать Lock-In

Искусство написания непереносимого кода: Когда выгодно использовать Lock-In

Нам десятилетиями внушали: пишите портативный код, избегайте привязки к поставщику, держите свои возможности открытыми. Это как если бы вам говорили никогда не сжигать мосты или всегда оставлять себе путь к отступлению. Разумный совет, безусловно. Но что, если я скажу вам, что иногда лучший мост, который нужно сжечь, — это тот, который вам вообще не нужно было строить? Вот неудобная правда, которую никто в докладе на конференции не хочет признать: стремление к абсолютной портабельности часто является формой преждевременной оптимизации, которая маскируется под архитектурную мудрость....

November 9, 2025 · 5 min · 1058 words · Maxim Zhirnov
The Benefits of Not Writing Tests for Every Piece of Code

The Benefits of Not Writing Tests for Every Piece of Code

You know that feeling when you’re staring at a five-line getter function, and your linter is screaming at you because coverage is at 87% instead of 95%? Yeah. That’s the moment I want to talk about. The testing community has done an incredible job evangelizing unit tests—and for good reason. Tests catch bugs, they provide confidence, they act as safety nets. But somewhere along the way, we’ve collectively developed test-writing religiosity....

November 8, 2025 · 8 min · 1686 words · Maxim Zhirnov
Преимущества отказа от написания тестов для каждого фрагмента кода

Преимущества отказа от написания тестов для каждого фрагмента кода

Вы знаете это чувство, когда вы смотрите на функцию геттера из пяти строк, а ваш линтер кричит на вас, потому что покрытие составляет 87% вместо 95%? Да. Вот об этом моменте я и хочу поговорить. Сообщество тестировщиков проделало невероятную работу по популяризации модульных тестов, и не зря. Тесты находят ошибки, они придают уверенности, они действуют как страховка. Но где-то по пути мы коллективно развили религиозное отношение к написанию тестов. Идея о том, что каждая строка кода заслуживает теста....

November 8, 2025 · 5 min · 1046 words · Maxim Zhirnov
The Myth of Code as Craft: Why Pragmatism Beats Perfection

The Myth of Code as Craft: Why Pragmatism Beats Perfection

We’ve all been there. It’s 11 PM on a Friday night, your feature works, tests pass, and the code review is pending. But something gnaws at you. That function could be more elegant. That class hierarchy could follow a more sophisticated pattern. That variable name could be even more descriptive. You refactor. You restructure. You rename. And suddenly, what should have shipped three hours ago is still sitting in your local branch, shiny and perfect, while your colleagues have gone home....

October 23, 2025 · 9 min · 1882 words · Maxim Zhirnov
Миф о коде как ремесле: Почему прагматизм превосходит совершенство

Миф о коде как ремесле: Почему прагматизм превосходит совершенство

Мы все бывали в такой ситуации. Время — 23:00 в пятницу, ваша функция работает, тесты пройдены, и код ждёт ревью. Но что-то вас беспокоит. Эта функция могла бы быть более элегантной. Иерархия классов могла бы следовать более сложному шаблону. Имя переменной могло бы быть ещё более описательным. Вы занимаетесь рефакторингом. Перестраиваете. Переименовываете. И вдруг то, что должно было быть отправлено три часа назад, всё ещё сидит в вашей локальной ветке, блестящее и идеальное, пока ваши коллеги уже ушли домой....

October 23, 2025 · 6 min · 1154 words · Maxim Zhirnov