Как стать автором
Поиск
Написать публикацию
Обновить
326.95
PVS-Studio
Статический анализ кода для C, C++, C# и Java
Сначала показывать

60 антипаттернов для С++ программиста, часть 5 (совет 21 — 25)

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.7K

1053_60_cpp_antipatterns_ru/image2.png


Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в шутку, и серьёзно. Как бы глупо ни смотрелся вредный совет, он не выдуман, а подсмотрен в реальном мире программирования.

Читать дальше →

Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#

Время на прочтение10 мин
Количество просмотров13K

Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.

Читать далее

Есть ли жизнь без RTTI: пишем свой dynamic_cast

Время на прочтение14 мин
Количество просмотров11K

В современном С++ осталось не так много вещей, которые не подходят под парадигму "Не плати за то, что не используешь". Одна из них – dynamic_cast. В рамках данной статьи мы разберёмся, что с ним не так, а когда поймём – попробуем предложить альтернативу.

Читать далее

Тем, кто учится программировать и решил написать вопрос на Stack Overflow: «Почему код не работает?»

Время на прочтение3 мин
Количество просмотров6.4K

PVS-Studio Online


На сайте Stack Overflow много вопросов от людей, ещё только изучающих языки программирования. Лайфхак: ответы на многие эти вопросы можно получить сразу, запустив анализатор кода. Получится быстрее.


Эту заметку меня побудила написать дискуссия "Segmentation fault when converting char * to char **" на сайте Stack Overflow. Человек, изучающий программирование, интересуется, что не так с его кодом.

Читать дальше →

Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio

Время на прочтение7 мин
Количество просмотров10K

Кажется, анонс Visual Studio 2022 был только недавно, и вот она уже вышла. Это означало ровно одно – поддержать данную IDE нужно в ближайшем релизе PVS-Studio. О том, с какими сложностями пришлось столкнуться, а что прошло без проблем, мы сегодня и поговорим.

Читать далее

Какая стратегия освобождения памяти используется в C и С++ ядре PVS-Studio?

Время на прочтение5 мин
Количество просмотров4.8K

Какая стратегия освобождения памяти используется в C и С++ ядре PVS-Studio?
Так получилось, что в различных обсуждениях мы уже несколько раз комментировали, как C и C++ модуль PVS-Studio работает с памятью. А раз так, пришло время оформить этот ответ в виде маленькой статьи.

Читать дальше →

Вызов виртуальных функций в конструкторах и деструкторах (C++)

Время на прочтение6 мин
Количество просмотров14K

Вызов виртуальных функций в конструкторах (C++)
В разных языках программирования поведение виртуальных функций отличается, когда речь заходит о конструкторах и деструкторах. Неправильное использование виртуальных функций – это классическая ошибка при разработке на языке С++, которую мы разберём в этой статье.

Читать дальше →

PHP – компилируемый язык?! PVS-Studio ищет ошибки в PeachPie

Время на прочтение23 мин
Количество просмотров4.3K

PHP широко известен как интерпретируемый язык программирования, использующийся в основном для разработки сайтов. Однако немногие знают, что для PHP есть ещё и компилятор под .NET — PeachPie. Но вот насколько он качественно сделан? Сможет ли статический анализатор найти в этом компиляторе реальные ошибки? Давайте же узнаем!

Читать дальше →

Как делался новый дизайн сайта PVS-Studio

Время на прочтение6 мин
Количество просмотров2.5K

Сайту PVS-Studio в этом году исполнится 15 лет. Это солидный возраст для любого интернет-ресурса. Далёкий 2006-й в России был признан годом гуманитарных наук. В июне появилась никому не знакомая тогда площадка "Хабрахабр". В ноябре Microsoft официально завершила разработку ОС Windows Vista. И в том же месяце был зарегистрирован домен viva64.com.

10-ый юбилей наш сайт отметил редизайном. С тех пор происходящие изменения касались, скорее, размера ресурса и его функционала, но никак не дизайна. За это время количество статей увеличилось настолько, что пришлось вводить теги для удобной навигации по ним. Также сейчас активно развивается наш YouTube-канал, а это значит, что полнится запас видео и на сайте тоже. Количество страниц растёт с огромной скоростью. А вот удобство пользования остаётся там, где и было.

Настало время масштабных изменений!

Читать далее

Выявляем опечатки в проекте GTK 4 с помощью PVS-Studio

Время на прочтение16 мин
Количество просмотров1.9K

0793_GTK_4_continue_ru/image1.png


