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

21 ошибка в 21-й версии Apache NetBeans

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

Apache NetBeans — одна из первых IDE для Java, поддержка которой не прекращается на протяжении почти 30 лет. Совсем недавно вышла 21-я версия. Мы решили проверить исходный код такого долгожителя и выбрали наиболее интересные ошибки, которые разберём в этой статье.

Читать далее
Всего голосов 11: ↑13.5 и ↓-2.5+16
Комментарии1

Статический анализатор подталкивает писать чистый код

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

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

Читать дальше →
Всего голосов 21: ↑23 и ↓-2+25
Комментарии30

Баги, которые наделали немало шума

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

Реальный "баг", баг в коде или невнимательность — всё это может повлиять на ваш проект и привести к самым разным последствиям. В этой статье собран ряд масштабных и интересных багов. Время учиться на чужих ошибках!

Читать далее
Всего голосов 17: ↑16.5 и ↓0.5+16
Комментарии16

Что скрывается в коде игрового движка, написанного на Java?

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

Вы когда-нибудь интересовались игровыми движками, написанными на Java? В этой статье мы рассмотрим и проверим на наличие ошибок в исходном коде один из популярных игровых движков — jMonkeyEngine. Возможно, мы даже узнаем, почему игры пишутся на C# и C++, а не на Java.

Читать далее
Всего голосов 12: ↑14.5 и ↓-2.5+17
Комментарии8

Как не надо проверять размер массива в С++

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

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Всего голосов 84: ↑83.5 и ↓0.5+83
Комментарии103

Быстро и легко ищем баги в играх на Unity (для C# разработчиков)

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Настраиваем статический анализ Unreal Engine проекта

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

В PVS-Studio давно есть возможность анализировать Unreal Engine проекты. Но с момента последней заметки мы много работали над этим режимом. Поэтому хочу рассказать о том, как быстро настроить наш анализатор для проверки вашего проекта на Unreal Engine.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Непобедимый null: копаемся в исходном коде nopCommerce

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

nopCommerce — бесплатная платформа для создания интернет-магазинов с открытым исходным кодом, разработанная на базе ASP.NET Core. Сегодня мы узнаем, какие неоднозначные моменты таятся в коде платформы.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Не исправил, а проработал принятие: как некоторые баги в играх стали фичами

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

Многие психологи советуют проработать принятие. Например, принятие своих ошибок. Некоторые разработчики игр восприняли это всерьёз и решили: "А почему бы и нет?", — и сделали свои промахи частью геймплея. Попробуем научиться на их опыте!

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Встречи с командой PVS-Studio, митапы, сотрудничество

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

PVS-Studio, конференции


Команда PVS-Studio в целом и я в частности активно участвуем в различных конференциях, подкастах, митапах и других мероприятиях. Нового в этом нет, но есть пара причин сделать маленькую заметку на эту тему.


Первая причина — предложить тем, кто интересуется нашим блогом на Хабре, подписаться на рассылку/телеграм/группу, чтобы не пропустить мероприятие, где можно пообщаться с нами. Живое общение — это всегда интересно.


Вторая причина — ещё раз озвучить, что мы открыты к сотрудничеству и готовы пообщаться с организаторами митапов, DevRel-ами компаний и т.д. Напишите нам.

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Притча о нулевом указателе для ленивых C программистов

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

Я согласен, что ошибка выделения памяти с помощью malloc редкая ситуация, и после такой ошибки, скорее всего, невозможно полноценное функционирование программы. Но меня удивляет, с каким упорством программисты, приводя эти аргументы, предлагают вообще ничего не делать в такой ситуации. Я не призываю всех делать сложные механизмы восстановления работы после нехватки памяти или использовать заранее выделенные резервные буферы. Многим программам не нужны такие сложные механизмы. Тем не менее я не понимаю, почему хотя бы минимально не обработать такие ситуации корректно. Раз других объяснений пока не хватило, попробую в этот раз рассказать короткую притчу.


Притча о нулевом указателе

Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии26

Проверяем Blender

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

Командный центр PVS-Studio: "Как быстро летит время... А ведь в этом году, второго января, Blender исполнилось 30 лет! Как будто ещё вчера мы публиковали статью с разбором ошибок... Как 8 лет назад? Надо срочно исправлять ситуацию!".

Читать далее
Всего голосов 27: ↑26 и ↓1+25
Комментарии9

Декрет в IT: другие навыки, страхи, преимущества

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

Декретный отпуск для IT-сотрудницы — это большое приключение и испытание.
Как увидеть в таком отпуске ценность с точки зрения профессионального развития? Как изменится привычный уклад жизни? Что ожидать? Как подготовиться?
Отходим от привычных тем и заглядываем за завесу современного материнства!

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии19

Как сломать крышку унитаза и стать спортивнее за счёт компании: поездки PVS-Studio 2023 года

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

Прошёл 2023 год, а это значит, что я подхватываю эстафету итогов года, пусть и с небольшим опозданием. Моя стезя — конференции, поэтому вспоминаем командировочные байки прошлого года!

Читать далее
Всего голосов 12: ↑9 и ↓3+6
Комментарии2

PVS-Studio и тренды 2023 года. Что волнует наших клиентов?

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

Начало года — традиционное время подводить итоги работы, делать выводы и строить планы на текущий и последующие годы. В этой статье речь пойдёт о том, какие открытия сделала наша компания в 2023, какие задачи стоят перед российским IT-бизнесом, и как PVS-Studio может помочь решить какую-то их часть. Самые популярные темы прошлого года для общений на конференциях и в переписке освещены в этой статье в формате "вопрос-ответ".

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

Почему проверять результат вызова malloc c помощью assert плохая идея

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

malloc и assert


Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии117

Применение ООП на практике

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

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

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии17

Применение ООП на практике

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

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

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии17

Расширение PVS-Studio для Visual Studio Code: поиск ошибок в Java-коде

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

Java-разработчик и предпочитаешь работать в VS Code? Для тебя есть хорошая новость! Теперь ты можешь писать ещё более надёжный код вместе с расширением PVS-Studio, которое помогает находить ошибки в Java-проектах и не только.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии11

Следует ли проверять указатель на NULL перед вызовом функции free?

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

Проверка указателя перед вызовом функции free


Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

Читать дальше →
Всего голосов 86: ↑85 и ↓1+84
Комментарии35
1
23 ...

Информация

Сайт
pvs-studio.com
Дата регистрации
Дата основания
2008
Численность
31–50 человек
Местоположение
Россия