Рубрика «static code analysis»

Контрибьютим в Go с помощью статического анализатора go-critic - 1

Вы, возможно, помните недавний анонс нового статического анализатора для Go под названием go-critic.

Я проверил с его помощью проект golang/go и отправил несколько патчей, которые исправляют некоторые найденные там проблемы.

В этой статье мы разберём исправленный код, а также будем мотивироваться отправлять ещё больше подобных изменений в Go.

Для самых нетерпеливых: обновляемый список трофеев.

Читать полностью »

go-critic: самый упрямый статический анализатор для Go - 1

Анонсируем новый линтер (статический анализатор) для Go, который одновременно является песочницей для прототипирования ваших задумок в мире статического анализа.

go-critic построен вокруг следующих наблюдений:

  • Лучше иметь “good enough” реализацию проверки, чем не иметь её вовсе
  • Если проверка спорная, это ещё не значит, что она не может быть полезна. Помечаем как “opinionated” и вливаем
  • Писать линтер с нуля, как правило, сложнее, чем добавлять новую проверку в существующий каркас, если сам фреймворк прост для понимания

В этом посте мы рассмотрим использование и архитектуру go-critic, некоторые реализованные в нём проверки, а также опишем основные шаги добавления своей функции-анализатора в него.

Читать полностью »

Picture 5

Недавно произошло долгожданное для многих событие — компания Unity Technologies разместила исходный C#-код игрового движка Unity для свободного скачивания на GitHub. Представлен код движка и редактора. Конечно, мы не могли пройти мимо, тем более, что в последнее время мы пишем не так много статей о проверке проектов на C#. Unity разрешает использовать предоставленные исходники только в справочных целях. Именно так и поступим. Испытаем последнюю на данный момент версию PVS-Studio 6.23 на коде Unity.
Читать полностью »

Особенности настройки и запуска PVS-Studio в Docker на примере кода Azure Service Fabric - 1

Технологии контейнеризации активно используются для сборки и тестирования программного обеспечения. С появлением PVS-Studio для Linux, пользователям стала доступна возможность добавить статический анализ к другим методам тестирования своего проекта на этой платформе, в том числе в Docker. В статье будут описаны особенности работы с анализатором PVS-Studio в Docker, которые повысят качество анализа и удобство использования. А также будут приведены ошибки, найденные в проекте Azure Service Fabric.
Читать полностью »

Picture 1

За окном уже почти как 3 месяца стоит 2018 год, а это значит, что пришло время (пусть и немного запоздало) составить топ 10 ошибок, найденных анализатором PVS-Studio в C++ проектах за прошедший год. Итак, начнём!
Читать полностью »

Нельзя просто так взять и отредактировать субтитры - 1

Сколько людей пользуются субтитрами по всему миру? Вероятно, очень много. В образовательных целях или просто из-за любви к оригинальной озвучке, в интернете можно найти субтитры практически к любому фильму и на многих языках. Создаётся всё это в специальных программах. Как и в большинстве программ, в Subtitle Edit не обошлось без сюрпризов в виде багов.
Читать полностью »

Сравнение качества кода Firebird, MySQL и PostgreSQL - 1

Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.
Читать полностью »

Обзор дефектов кода музыкального софта. Часть 5. Steinberg SDKs - 1

Я продолжаю обзор кода музыкальных приложений, и перед нами первый представитель коммерческого программного обеспечения. В комментариях к предыдущим статьям я заметил популярность программы Cubase и решил почитать о ней. Это продукт компании Steinberg, у которой есть несколько программ с закрытым исходным кодом. Случайно на их сайте я нашёл SDK для сторонних разработчиков, и, изучив его, обнаружил множество интересных ошибок.
Читать полностью »

Обзор дефектов кода музыкального софта. Часть 4. Ardour - 1

Ardour пока является самым крупным из музыкальных проектов, участвующих в обзоре дефектов кода. Проект включает около 1000 файлов исходного кода на языке C++. Проект активно поддерживается сообществом разработчиков, при этом я не нашёл упоминаний об использовании каких-либо инструментов статического анализа. Как следствие — множество ошибок разного характера. В статье будут описаны самые интересные из них.
Читать полностью »

Picture 2

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