Найти тему
ГОСТ Р 71207–2024 глазами разработчика статических анализаторов кода
Автор: Андрей Карпов, сооснователь PVS-Studio 1 апреля 2024 года введён в действие новый ГОСТ "Статический анализ программного обеспечения". Если в ГОСТ Р 56939–2016 говорится о необходимости использования статического анализа при разработке безопасного программного обеспечения (РБПО), то ГОСТ Р 71207–2024 уточняет, что именно это означает. В стандарте: Информация в ГОСТ очень плотная, и её тяжело сразу воспринять, если вы ранее не имели дело со статическим анализом кода и РБПО. Поэтому я подготовил...
5 месяцев назад
Обзор нововведений в C# 12
Уже середина осени, а это значит, что новая версия C# на пороге. Самое время узнать, какие изменения настигнут язык совсем скоро. Хоть количество нововведений в этот раз уступает предыдущим релизам, интересных среди них немало. Первичные конструкторы Одно из самых заметных quality of life улучшений – возможность определить конструктор прямо в объявлении класса: При этом не использовать такой конструктор не выйдет – он заменяет собой пустой конструктор по умолчанию, а при добавлении других конструкторов обязательно нужно будет добавлять this(...
1 год назад
PVS-Studio помогает оптимизировать проекты на Unity Engine
Недавно анализатор PVS-Studio начал выдавать предупреждения о возможностях оптимизации кода в проектах под Unity Engine. Какие они, эти предупреждения? Как анализатор понимает, какой код стоит оптимизировать? Почему это сделано именно для Unity? Ответы в заметке. Что может посоветовать анализатор? На момент написания этой статьи в PVS-Studio есть 4 правила, указывающих на возможности оптимизации кода проектов под Unity: Эти простые на первый взгляд правила были сделаны на основе официальных рекомендаций в документации к Unity Engine...
1 год назад
Поиск ошибок в проектах на основе Unreal Engine
В статическом анализаторе PVS-Studio начали появляться диагностические правила для выявления багов, специфичных для Unreal Engine проектов. Однако без сообщества разработчиков игр здесь не обойтись. Напишите нам про типовые паттерны ошибок, поиск которых хотелось бы автоматизировать. Анализатор PVS-Studio хорошо выявляет распространённые паттерны опечаток, логические ошибки, потенциальные уязвимости и многое другое. Теперь взор команд, разрабатывающих PVS-Studio, обратился в сторону Unreal Engine...
1 год назад
Бета-тестирование: плагин PVS-Studio для VS Code проверяет проекты на .NET
Близится релиз PVS-Studio 7.27, и сегодня мы приглашаем вас принять участие в бета-тестировании плагина PVS-Studio для Visual Studio Code. Обновление будет особенно интересным для C# разработчиков, так как плагин теперь поддерживает анализ .NET проектов. Также вы сможете попробовать более удобный UI. Тестирование продлится до начала октября, когда состоится наш релиз, и плагин станет доступным всем пользователям. Чтобы попробовать обновлённый плагин сейчас, переходите по ссылке и записывайтесь на тестирование...
1 год назад
Ошибка настолько проста, что программисты её не замечают
Нам в поддержку написал пользователь о странном ложном срабатывании анализатора PVS-Studio. Сейчас станет понятно, почему этот случай заслуживает отдельной маленькой статьи и насколько у программистов может быть замылен взгляд. Пользователи время от времени присылают нам различные фрагменты C++ кода, на которые анализатор PVS-Studio, по их мнению, выдал странные/ложные предупреждения. После чего мы дорабатываем диагностики или выписываем идеи по доработкам на потом. В общем, идёт обыкновенная работа по поддержке пользователей...
1 год назад
Ква! Как писали код во времена Quake
Как говорил Джон Кармак: "Фокус — это умение определить, на что вы не будете тратить время". Так давайте не будем тратить время на аннотацию и приступим к анализу кода легендарной Quake World. Анализируя код чужих проектов, можно наткнуться на места, которые послужат отличным примером для коллег-программистов и себя самого, пускай и примером того, как делать не нужно. Может быть, даже выйдет материал для статьи! Но, бывает, в руки попадает такой проект, что пальцы над клавиатурой начинают трястись от волнения...
1 год назад
PVS-Studio vs CodeLite: битва за идеальный код
Как улучшить качество и надёжность кодовой базы? Один из ответов на этот вопрос — использование статического анализа. В данной статье мы исследуем, как эта методология может улучшить качество кодовой базы на примере проекта CodeLite. О CodeLite CodeLite — это бесплатная интегрированная среда разработки (IDE) для различных языков программирования, таких как C, C++, PHP и JavaScript. Она разработана для облегчения процесса разработки программного обеспечения и предлагает широкий спектр функций и инструментов...
1 год назад
Распространённые паттерны опечаток при программировании
Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки. Автор статьи: Андрей Карпов На чём основаны наблюдения С целью тестирования и продвижения статического анализатора кода PVS-Studio мы проверяем различные открытые проекты. Найдя ошибки, мы сообщаем о них авторам проектов, коллекционируем их и пишем статьи про наиболее интересные случаи. Рассматривая все эти ошибки, я постепенно замечаю различные повторяющиеся паттерны опечаток...
1 год назад
DefectDojo и PVS-Studio: отслеживаем ошибки и уязвимости
Как упростить процесс исправления багов и не допустить уязвимый код к публикации? Использовать инструменты управления ошибками и уязвимостями. Для поиска ошибок воспользуемся PVS-Studio, а для работы с ними — DefectDojo. В статье рассмотрим, как совместно использовать эти инструменты. PVS‑Studio — это статический анализатор кода, предназначенный для поиска ошибок и потенциальных уязвимостей в C, С++, С# и Java проектах. DefectDojo — это DevSecOps платформа, система отслеживания ошибок и уязвимостей...
1 год назад
Обзор подозрительных мест в исходном коде MassTransit
MassTransit — Open Source платформа распределённых приложений для .NET. В этой статье мы расскажем о проблемных местах в коде проекта. С поиском таких мест нам поможет статический анализатор. Приятного чтения :) Введение Так как MassTransit предоставляет публичное API, качество кода такого проекта имеет особенно важную роль. Неожиданное поведение данного продукта может негативно сказаться не только на нём самом, но и на использующих его приложения. Это одна из причин, по которой мы решили проверить MassTransit...
1 год назад
Всегда ли в C# есть упаковка при конкатенации со строкой и интерполяции?
Автор: Никита Липилин Разработчики на C# хорошо знакомы с термином "упаковка". Она может быть явной, а может быть незаметна. Например, к упаковке приводит сложение значимого типа со строкой. Или не приводит. Такая вот "упаковка Шрёдингера". В заметке попробуем разобраться с этой неопределённостью. Как мы с этим столкнулись Данная тема всплыла не случайно. Дело в том, что я участвую в разработке C# анализатора PVS-Studio. Одним из направлений его развития в 2023 году стали диагностические правила, ориентированные на проекты под Unity Engine...
1 год назад