PVS-Studio rus
631 subscribers
636 photos
10 videos
2 files
865 links
Тот самый анализатор с Хабра:
https://pvs-studio.ru/ru/
Download Telegram
Друзья, продолжаем разбирать интересные термины из мира программирования. На очереди термин – SSO (Small String Optimization).

Подробнее об этом термине вы можете почитать здесь - https://pvs-studio.ru/ru/blog/terms/6658/
Вышел новый релиз PVS-Studio — 7.30!
В карточках кратко об обновлениях. Если хотите узнать больше, то переходите по ссылке - https://pvs-studio.ru/ru/blog/posts/1116/
Проверка игрового движка qdEngine, часть вторая: упрощение C++ кода

В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.

Переходите по ссылке - https://pvs-studio.ru/ru/blog/posts/cpp/1121/
Лучше один раз увидеть, чем сто раз услышать 😉

Это можно сказать и про статический анализатор. О нём вы можете услышать из уст своих знакомых или коллег, но гораздо эффективнее увидеть и послушать лекцию SQM 23/24: Static Analysis.

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

Посмотреть лекцию можно по ссылке - https://www.youtube.com/watch?v=QK2XQvYoEpQ
PVS-Studio rus
#Задача_PVS #programming #cpp
Ошибка здесь:
.... keysa[2] < keysb[2] ? ....
.... keysb[2] > keysa[2] ? ....
Эти условия идентичны. Поменяли местами массивы и заменили < на >. В итоге получилось то же самое.
Друзья, на нашем YouTube канале вышло новое видео!

В нем мы обсуждаем антипаттерны для С++ программиста и разбираем, действительно ли:

1. const – лишняя сущность
2. Везде нужен некий константный экземпляр класса?
3. Чем короче имя переменной, тем лучше

Приглашаем посмотреть это короткое, но очень информативное видео. Будем рады вашим комментариям и реакциям!
https://www.youtube.com/watch?v=Uc1dhqCuR6k
PVS-Studio rus
#Задача_PVS #programming #java
Ответ на задачу: В переменную nameString сохраняется результат выражения ((QName) name).localName(), однако далее в обоих ветвлениях if...else значение nameString перезаписывается прежде, чем используется.
Спустя 11 лет мы снова проверяем этот проект. Были недоработки в предыдущей проверке, но настало время исправить это…

Мы проверяем ReactOS.

Переходите по ссылке и узнайте, что же мы там нашли 😏
PVS-Studio rus
#Задача_PVS #programming #csharp
Ответ на задачу: random.Next возвращает случайное целое число в заданном диапазоне. Диапазон задаётся с помощью аргументов: первый аргумент — это левая граница диапазона, а второй аргумент — правая. Однако у этого метода есть нюанс, который упустил разработчик: если левая граница входит в заданный диапазон, то правая граница — нет. Вызов random.Next(0, 1) может вернуть только одно значение — 0.

Чтобы этот код работал, как ожидалось, нужно просто увеличить правую границу до 2:
cloudSystem!.AddCloud(random.Next(0, 2) == 1 ? ....);
Вы же помните, что анализатор PVS-Studio проверяет проекты на движках Unity и Unreal Engine? Если не помните, то заглядывайте к нам в блог, там есть статьи про проверку проектов.

А если вы хотите чуть больше узнать о том, как PVS-Studio проводит анализ, то переходите по этим ссылкам в документацию - https://pvs-studio.ru/ru/docs/manual/6607/ и https://pvs-studio.ru/ru/docs/manual/0043/

По специальному промокоду вы можете бесплатно в течение 30 дней попробовать PVS-Studio и убедиться в эффективности анализатора – https://pvs-studio.ru/engine_tg
Проверка игрового движка qdEngine, часть третья: дополнительная десятка багов

В первой статье про qdEngine было рассмотрено 10 ошибок, выбранных плагином PVS-Studio. Однако есть ещё 10 багов, заслуживающих внимания. Как говорится, лучше учиться на чужих ошибках. Заодно они хорошо демонстрируют возможности PVS-Studio в выявлении разнообразнейших ошибочных паттернов.

Переходите по ссылке - https://pvs-studio.ru/ru/blog/posts/cpp/1123/