The Case Against Always Using Design Patterns

The Case Against Always Using Design Patterns

You know that feeling when you’re at a buffet and you fill your plate with everything because it’s all available, then realize halfway through that you should’ve just stuck with the pizza? That’s basically what happens when developers discover design patterns. Don’t get me wrong—I love design patterns. They’re like a well-organized toolkit for solving recurring problems. But here’s the uncomfortable truth that nobody wants to admit at tech conferences: design patterns have become the duct tape of modern software development....

October 27, 2025 · 9 min · 1708 words · Maxim Zhirnov
Аргументы против постоянного использования шаблонов проектирования

Аргументы против постоянного использования шаблонов проектирования

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

October 27, 2025 · 6 min · 1120 words · Maxim Zhirnov
Building an Extensible CLI Framework in Go: From Zero to Hero

Building an Extensible CLI Framework in Go: From Zero to Hero

Picture this: you’re staring at your screen, coffee in hand, contemplating whether to use yet another CLI framework or build your own. Well, grab another cup because today we’re diving deep into the rabbit hole of creating an extensible CLI framework in Go that’ll make your future self thank you (and maybe even high-five you through the screen). Building CLI applications in Go is like assembling IKEA furniture – it seems straightforward until you realize you need a framework that doesn’t exist yet....

August 19, 2025 · 13 min · 2681 words · Maxim Zhirnov
Создание расширяемого CLI-фреймворка в Go: от нуля до героя

Создание расширяемого CLI-фреймворка в Go: от нуля до героя

Представьте: вы смотрите на экран, в руке у вас кофе, и вы думаете, использовать ли ещё один фреймворк CLI или создать свой собственный. Налейте себе ещё чашку, потому что сегодня мы погрузимся в кроличью нору создания расширяемого фреймворка CLI на Go, за что ваше будущее «я» скажет вам спасибо (и, возможно, даже даст вам пять через экран). Создание CLI-приложений на Go похоже на сборку мебели IKEA — кажется простым, пока вы не поймёте, что вам нужен несуществующий фреймворк....

August 19, 2025 · 5 min · 946 words · Maxim Zhirnov
Why Your Code Isn't as Adaptable as You Think (And How to Fix It)

Why Your Code Isn't as Adaptable as You Think (And How to Fix It)

Picture this: You’ve just crafted a “masterpiece” of flexible code. You high-five your rubber duck, deploy with confidence, and promise stakeholders, “This’ll handle ANY future change!” Fast forward three months: Product needs “one tiny tweak.” Suddenly, your “flexible” code resembles overcooked spaghetti – resistant to change and full of surprises. Been there? Let’s dissect why code adaptability is often a mirage. The Myth of “Future-Proof” Code We’ve all fallen for the siren song of over-engineering....

July 21, 2025 · 4 min · 716 words · Maxim Zhirnov