Pull to refresh

Comments 15

UFO just landed and posted this here

Согласен, операторы цикла без тела цикла. Экономия на {}, зачем? Так же про if. Хотя по хорошему такие места должны ещё на этапе линтера отваливаться по стилю кода типа clang-format, а не вот это condition never reached и другие навороты pvs.

Многие команды почему-то стремятся избегать лишних {}. Например, когда я переписывал во FreeBSD mount() через их новый ядерный интерфейс, меня ревьюеры постоянно шпыняли за привычку оборачивать в {} одиночные строчки после if, while и так далее — там почему-то такое не принято.
Ну и какая в данном случае гибкость?
Сэкономить несколько строчек вынеся чего-то в Condition?

Или вот никогда не понимал, зачем мне присвоение в if? Опять какая-то экономия на спичках во вред читаемости.
ну, этот пример немного не то показывает.

Что do нет там сразу видно. И ревьюер бы спросил «а где do?».
А анализатор выдал три разные ошибки, которые по сути свелись к «что-то здесь не так».
И на понимание ошибки ушло, как там, пять писем и два дня?

Понятно, что всё равно лучше с анализатором, чем без. И что мысли он читать не может. Но пример неудачный.

Насколько я понимаю, это иллюстрация того, что вероятность ошибки в коде гораздо выше вероятности ложного срабатывания анализатора.
И первым делом надо внимательно код почитать, в препроцессорный вывод посмотреть, а уже потом писать в техподдержку о ложном срабатывании.

Очень удачный пример того, что ручное вревью кода уступает автоматическому.

Примеры ошибок в нашем блоге создают ложное ощущение, что «там сразу видно», но это не так.
Я по себе сужу, сразу заметил, что do нет. Было раньше много примеров, где совсем непонятно без PVS-Studio.

А этот пример показывает, что анализатор выдал неправильное предупреждение. Формально правильное, «вы находитесь на воздушном шаре», но не очень полезное.

Честно говоря, ожидал увидеть триллер на десяток мониторов вниз :)

Но на практике всё работает, и если кварц не запускается, то мы выходим из этого участка по тайм-ауту ;-)
Настоящий триллер мог бы быть потом, когда надо было бы отлаживать баг. А реальное место ошибки было изначально исключено из рассмотрения)
У меня несколько необычный вопрос.
Есть ли какие то перспективы и возможности «прицепить» PVS-Studio
к проверке кода сделанного на Tcl/Tk?
Не получится. Но я знаю умельцев, которые сделали транслятор PHP в C++ для выявления рада ошибок, и мы смогли проверить такой код и найти реальные ошибки в PHP. Можете пойит по такому же пути, если качество кода критично, а инструментов нет.
Вы говорите о ВКонтакте с их kPHP?
Sign up to leave a comment.