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
Keeping Your Software Architecture Fluid and Undefined

Keeping Your Software Architecture Fluid and Undefined

Remember that awkward moment when you tried to add a simple feature to your three-year-old codebase and ended up touching seventeen files? Yeah, that’s what happens when your architecture gets too rigid. It’s like building a house with all the walls welded together—sure, it looks impressive at first, but good luck adding a bathroom. The irony is that we’ve been so obsessed with making things “stable” and “defined” that we’ve created architectures that snap like icicles the moment someone tries to bend them even slightly....

November 13, 2025 · 10 min · 2066 words · Maxim Zhirnov
Сохранение гибкой и неопределенной архитектуры вашего программного обеспечения

Сохранение гибкой и неопределенной архитектуры вашего программного обеспечения

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

November 13, 2025 · 5 min · 977 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