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

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

Мы все слышали проповеди о безупречных кодовых базах. «Чистый код — это поддерживаемый код!» — хором повторяют они. «Место для всего и всё на своём месте!» — поучают они. Но что, если я скажу вам, что ваша кодовая база может быть здоровее с долей хаоса? Давайте разберёмся, почему иногда контролируемый беспорядок превосходит архитектурную аскетичность. Кодовый «Тетрис»: когда организация не срабатывает Рассмотрим этот фрагмент управления памятью на C++ из проекта симуляции физики:...

June 16, 2025 · 3 min · 594 words · Maxim Zhirnov
Why Building Your Own Rendering Engine Is Like Assembling IKEA Furniture Without Instructions

Why Building Your Own Rendering Engine Is Like Assembling IKEA Furniture Without Instructions

Let me tell you a story about my friend Bob. Fresh out of university, he decided to build an MMO with custom physics, real-time global illumination, and procedurally generated llamas wearing hats. Three years later, his “engine” can barely render a rotating cube without setting his GPU on fire. Don’t be Bob. The Allure of the Custom Engine We’ve all been there - staring at Unreal Engine’s 12 million lines of C++ code thinking:...

May 21, 2025 · 4 min · 643 words · Maxim Zhirnov
Почему создание собственного движка рендеринга похоже на сборку мебели IKEA без инструкций

Почему создание собственного движка рендеринга похоже на сборку мебели IKEA без инструкций

Позвольте мне рассказать вам историю о моём друге Бобе. Недавно окончив университет, он решил создать MMO-игру с собственной физикой, глобальным освещением в реальном времени и процедурно генерируемыми ламами в шляпах. Три года спустя его «движок» едва может отобразить вращающийся куб, не перегружая GPU. Не будьте как Боб. Обольщение собственного движка Мы все были в такой ситуации — смотрели на 12 миллионов строк кода Unreal Engine на C++ и думали: // Их способ GetWorld()->SpawnActor<AAwesomeCharacter>(SpawnLocation); // Мой гипотетически лучший способ SpawnCoolDude(x, y, z, swagLevel); Но прежде чем начать переписывать mathematics....

May 21, 2025 · 3 min · 638 words · Maxim Zhirnov
The Architecture Illusion: Why Your Perfect Blueprint is a Unicorn

The Architecture Illusion: Why Your Perfect Blueprint is a Unicorn

Let me tell you a secret: every time someone says “bulletproof architecture,” a developer somewhere loses the will to live. We’ve all been there - staring at a whiteboard, arguing about hexagonal vs. clean architecture, while the product manager taps their foot impatiently. This isn’t an architecture workshop - it’s a hostage situation with UML diagrams. Let’s start with a universal truth: Software architecture is like sex. Everyone thinks they’re good at it, few are willing to admit their mistakes, and bad decisions lead to messy outcomes that someone else has to clean up....

May 17, 2025 · 3 min · 633 words · Maxim Zhirnov
Архитектурная иллюзия: Почему ваш идеальный проект - Единорог

Архитектурная иллюзия: Почему ваш идеальный проект - Единорог

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

May 17, 2025 · 4 min · 647 words · Maxim Zhirnov