RU

Семь стрел, 429 деревьев: семилетняя ошибка именования, всплывшая за чисткой Mermaid-визуализации

Заходят как-то две машины Тьюринга в одну диаграмму… а у них имена одинаковые. Я говорю «машины», а на деле — два р…

проектирование apiрефакторингчисла каталанаmermaidкомпозиция состоянийopen sourceмашина тьюринга
Habr
RU

Два года один пилю MMORPG на CI4: пять багов, за каждым из которых стоял живой игрок

Строка “false” в PHP равна true. Я узнал это, когда рубильник, которым я выключаю фичи перед живыми игроками, полгода отказывался выключаться. Два год…

codeigniter 4phpphpstanmysqlormutf8mb4граблиmmorpgtelegram ботрефакторинг
Habr
RU

Контекстный менеджер Python: пишем свой with и управляем ресурсами через ООП

Работа с внешними ресурсами — файлами, базами данных или сетевыми соединениями — требует строгой дисциплины. Забыли закрыть соединение? Приложение в и…

pythonоопконтекстные менеджерыcontext managerоператор withdunder методыуправление ресурсамирефакторингpython3чистота кода
Habr
RU

Два мажора, один README, одно демо: два почти бесплатных дизайн-ревью

Из трёх мажоров, описанных в предыдущей статье, два не всплыли в тестах. Они всплыли в двух дизайн-ревью, которые тесты прове…

проектирование apiмашина тьюрингарефакторингjavascriptдизайн-ревьюдокументация
Habr
RU

«Весомый» рефакторинг, или как мы перестали беспокоиться и полюбили работу с весами

Представьте, что вы работаете над кодом магазина, который живёт уже много лет. Бизнес доволен, продажи растут, но есть одна проблема — модуль обращени…

javaмоделирование системархитектурные паттернырефакторингархитектура приложенияработа с устройствамивесыdispringкачество кода
Habr
RU

Эволюция Telegram‑бота на C++: от «лапши» в main() до ООП, in‑memory кэша и мутов по Фибоначчи

Привет, Хабр! В этой статье я расскажу об эволюции моего проекта — GroupModerBot , бота для модерации Telegram‑групп. Я покажу, ка…

c++c++20sqlitetelegramtelegram botкэшированиемодерированиерефакторингботopen source
Habr
RU

Feature Based Clean Architecture. Часть 2: Декомпозиция на сервисы: анализ ограниченности подхода

Стандартный ответ на god-сервис — декомпозиция: разнести логику по нескольким сервисам с чёткими зонами ответственности, оставить тонкий оркестратор. …

nestjstypescriptархитектурабэкендантипаттерныgod objectfeature-basedтехнический долгрефакторингtypeorm
Habr
RU

Сложно читать IT литературу на кривом русском? Есть решение — книжный ревью (рефакторинг)

Я читаю IT-книги уже много лет. И много лет мирюсь с одним и тем же: «управление транзакций с помощью повествований» вместо саги, «многоразовый код» в…

переводыbook reviewdebugingрефакторинг
Habr
RU

Когда онбординг длится 2 месяца: день 3 — проследить главный поток данных

Иногда систему нужно быстро объяснить человеку со стороны: новому разработчику, техлиду, архитектору, аудитору или инвестору на technical due diligenc…

онбордингdata flowархитектурадокументацияUMLAPISDKdebugginglegacyрефакторинг
Habr
RU

Ваша кодовая база умрёт через 7 лет. Считаем на пальцах

Откройте свой git log за последний месяц. Посчитайте коммиты, начинающиеся со слов fix, hotfix, temp, workaround или (классика жанра) – //TODO: перепи…

технический долгтехдолгlegacyрефакторингai-кодvibe codingmckinseyуправление разработкойархитектура поKnight Capital
Habr
RU

Техдолг = налог. Как перевести его в рубли и показать финдиру

Фича делалась 3 дня, теперь делается 3 недели. Как перевести техдолг в рубли и перестать проигрывать разговор с бизнесом. Читать далее

техдолгтехнический долгрефакторингDORASonarQubeCodeSceneуправление разработкойбюджет на разработкуметрики кода