Рубрика «ошибки в коде» - 9

Вчера потратил почти два часа на то, чтобы найти ошибку во вроде бы правильном коде. Проблема оказалась банальной — в ключ массива «text» каким-то образом попала кириллическая буква «е». По виду она не отличается от «e» латинской, и найти проблему оказалось очень нелегко. Уверен, большинство программистов, да и просто людей, которые работают с текстовой информацией, время от времени сталкиваются с подобными неприятностями. Особенно это касается английской буквы «си» и русской «эс», которые находятся на одной и той же клавише в русской и английской раскладках. У меня этот случай далеко не первый, и поэтому я решил заняться поиском решения данной проблемы вплотную. И решение — пусть не очень элегантное, но вполне работоспособное — нашлось.Читать полностью »

SHALL NOT DANCE THEREДовольно часто можно встретить код на C++, в котором у одного или нескольких классов конструктор копирования и оператор присваивания объявлены private и написан комментарий вида «копирование запрещено».

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

Рассмотрим возможные проблемы.
Читать полностью »

Ревизия кода / Повторная проверка проекта Notepad++

Прошло более года, как мы проверили Notepad++ с помощью PVS-Studio. Интересно посмотреть, насколько анализатор PVS-Studio стал лучше, и что было исправлено в Notepad++ из прежних ошибок.
Введение

Итак, мы проверили проект Notepad++ взятый из репозитория 31 января 2012. Для проверки использовался анализатор PVS-Studio версии 4.54.
Как уже было сказано, мы ранее проверяли этот проект. Ошибок нашли не много, но всё-таки что-то нашли. В новой версии проекта часть старых ошибок исправлена, а часть нет. Это странно. По всей видимости, прежняя заметка осталась незамеченной авторами Notepad++ и они не воспользовались PVS-Studio для проверки проекта.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js