Как стать автором
Обновить

Комментарии 7

Спасибо за проделанную работу, как разработчик и мейнтейнер данного проекта обязательно изучу и исправлю найденные проблемы. С онлайн-отчетами Sonar на этом же проекте можно ознакомиться тут.

Пара замечаний по найденным ошибкам:

Предупреждение номер 2
Одинаковый код в обеих ветках образовался в результате рефакторинга, а не копипаста — если до этого для LOOK_AT_FACE_DOWN применялась специальная логика, то после изменения она стала общей для всех.

Предупреждение номер 4
Ошибка образовалась в результате оптимизации, когда был добавлен кеш в виде savedSpecialRares, куда и должны были сохраняться заранее подготовленные списки карт из базы. Т.е. данный код когда-то работал корректно, но после оптимизации сломался.

Остальные всё по делу.

P.S. Основная сложность данного проекта — не все карты или режимы игры популярны, поэтому многие вещи могут годами оставаться незамеченными (без баг-репортов от пользователей). Поэтому мы стараемся, по возможности, добавлять побольше юнит-тестов.
Все исправления для статьи можно посмотреть в этом PR. Так же дополнено:

Предупреждение N7
Код корректный и лишний else не имеет смысла. Там просто немного сломанная логика в самом коде. Оба вызова для selectUser используют поиск пользователя по имени. В первый раз происходит попытка создания новой сессии. Если она успешна (такого пользователя нет онлайн) — возвращается сессия. Если же она провалилась (такой пользователь уже онлайн) — возвращается пустое значение и запускается дополнительная проверка (можно ли этого пользователя переподключить). Соответственно, во втором вызове поиск по имени будет всегда возвращать результат, и else не нужен.

Минутка МТГ-занудства про КДПВ: статический анализатор, как средство наведения порядка в коде, должен быть белым (возможно, бело-синим), но никак не красным :)


All your Programs get +1/+1.
2T: exile target Bug.

Тогда уж скорее не exile, а destroy, потому как баги имеют нехорошее свойство всплывать повторно, в том числе порождаться на том же месте. Пусть статический анализатор и помогает их фиксить, гарантий на то, что баг "достанут с кладбища" все-таки нет.

Как в таком случае выглядит «indestructible» баг?
Его нельзя уничтожить, потому что на нем держится вся система?

Это уже не баг, это фича, да.

Как вариант:


exile target Bug until Static Analysis Team leaves the battlefield.

Будет очень флаворно и по-белому.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий