Why Your Code Shouldn't Always Be DRY: A Practical Guide to Knowing When to Break the Rules

Why Your Code Shouldn't Always Be DRY: A Practical Guide to Knowing When to Break the Rules

If you’ve been in programming for more than five minutes, you’ve probably heard the sacred mantra: “Don’t Repeat Yourself”. It’s treated like the holy scripture of code quality, whispered in code reviews, preached in bootcamps, and invoked by developers everywhere like some sort of software incantation. But here’s the thing—and I say this with all the love in my heart for clean code—dogmatically following DRY might be one of the most effective ways to create a maintenance nightmare....

November 29, 2025 · 11 min · 2255 words · Maxim Zhirnov
Почему ваш код не всегда должен быть СУХИМ: Практическое руководство о том, когда следует нарушать правила

Почему ваш код не всегда должен быть СУХИМ: Практическое руководство о том, когда следует нарушать правила

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

November 29, 2025 · 6 min · 1105 words · Maxim Zhirnov
The Art of Writing Non-Portable Code: When It's Beneficial to Lock-In

The Art of Writing Non-Portable Code: When It's Beneficial to Lock-In

We’ve been preached a gospel for decades: write portable code, avoid vendor lock-in, keep your options open. It’s like being told to never burn bridges or always leave yourself an exit strategy. Sensible advice, sure. But what if I told you that sometimes the best bridge to burn is the one you never needed to build in the first place? Here’s the uncomfortable truth that nobody in a conference talk wants to admit: pursuing absolute portability is often a form of premature optimization that masquerades as architectural wisdom....

November 9, 2025 · 8 min · 1657 words · Maxim Zhirnov
Искусство написания непереносимого кода: Когда выгодно использовать Lock-In

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

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

November 9, 2025 · 5 min · 1058 words · Maxim Zhirnov
Should Programming Languages Have Built-in Ethical Constraints? A Practical Deep Dive

Should Programming Languages Have Built-in Ethical Constraints? A Practical Deep Dive

Ever tried to explain to a non-technical person why you can’t just “add ethics” to a programming language? It’s like trying to explain why you can’t just add sarcasm to calculus—technically possible, utterly confusing, and nobody asked for it anyway. Yet here we are, in 2025, and the conversation about embedding ethical constraints directly into programming languages is becoming increasingly impossible to ignore. Let me be upfront: this isn’t a question with a simple yes or no answer....

November 3, 2025 · 10 min · 1921 words · Maxim Zhirnov