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

Tutorial: как портировать проект с Interop Word API на Open XML SDK

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

С выходом .NET5 дальнейшее развитие некоторых проектов оказалось под вопросом из-за сложности портирования. Если от небольших устаревших библиотек можно отказаться или найти им замену, то от зависимости Microsoft.Office.Interop.Word.dll очень сложно отказаться. Microsoft не планирует добавлять совместимость с .NET Core/5+, поэтому в этой статье мы рассмотрим, как создавать документы Word с помощью Open XML SDK.

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

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

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

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

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

PVS-Studio 7.14: межмодульный анализ в С++ и плагин для JetBrains CLion

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

0854_Release_714_ru/image2.png


Помимо увеличения количества диагностик с каждым новым релизом анализатор PVS-Studio развивается и в инфраструктурном плане. В данном случае это плагин для среды разработки JetBrains CLion, межмодульный анализ С++ проектов, ускорение работы ядра C# анализатора.

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

Kanban команды PVS-Studio. Часть 2: YouTrack

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

Привет всем. Это продолжение истории про переход команды PVS-Studio на работу по методике kanban. На этот раз речь пойдет про YouTrack, как мы выбирали и внедряли этот трекер задач и с какими вызовами столкнулись в процессе. Статья не имеет цели рекламировать или ругать YouTrack. Тем не менее замечу, что по мнению нашей команды ребята из JetBrains проделали (и продолжают делать) отличную работу.


0853_Kanban_YouTrack_ru/image1.png

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

Оптимизация .NET приложений: большой результат маленьких правок

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

0852_NETAppsPerf_MinChangesMajorRes_ru/image1.png


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

Читать дальше →
Всего голосов 29: ↑27 и ↓2+31
Комментарии11

Межмодульный анализ C++ проектов в PVS-Studio

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

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

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

Как в VSCode смотреть отчёты статических анализаторов, поддерживающих SARIF

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

В наше время люди всё чаще начинают оптимизировать работу по поиску ошибок в коде, используя статический анализатор. Результаты работы анализатора можно смотреть с помощью разнообразных продуктов. Однако сегодня мы поговорим про просмотр отчёта анализатора в самой стильной среди многофункциональных и самой многофункциональной среди стильных IDE – VSCode. Позволит же нам реализовать нашу задачу формат SARIF и специальный плагин для него. Обо всем этом далее — поехали.

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

PVS-Studio для JetBrains CLion: через тернии к звёздам

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

В PVS-Studio уже некоторое время есть плагины для таких IDE от JetBrains, как Rider, IntelliJ IDEA и Android Studio. Другую известную среду разработки, CLion, мы долгое время незаслуженно обходили стороной. Исправляемся! Но зачем вообще вам PVS-Studio, если в CLion уже есть анализ кода? Какие проблемы возникли при разработке? На эти вопросы мы ответим ниже.

Читать далее
Всего голосов 14: ↑9 и ↓5+8
Комментарии6

Статический анализ защищает ваш код от бомб замедленного действия

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

0848_Timebomb_ru/image2.png
Статический анализ кода позволяет выявлять и устранять многие дефекты на раннем этапе. Более того, можно обнаружить спящие ошибки, которые в момент появления никак не проявляют себя. Они могут доставить массу проблем в будущем, потребовав для своего обнаружения многих часов отладки. Рассмотрим пример такой спящей ошибки.

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

Проверка BitTorrent в честь 20-летнего юбилея. Время == качество

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

Пару недель назад (а если быть точнее, то 2 июля 2021 года) исполнилось двадцать лет легендарному протоколу BitTorrent. Созданный Брэмом Коуэном (Bram Cohen) протокол с момента своего появления стремительно развивался и быстро стал одним из самых популярных способов для обмена файлами. Почему бы в честь этого не проверить парочку долгоживущих тематических проектов с помощью анализатора PVS-Studio для Linux?


0846_BitTorrent_ru/image1.png

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

Красивая ошибка в реализации функции конкатенации строк

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

strlen и sizeof


У нас, разработчиков статического анализатора кода PVS-Studio, специфическое представление о красоте. О красоте багов. Нам нравится находить изящество в ошибках, разбираться в них, пытаться угадать, как они появились. Сейчас как раз интересный случай, когда в коде спутались понятия длины и размера.

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

Подводные камни при работе с enum в C#

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

0844_EnumBoxing_ru/image1.png


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

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

Неожиданная статья про нашего единорога: кто такой маскот PVS-Studio?

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

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

Attention: будет реально много картинок.

Читать далее
Всего голосов 33: ↑31 и ↓2+45
Комментарии22

Один день из жизни разработчика PVS-Studio, или как я отлаживал диагностику, оказавшуюся внимательнее трёх программистов

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

Главное предназначение статических анализаторов – найти те ошибки, которые остались незамеченными разработчиком. И недавно команда PVS-Studio снова столкнулась с интересным примером мощи этой методики.

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

Beta-тестирование плагина PVS-Studio для JetBrains CLion

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


Традиционно сложилось, что основной средой разработки для работы с анализатором PVS-Studio была среда Visual Studio от Microsoft. Наш анализатор начинал свой путь на Windows, поэтому выбор Visual Studio был вполне оправданным и очевидным. Тем не менее, более чем за 10 лет развития PVS-Studio анализатор стал доступен для нескольких других языков и платформ, поэтому вполне естественно, что в нашей поддержке всё больше людей спрашивают о возможности интеграции PVS-Studio с их любимой IDE.

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

Йо-хо-хо, и бутылка рому! Разбираем ошибки игрового движка Storm Engine

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

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

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

Как WCF сам себе в ногу стреляет посредством TraceSource

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

Не так часто удается написать что-то интересное про проблемы, связанные с параллельным программированием. В этот же раз "повезло". Из-за особенностей реализации стандартного метода TraceEvent произошла ошибка с блокировкой нескольких потоков. Хочется предупредить о существующем нюансе и рассказать об интересном случае из поддержки наших пользователей. Причем тут поддержка? Это вы узнаете из статьи. Приятного чтения.

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

Оптимизация .NET приложения: как простые правки позволили ускорить PVS-Studio и уменьшить потребление памяти на 70%

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

Проблемы с производительностью, такие как аномально низкая скорость работы и высокое потребление памяти, могут быть обнаружены самыми разными способами. Такие недостатки приложения выявляются тестами, самими разработчиками или тестировщиками, а при менее удачном раскладе – пользователями. Увы, но обнаружение аномалий – лишь первый шаг. Далее проблему необходимо локализовать, ведь в противном случае решить её не получится. Тут возникает вопрос – как найти в большом проекте причины, приводящие к излишнему потреблению памяти и замедлению работы? Есть ли они вообще? Быть может, дело и не в приложении вовсе? Эта статья посвящена истории о том, как разработчики C#-анализатора PVS-Studio столкнулись с подобной проблемой и смогли решить её.

Читать далее
Всего голосов 33: ↑32 и ↓1+37
Комментарии56

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

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

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

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

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

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

Использование оператора '?.' в foreach: защита от NullReferenceException, которая не работает

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

0832_foreach_ConditionalAccess_ru/image1.png
Любите оператор '?.'? А кто же не любит? Эти лаконичные проверки на null нравятся многим. Однако сегодня мы поговорим о случае, когда оператор '?.' только создаёт иллюзию безопасности. Речь пойдёт о его использовании в цикле foreach.

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

Информация

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