Комментарии 19
Комментарии наше все!
Правда остаются вопросы типа «как это printf что-то там отрезает» :)
Где ссылка на тесткейс / баг в жире / и т.п.? :)
Где ссылка на тесткейс / баг в жире / и т.п.? :)
Регулярно ставлю ссылки на issues в гитхабе. Если он протухнет до той степени, что они перестанут работать, бестолковые комментарии станут наименьшей из моих проблем.
Del
PVS-Studio может находить ошибки «переполнения переменных», как описано у меня в статье?.. ( При статическом анализе кода, возможно найти подобные ошибки. )
На мой взгляд статья сложна для восприятия. Я еле её прочитал и не уверен, что понял суть корректно. Правильно я понимаю, что суть сводится к следующему? Есть проверка вида A — B < C, где A, B, и C это переменные целочисленного типа. И это неправильно, так как возможно переполнение.
Такие конструкции ловить можно, но не факт, что это хорошая идея. Будет много бессмысленных срабатываний. А так вообще некоторые виды переполнения анализатор ловит.
Такие конструкции ловить можно, но не факт, что это хорошая идея. Будет много бессмысленных срабатываний. А так вообще некоторые виды переполнения анализатор ловит.
A — B < C это было бы очень просто. Там скорее, о возможности нескольких переполнений сразу и влиянии на различные переходы if
(Начал описывать подробности, но удалил их. Слишком много писать.)
Спасибо за ответ.
(а насчёт моей статьи, возможно читать не легко, но описывал реальные проблемы в драйвере, которые по сей день вызывают панику ядра. при этом, вызываются удалённо)
(Начал описывать подробности, но удалил их. Слишком много писать.)
Спасибо за ответ.
(а насчёт моей статьи, возможно читать не легко, но описывал реальные проблемы в драйвере, которые по сей день вызывают панику ядра. при этом, вызываются удалённо)
С учётом того, что вы тестируете много разнообразных проектов, можете написать, какой стандарт C++ сейчас чаще всего встречается/используется и больше или меньше становится ошибок в проектах при использовании более новых стандартов C++?
Вторая часть статьи как раз показывает, что вместо «хорошего комментария» предпочтительнее вариант «самодокументирующегося кода» с выделением в функцию с говорящим названием. DRY
Я не согласен в данном случае. Заводить функцию, это ещё 3-4 строчки кода, вместо 2 для комментария. При этом функция будет весьма странна. Она будет состоять только из вызова memcpy и называть её нужно очень длинно! Что-то в духе: printf_above_stripped_our_nonprintable_control_characters_put_them_back :). В противном случае, опять-таки будет непонятно, зачем эта функция нужна. Такое себе… Я считаю комментарий хорошим вариантом.
Или вы имеете в виду, в имя функции печати добавить информацию про непечатные символы? В этом случае, что-то тоже я не знаю как коротко дать ей название. И при таком подходе будет сложно догадаться, зачем memcpy, пока не прочитаешь код выше. Тоже так себе…
Или вы имеете в виду, в имя функции печати добавить информацию про непечатные символы? В этом случае, что-то тоже я не знаю как коротко дать ей название. И при таком подходе будет сложно догадаться, зачем memcpy, пока не прочитаешь код выше. Тоже так себе…
Что-то в духе: printf_above_stripped_our_nonprintable_control_characters_put_them_back :).
Функцию можно назвать и короче, например: preserve_non_printable_characters, и добавить подробный поясняющий комментарий к ней.
Заводить функцию, это ещё 3-4 строчки кода, вместо 2 для комментария.
Функция заводится всего 1 раз, и поясняющий комментарий к ней достаточно будет написать 1 раз.
Она будет состоять только из вызова memcpy
А что в этом плохого? Тем более если компилятор заинлайнит потом тело функции?
В случае отдельной функции — для неё можно будет отключить диагностику PVS-Studio, но оставить для всего остального кода, разве нет?
а что мешало автору кода просто написать функцию с более адекватным названием вместо этого комментария?
Все чаще появляются статьи «как я фиксил баг», «советы разработчику», теперь комментарий…
Дальше что, будут статьи «как гуглить», «рекомендации для работы за компьютером»?
Дальше что, будут статьи «как гуглить», «рекомендации для работы за компьютером»?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пример полезного комментария