В этой статье мы рассмотрим, как статический анализатор PVS-Studio воодушевляет заняться рефакторингом кода. Ведь чем короче, проще и понятнее код, тем меньше в нём ошибок.
Подборка крутых докладов по С++ за 2023 год
Скоро начинается новый сезон конференций, а потому предлагаем вам ознакомиться с лучшими докладами по С++ с прошлого сезона. Эта подборка самых громких докладов за 2023 год поможет вам поглубже узнать С++ и набраться вдохновения.
Проверка игрового движка qdEngine, часть первая: топ 10 предупреждений PVS-Studio
Баги, которые удалось найти в движке qdEngine, оказались весьма разнообразны, поэтому не хочется мешать всё в кучу в одной публикации. Читатели могут упустить интересные темы, связанные с написанием качественного кода. Поэтому разбор проекта выйдет в виде серии публикаций, первая из которых посвящается наиболее интересным срабатываниям с точки зрения плагина PVS-Studio.
Кошмар нефалема. Исследуем ошибки в коде эмулятора сервера Diablo 3
Преследуя Диабло, нефалем попадает в очередную западню Белиала. Погруженный в смертельный кошмар владыкой обмана, герой должен повторить былые победы над воплощениями зла, чтобы пробудиться. Однако в этот раз из-за необъяснимых искажений реальности, свойственных кошмарам, он обречён на поражение. Но вдруг к нему на помощь является загадочное существо, а вместе с ним возвращается и надежда.
21 ошибка в 21-й версии Apache NetBeans
Apache NetBeans — одна из первых IDE для Java, поддержка которой не прекращается на протяжении почти 30 лет. Совсем недавно вышла 21-я версия. Мы решили проверить исходный код такого долгожителя и выбрали наиболее интересные ошибки, которые разберём в этой статье.
Статический анализатор подталкивает писать чистый код
Статические анализаторы помогают не только обнаруживать ошибки и дефекты безопасности, но и делать код чище. Выявляя лишние проверки, дублирующие действия и другие аномалии, можно сделать код проще, красивее и легче для чтения. Разберём это на практическом примере рефакторинга функции.
Баги, которые наделали немало шума
Реальный "баг", баг в коде или невнимательность — всё это может повлиять на ваш проект и привести к самым разным последствиям. В этой статье собран ряд масштабных и интересных багов. Время учиться на чужих ошибках!
Что скрывается в коде игрового движка, написанного на Java?
Вы когда-нибудь интересовались игровыми движками, написанными на Java? В этой статье мы рассмотрим и проверим на наличие ошибок в исходном коде один из популярных игровых движков — jMonkeyEngine. Возможно, мы даже узнаем, почему игры пишутся на C# и C++, а не на Java.
Как не надо проверять размер массива в С++
Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.
Быстро и легко ищем баги в играх на Unity (для C# разработчиков)
Все мы сталкиваемся с багами в играх. В некоторых даже чаще, чем хотелось бы. Множество этих багов связаны с ошибками в коде. Сегодня посмотрим, как с помощью статического анализа можно легко находить ошибки и улучшать ваш проект.
Настраиваем статический анализ Unreal Engine проекта
В PVS-Studio давно есть возможность анализировать Unreal Engine проекты. Но с момента последней заметки мы много работали над этим режимом. Поэтому хочу рассказать о том, как быстро настроить наш анализатор для проверки вашего проекта на Unreal Engine.
Непобедимый null: копаемся в исходном коде nopCommerce
nopCommerce — бесплатная платформа для создания интернет-магазинов с открытым исходным кодом, разработанная на базе ASP.NET Core. Сегодня мы узнаем, какие неоднозначные моменты таятся в коде платформы.
Не исправил, а проработал принятие: как некоторые баги в играх стали фичами
Многие психологи советуют проработать принятие. Например, принятие своих ошибок. Некоторые разработчики игр восприняли это всерьёз и решили: "А почему бы и нет?", — и сделали свои промахи частью геймплея. Попробуем научиться на их опыте!
Встречи с командой PVS-Studio, митапы, сотрудничество
Команда PVS-Studio в целом и я в частности активно участвуем в различных конференциях, подкастах, митапах и других мероприятиях. Нового в этом нет, но есть пара причин сделать маленькую заметку на эту тему.
Первая причина — предложить тем, кто интересуется нашим блогом на Хабре, подписаться на рассылку/телеграм/группу, чтобы не пропустить мероприятие, где можно пообщаться с нами. Живое общение — это всегда интересно.
Вторая причина — ещё раз озвучить, что мы открыты к сотрудничеству и готовы пообщаться с организаторами митапов, DevRel-ами компаний и т.д. Напишите нам.
Притча о нулевом указателе для ленивых C программистов
Я согласен, что ошибка выделения памяти с помощью malloc редкая ситуация, и после такой ошибки, скорее всего, невозможно полноценное функционирование программы. Но меня удивляет, с каким упорством программисты, приводя эти аргументы, предлагают вообще ничего не делать в такой ситуации. Я не призываю всех делать сложные механизмы восстановления работы после нехватки памяти или использовать заранее выделенные резервные буферы. Многим программам не нужны такие сложные механизмы. Тем не менее я не понимаю, почему хотя бы минимально не обработать такие ситуации корректно. Раз других объяснений пока не хватило, попробую в этот раз рассказать короткую притчу.
Проверяем Blender
Командный центр PVS-Studio: "Как быстро летит время... А ведь в этом году, второго января, Blender исполнилось 30 лет! Как будто ещё вчера мы публиковали статью с разбором ошибок... Как 8 лет назад? Надо срочно исправлять ситуацию!".
Декрет в IT: другие навыки, страхи, преимущества
Декретный отпуск для IT-сотрудницы — это большое приключение и испытание.
Как увидеть в таком отпуске ценность с точки зрения профессионального развития? Как изменится привычный уклад жизни? Что ожидать? Как подготовиться?
Отходим от привычных тем и заглядываем за завесу современного материнства!
Как сломать крышку унитаза и стать спортивнее за счёт компании: поездки PVS-Studio 2023 года
Прошёл 2023 год, а это значит, что я подхватываю эстафету итогов года, пусть и с небольшим опозданием. Моя стезя — конференции, поэтому вспоминаем командировочные байки прошлого года!
PVS-Studio и тренды 2023 года. Что волнует наших клиентов?
Начало года — традиционное время подводить итоги работы, делать выводы и строить планы на текущий и последующие годы. В этой статье речь пойдёт о том, какие открытия сделала наша компания в 2023, какие задачи стоят перед российским IT-бизнесом, и как PVS-Studio может помочь решить какую-то их часть. Самые популярные темы прошлого года для общений на конференциях и в переписке освещены в этой статье в формате "вопрос-ответ".
Почему проверять результат вызова malloc c помощью assert плохая идея
Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.