Возможно, вы уже читали недавнюю статью о процессе первого запуска PVS-Studio на примере проекта GTK 4 и о первичной фильтрации предупреждений. Теперь пришло время поработать с полученным отчётом более подробно. И как уже догадались наши постоянные читатели, предлагаю вашему вниманию статью с описанием найденных в коде ошибок.

Читать дальше →

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

Время на прочтение8 мин
Количество просмотров2.6K
PVS-Studio and Awesome header-only C++ libraries

Современные приложения строятся из сторонних библиотек как из кирпичиков. Это нормально и единственный вариант завершить проект за разумное время, потратив разумный бюджет. Тем не менее брать все кирпичи без разбора может оказаться не такой уж хорошей идеей. Если есть несколько вариантов, то полезно уделить время анализу открытых библиотек с целью выбрать наиболее качественную.
Читать дальше →

Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux

Время на прочтение14 мин
Количество просмотров2.4K

Рисунок 1

Данная статья приурочена к старту бета-теста PVS-Studio C# для Linux, а также плагина для Rider. По такому прекрасному поводу с помощью данных инструментов была проведена проверка исходного кода продукта Nethermind и в данной статье мы посмотрим на интересные, а иногда и забавные ошибки.
Читать дальше →

OpenToonz: снаружи и внутри

Время на прочтение10 мин
Количество просмотров5.1K
image1.png

Прошло уже почти четыре года с тех пор, как PVS-Studio поверял исходный код OpenToonz. Этот проект является очень мощным инструментом для создания двухмерной анимации. За время с последней проверки с его помощью были созданы такие мультипликационные произведения, как Мэри и Ведьмин цветок, Бэтмэн-Нинзя, Промаре и другие. Раз большие студии продолжают пользоваться Toonz, то почему бы не проверить качество исходного кода еще раз?
Читать дальше →

Как PVS-Studio провела второе полугодие конференций 2019

Время на прочтение15 мин
Количество просмотров942
Кто куда, а наша команда PVS-Studio снова на конференции. В этой статье мы хотели бы поделиться с вами своим опытом, рассказать, как у нас прошло второе полугодие 2019, как мы готовились, где совершали ошибки, как их исправляли, и, как всегда, ждем обратную связь.

Picture 22

Идеальный путь внедрения статического анализатора кода

Время на прочтение20 мин
Количество просмотров6.8K
Apple II emulator for Windows
Одной из основных сложностей при использовании инструментов статического анализа является работа с ложными срабатываниями. Существует множество способов устранить ложные срабатывания, используя настройки анализатора или изменяя код. Я взял маленький проект Apple II emulator for Windows и покажу, как можно на практике работать с отчётом статического анализатора PVS-Studio. Покажу на примерах, как править ошибки и подавлять ложные срабатывания.
Читать дальше →

Размышления над разыменованием нулевого указателя

Время на прочтение3 мин
Количество просмотров9.7K
Оказывается, что вопрос, корректен или нет вот такой код &((T*)(0)->x), весьма непрост. Решил написать про это маленькую заметку.
Читать дальше →

Новый механизм подавления ненужных сообщений анализатора

Время на прочтение10 мин
Количество просмотров3K
PVS-Studio
На данный момент анализатор PVS-Studio уже имеет механизм для подавления ложных срабатываний (False Positive). Этот механизм полностью устраивает нас с функциональной точки зрения, т.е. у нас нет претензий к надёжности его работы. Однако, у некоторых из наших пользователей и клиентов возникало желание иметь возможность работать с сообщениями анализатора только на «новом», т.е. вновь написанном коде. Это желание вполне можно понять, учитывая, что в крупном проекте анализатор может сгенерировать тысячи или даже десятки тысяч сообщений на существующий код, править которые, конечно, никто не станет.

Читать дальше →

Stonks или not stonks. Проверка исходного кода трейдерского движка Lean

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.6K

В наше время многие интересуются биржами, акциями, облигациями, а некоторые даже имеют свои портфели (речь не про школьников). Существует множество технологий и инструментов для автоматизации торговли. А теперь представьте, к каким убыткам могут привести ошибки в исходном коде такого программного обеспечения. Поэтому давайте посмотрим на потенциальные ошибки в популярном торговом движке Lean.

Читать далее

Третья часть исследования Nau Engine

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.2K

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

Читать далее

PVS-Studio в 2024 году

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.9K

За окном январь 2025 года, а это значит, пора подвести итоги за 2024 год! В этой статье вы узнаете, чем занималась команда PVS-Studio в прошлом году: новые плагины, интеграции, фичи и многое другое!

Читать далее

Информация

Сайт
pvs-studio.ru
Дата регистрации
Дата основания
2008
Численность
51–100 человек
Местоположение
Россия
Представитель
Андрей Карпов