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

Сортировки в C#: OrderBy.OrderBy или OrderBy.ThenBy? Разбираемся, что эффективнее и почему

Время на прочтение15 мин
Охват и читатели19K

Предположим, есть задача: нужно отсортировать коллекцию по нескольким ключам. В C# это можно сделать с помощью вызовов OrderBy().OrderBy() или OrderBy().ThenBy(). Но в чём разница между этими вызовами? Чтобы ответить на этот вопрос, придётся покопаться в исходниках.


0991_OrderBy_ThenBy_ru/image1.png


Статья состоит из трёх основных разделов:


  • Предыстория. Для тех, кто любит затравки. История о том, откуда вообще возникла идея провести исследование и изучить, в чём разница между OrderBy().OrderBy() и OrderBy().ThenBy().
  • Сравнение эффективности. Изучаем отличия типов сортировок с точки зрения производительности и потребления памяти.
  • Отличия в поведении. Погружаемся в исходники .NET и разбираемся, из-за чего возникают отличия в эффективности работы рассматриваемых способов сортировки.
Читать дальше →

Проверка JavaScript-движка Rhino, или как встретились единорог с носорогом

Время на прочтение22 мин
Охват и читатели3.3K

Имеется большое разнообразие языков программирования, но больше всего наши пользователи хотят, чтобы анализатор PVS-Studio поддержал один из самых популярных языков – Javascript. Одним из проектов, который можно использовать для написания статического анализатора JavaScript, является движок Rhino. В данной статье мы проведём анализ исходного кода Rhino при помощи PVS-Studio.

Читать далее

ML.NET: можно ли доверять машинному обучению Microsoft?

Время на прочтение10 мин
Охват и читатели4K

В 2018 году Microsoft разработали ML.NET – фреймворк машинного обучения для .NET разработчиков. За прошедшее время эта библиотека претерпела существенные изменения и обзавелась новыми функциями для выявления закономерностей в данных. Посмотрим, как это отразилось на качестве её исходного кода.

Читать далее

Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?

Время на прочтение3 мин
Охват и читатели2.5K

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

Читать далее

Соберёмся? Вторая проверка проекта MSBuild

Время на прочтение11 мин
Охват и читатели2.3K

MSBuild – популярная сборочная платформа с открытым исходным кодом от Microsoft, которую используют разработчики по всему миру. В далёком 2016 году мы уже проверяли проект при помощи PVS-Studio и нашли несколько подозрительных мест. Давайте посмотрим, что удалось обнаружить в коде MSBuild при повторной проверке.

Читать далее

Как фидбек помог улучшить наш C++ квиз

Время на прочтение3 мин
Охват и читатели2.1K

Ранее в нашем блоге мы рассказывали о квизе для C++ разработчиков. С момента запуска мы тщательно собирали обратную связь. Часть из неё касалась ошибок в работе квиза, которые мы естественно решили исправить.


0985_fix_the_quiz_ru/image1.png

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

Триквел по Orchard Core. Повторная проверка при помощи PVS-Studio

Время на прочтение10 мин
Охват и читатели1.8K

В этой статье мы исследуем проект Orchard Core c помощью статического анализатора PVS-Studio и узнаём, так ли привлекателен код платформы, как сайты, созданные на её основе. Итак, пусть поток статического анализа несёт нас вперёд!

Читать далее

С PATH_MAX не всё так просто

Время на прочтение7 мин
Охват и читатели6.7K

PATH_MAX


C и C++ программисты в какой-то момент могут столкнуться с ограниченным размером PATH_MAX и задаться вопросом – какого размера создавать буфер, чтобы отследить путь к директориям или файлам?

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

PVS-Studio 7.20: Unreal Engine, SAST, SCA

Время на прочтение3 мин
Охват и читатели1.6K

0980_Release_7_20_ru/image1.png


В этом пресс-релизе пробуем новый формат: основная информация кратко изложена в одном разделе. Если интересны детали, есть разделы с более подробным описанием. Выбирайте то, что вам ближе.

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

Сказ о том, как в PVS-Studio бага обновляли

