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

Даже математики ошибаются

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

Мы знаем, что математика — наука точная. Значит ли это, что GeoGebra — программное обеспечение для интерактивного изучения математики — столь же точно? Проанализируем же исходный код проекта с помощью PVS-Studio!

Читать далее

Как найти работу для фиксиков: анализируем Godot Engine

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

Разработка игр и их прохождение могут быть невероятно увлекательными и затягивающими занятиями, приносящими огромное удовольствие. Но ничто так не портит впечатление от игрового процесса, как коварно спрятавшийся баг. Поэтому сегодня под нашим пристальным вниманием окажется Open Source движок Godot Engine. Давайте проверим, насколько он хорош, и готов ли он подарить нам незабываемые эмоции от создания и прохождения игр.

Читать далее

.NET Digest #2

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

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

Читать далее

Поисковый запрос на баги в Apache Solr

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

И вновь мы проверяем продукт Apache. На этот раз выбор пал на Solr — платформу поискового сервера с открытым исходным кодом. Благодаря Solr можно эффективно и быстро искать информацию в базах данных и на интернет-ресурсах. При решении такой сложной задачи очень легко допустить разнообразные ошибки, даже несмотря на огромный опыт разработчиков Apache. Именно такие ошибки мы рассмотрим в этой статье.

Читать далее

Дебажим баги в дебаггере x64dbg. Без дебаггера

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

Ни один процесс разработки программы не проходит без отладки. Современные IDE обеспечивают программиста встроенным отладчиком. Однако бывают ситуации, когда использование IDE для отладки избыточно или невозможно, и тогда на помощь приходят автономные отладчики, один из которых — x64dbg.

Сделать шаг с заходом

Фиксим баги в вашем AI или разбор ошибок в OpenVINO

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

Друзья-разработчики, приглашаем вас продолжить захватывающее путешествие по дебрям кода Intel OpenVINO! Вооружившись статическим анализатором аки детективы, мы разоблачим наиболее коварные, интересные ошибки и опечатки, а также их скрытые тайны, оставшиеся за рамками первой части статьи.

Читать далее

Как научить кота программировать. Необычные подходы к изучению нового

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

Твой хомячок давно забыл свои молодые деньки, когда писал код на C#? Он хочет вернуться к программированию, но время летело так быстро, что уже вышел C# 12? Кошечка не знает, как организовать мероприятие, а на носу новогодний корпоратив на 50 человек? Так ещё эти подопечные насмотрелись тиктоков, и теперь их внимание фокусируется не более чем на минутку?

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

Готовы прочесть? Тогда берём кота за ушки (или за лапки, если он согласится) и вперёд!

Читать далее

Неожиданности в авторизации. Что скрывает Keycloak?

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

Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации, и как они могут повлиять на работу приложения?

Читать далее

Насекомое 13 лет сидит в вашем компиляторе и не собирается оттуда вылезать

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

Представим, что у вас идеальный проект. Таски пилятся, компилятор компилирует, статические анализаторы анализируют, релизы релизятся. В какой‑то момент вы принимаете волевое решение открыть древний файл, в который никто не залезал уже много лет, и видите, что он в кодировке Windows-1251. При том, что весь проект уже давно перешёл на UTF-8. «Непорядок!» — думаете вы, и лёгким движением руки меняете кодировку. На следующий день на вашем тестовом сервере случается локальный апокалипсис. Думаете, такого не может быть? Тогда предлагаю это обсудить.

Читать далее

.NET Digest #1

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

Добро пожаловать на первый выпуск нашего дайджеста, посвященного новостям и событиям в мире .NET! Команда C# разработчиков из PVS-Studio собрала для вас самые интересные и полезные материалы, чтобы держать вас в курсе последних тенденций и разработок. Поехали!

Читать далее

Тотемные утки и шаманские бубны: есть ли у разработчиков свои ритуалы и приметы?

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

Баги, баги, баги... Как же их много... Немудрено и фобию заиметь. И ведь никогда не знаешь, чем обернётся очередная ошибка в коде. Страх перед неизвестным, желание держать всё под контролем — закономерные спутники магического мышления. Но подождите, какие ещё магические ритуалы в 21 веке? Тем более у программистов...

Читать далее

Подборка докладов по С# 2023-2024

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

Недавно мы публиковали подборку докладов по C++, но не будем же мы обделять и C# разработчиков. Поэтому предлагаем вашему вниманию интересные доклады из мира .NET и C#.

Вперёд к новым знаниям!

12 мгновений опечаток и копипаста, или почему сбоит AI: проверяем код OpenVINO

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

"OpenVINO — набор инструментов, позволяющий проводить глубокое обучение AI для взаимодействия с реальным миром теперь ещё эффективнее!" — эта новость для нас прозвучала как призыв к действию. Код проекта проверен, ошибки найдены, и первая часть статьи готова к прочтению. Будет интересно!

Читать далее

Побитовые проверки в Java и почему они так неоднозначны

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

Операторы "&" и "|" не вызывают вопросов, когда применяются в подходящих ситуациях. Но знаете ли вы о всех последствиях использования побитовых операторов вместо логических в Java? В этой статье мы рассмотрим как плюсы производительности такого подхода, так и минусы его читабельности.

Читать далее

Ненавижу, _____, C++ массивы

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

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

Но почему?

Как шаблонный метод может сломать ваш Java код

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

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

Читать далее

Улыбка сквозь баги

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

Мы уже много раз писали о багах: в играх, программах ракет и т.д. Настало время продолжить традицию. На этот раз рассмотрим баги, которые закрались в, пожалуй, одни из самых крупных игровых проектов.

Читать далее

Сколько UB в моём компиляторе?

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

У C и C++ программистов две головные боли в плане ошибок: утечки памяти и неопределённое поведение. И как вы догадались из названия, речь пойдёт о неопределённом поведении. И каком‑то «моём» компиляторе. Если точнее, то о наборе компиляторов и инструментах для их разработки, а именно LLVM. Почему «моём»? Потому что мы очень любим Clang, входящий в состав LLVM, и пользуемся им на постоянной основе.

Читать далее

Ловушки volatile, DCL и синхронизации в Java

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

А что если окажется, что простые знания на самом деле более нюансированные, а старые знакомые, такие как Double-checked locking, являются неоднозначными? Именно на такие мысли наталкивает изучение кода реальных проектов. Результаты этого исследования мы и рассмотрим в этой статье.

Читать далее

Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов

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

Редкий вид бага
Если спросить программиста, какие баги чаще всего можно встретить в C и C++ коде, он назовёт разыменование нулевого указателя, неопределённое поведение, выход за границу массива и другие, на его взгляд, типовые паттерны ошибок. Скорее всего, он назовёт и случайное присваивание в условии. Но действительно ли эта ошибка распространена в наше время?

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

Информация

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