Время на прочтение3 мин
Охват и читатели3.1K

Помимо полюбившегося многим маскота – единорога — в PVS-Studio есть второстепенный персонаж, он же антагонист нашего продукта, баг. Однако баг не есть вездесущее, нерушимое зло, а, скорее, случай бытовой или даже рабочий. В данной статье рассказано о том, как рисовался новый персонаж, почему именно божья коровка и откуда у неё, чёрт подери, пупок.

Читать далее

Анализ потока данных PVS-Studio распутывает всё больше связанных переменных

Время на прочтение11 мин
Охват и читатели1.7K

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

Читать далее

Личные границы при трудоустройстве и в офисе

Время на прочтение6 мин
Охват и читатели6.3K

Границы есть в любых отношениях — и в семейных, и в дружеских, и в деловых. Но в каждом случае они разные. Если в семье принято целовать друг друга в щёчку при встрече, то такие жесты на работе воспримут странно. Очень важно понимать и знать свои границы. Это поможет предотвратить выгорание, избежать конфликтов и недопониманий между коллегами. Так как же огородить себя от недобросовестного работодателя и некомпетентного рекрутера? Как выстроить личные границы с коллегами? Это мы с вами сейчас и узнаем.

Читать далее

Зачем разработчикам Discord.NET нужен статический анализатор?

Время на прочтение8 мин
Охват и читатели4.5K

Discord.NET – библиотека, написанная на C#, которая используется для взаимодействия с Discord API. Сможет ли PVS-Studio помочь её разработчикам? Узнаете в статье!

Читать далее

Почему в С++ массивы нужно удалять через delete[]

Время на прочтение4 мин
Охват и читатели21K

Заметка рассчитана на начинающих C++ программистов, которым стало интересно, почему везде твердят, что нужно использовать delete[] для массивов, но вместо внятного объяснения – просто прикрываются магическим "undefined behavior". Немного кода, несколько картинок и взгляд под капот компиляторов – всех заинтересованных прошу под кат.


delete_or_delete_for_array_ru/image1.png

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

Виды Application Security Testing. Как не запутаться среди SAST, DAST и IAST

Время на прочтение10 мин
Охват и читатели30K

Какие плюсы есть у SAST? Чем он отличается от DAST? Что такое IAST? Что значат все эти слова?! Об этом (и не только) расскажем в статье-разборе основных видов Application Security Testing (далее AST).


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

Что такое CVE и какие угрозы там хранятся?

Время на прочтение10 мин
Охват и читатели56K

В публикациях о различных уязвимостях и инцидентах информационной безопасности часто встречается аббревиатура CVE. CVE (Common Vulnerabilities and Exposures) – это список известных уязвимостей и дефектов безопасности. Рассмотрим, что он из себя представляет и какие дефекты безопасности из него были востребованы у хакеров в 2021 году.

Читать далее

Конкурс внимательности: PVS-Studio vs Хакер

Время на прочтение5 мин
Охват и читатели3.9K

PVS-Studio vs Хакер


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

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

Предупреждения помогают писать лаконичный код

Время на прочтение4 мин
Охват и читатели3.3K

Единорог PVS-Studio ужимает слона
Некоторые предупреждения анализатора или компилятора сложно однозначно классифицировать как ложное срабатывание или указание на настоящую ошибку. Бывает, что формально анализатор/компилятор прав, но и код работает правильно. Что делать? Возможно, это повод упростить код.

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

CWE Top 25 2022. Обзор изменений

Время на прочтение8 мин
Охват и читатели8.3K

Список CWE Top 25 отражает наиболее серьёзные недостатки безопасности ПО. Предлагаю вам ознакомиться с обновлённым топом в обзоре изменений за прошедший год.


CWE_top_25_2022_ru


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

Есть ли в вашей IDE баги? Проверка AvalonStudio с помощью PVS-Studio

Время на прочтение8 мин
Охват и читатели2.2K

Разработчики по всему миру ежедневно используют свои любимые IDE для создания программного обеспечения. Сегодня мы проверим одну из них и рассмотрим самые интересные найденные ошибки.

Читать далее

Информация

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