Проблемы legacy-кода знакомы подавляющему большинству разработчиков программного обеспечения. Процесс превращения кода в legacy неизбежен, ведь прогресс в программировании не стоит на месте. Проекты либо «умирают» навсегда, либо требуют постоянной поддержки и написания новых функций. Таким образом, в любом проекте на любом языке программирования legacy-код возникает и доставляет разные неудобства при дальнейшей разработке. На примере PVS-Studio, в этой статье я расскажу, как сразу начать использовать статический анализатор кода в своём проекте.
Читать полностью »
Рубрика «статический анализ кода» - 12
Как перешагнуть через legacy и начать использовать статический анализ кода
2017-08-31 в 6:58, admin, рубрики: legacy, legacy code, pvs-studio, sonarqube, static code analysis, Visual Studio, Блог компании PVS-Studio, Компиляторы, Разработка под Linux, разработка под windows, статический анализ кодаБорьба с хардкодами при помощи статических анализаторов С#
2017-08-22 в 7:11, admin, рубрики: .net, C#, roslyn, Анализ и проектирование систем, Программирование, Совершенный код, статический анализ кодаВ этой статье я расскажу, как мы написали собственные анализаторы кода и чистим с их помощью нашу кодовую базу .net от наиболее острых / частых косяков. Главный посыл — сделать это довольно просто, не бойтесь писать свои анализаторы для борьбы с именно вашими багами. Вторичный посыл — попробуйте наши анализаторы и сообщите о результатах. Полное руководство я писать не буду, их довольно много в интернете, а вот небольшой обзор, что это как и с какими проблемами я столкнулся, надеюсь, окажется вам полезным.
Читать полностью »
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний
2017-07-31 в 14:12, admin, рубрики: C, c/c++, c++, efl, EFL Core Libraries, open source, pvs-studio, PVS-Studio for Linux, Блог компании PVS-Studio, Графические оболочки, ошибки в коде, Разработка под Linux, Си, си/си++, статический анализ кода
После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода). Мои рассуждения о том, что это сильно зависит от анализируемого проекта и настроек анализатора не выглядят как настоящий ответ. Я решил привести конкретные числа, проведя более тщательное исследование одного из проектов, входящих в состав Tizen. Поскольку в обсуждении статьи активное участие принимал Carsten Haitzler, я решил, что будет интересно взять для эксперимента EFL Core Libraries, в разработке которого он участвует. Надеюсь, эта статья поможет Carsten стать поклонником нашего анализатора :).
Читать полностью »
Tizen: подводим итоги
2017-07-26 в 8:51, admin, рубрики: c/c++, C#, c++, code review, cwe, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, информационная безопасность, итоги, ошибки в коде, плотность ошибок, Разработка под Tizen, статический анализ кодаНаша команда написала три заметки, связанные с анализом кода операционной системы Tizen. Операционная система содержит много кода и поэтому является благодатной почвой для написания различных статей. Думаю, что к Tizen мы ещё вернёмся в будущем, но сейчас нас ждут другие интересные проекты. Поэтому я подведу некоторые итоги проделанной работы и отвечу на ряд вопросов, возникших после опубликованных ранее статей.
Поговорим о микрооптимизациях на примере кода Tizen
2017-07-17 в 7:02, admin, рубрики: C, c/c++, c++, open source, pvs-studio, tizen, tizen os, Блог компании PVS-Studio, код, микрооптимизация, оптимизация кода, оптимизация программ, разработка операционных систем, Разработка под Tizen, рефакторинг, Си, си/си++, статический анализ кода
Как правило, при обсуждении диагностических возможностей PVS-Studio за кадром остаются рекомендации, выдаваемые анализатором по поводу микрооптимизаций Си и Cи++ кода. Конечно, микрооптимизации не так важны, как диагностики выявляющие ошибки, но про них тоже интересно поговорить.
Читать полностью »
27000 ошибок в операционной системе Tizen
2017-07-12 в 8:13, admin, рубрики: bugs, C, c/c++, c++, open source, pvs-studio, Samsung, static code analysis, static code analyzer, tizen, tizen os, аудит кода, Блог компании PVS-Studio, операционная система, открытая ос, ошибки в коде, Разработка под Tizen, Си, си/си++, системное программирование, статический анализ кода, статический анализатор кода
Эта статья продемонстрирует, что при разработке крупных проектов статический анализ кода является не просто полезным, а совершенно необходимым элементом процесса разработки. Я начинаю цикл статей, посвященных возможности использования статического анализатора кода PVS-Studio для повышения качества и надежности операционной системы Tizen. Для начала я проверил небольшую часть операционной системы (3.3%) и выписал около 900 предупреждений, указывающих на настоящие ошибки. Если экстраполировать результаты, то получается, что наша команда способна выявить и устранить в Tizen около 27000 ошибок. По итогам проведённого исследования я подготовил презентацию, которая предназначалась для демонстрации представителям Samsung и была посвящена возможному сотрудничеству. Встреча перенесена на неопределённый срок, поэтому я решил не тратить время и трансформировать материал презентации в статью. Запасайтесь вкусняшками и напитками, нас ждёт длинный программистский триллер.
Читать полностью »
Статический анализ как часть процесса разработки Unreal Engine
2017-06-27 в 7:49, admin, рубрики: c++, epic games, game development, Gamedev, open source, pvs-studio, static code analysis, Unreal Engine, Unreal Engine 4, Блог компании PVS-Studio, качество кода, ошибки в коде, процесс разработки, разработка игр, сотрудничетсво, статический анализ кода, Тестирование игр
Проект Unreal Engine развивается — добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта — появление в коде новых ошибок, которые желательно выявлять как можно раньше. Одним из способов сокращения количества ошибок является использование статического анализатора кода PVS-Studio. Причем анализатор также быстро развивается и учится находить новые паттерны ошибок, некоторые из которых будут рассмотрены в этой статье. Если вас заботит качество кода ваших проектов, то эта статья для вас.
Читать полностью »
Головная боль от использования математического софта
2017-06-26 в 6:41, admin, рубрики: C, c++, open source, pvs-studio, SciLab, static code analysis, Блог компании PVS-Studio, Компиляторы, разработка под windows, статический анализ кода
Так получилось, что в один период времени я обсуждал в интернете, казалось бы, разные темы: бесплатные альтернативы Matlab для университетов и студентов, и поиск ошибок в алгоритмах с помощью статического анализа кода. Все эти обсуждения объединило ужасное качество кода современных программ. В частности, качество софта для математиков и учёных. Тут же возникает вопрос о доверии к расчётам и исследованиям, проведённым с помощью таких программ. Попробуем поразмыслить на эту тему и поискать ошибки.
Читать полностью »
Как PVS-Studio может помочь в поиске уязвимостей?
2017-06-20 в 7:33, admin, рубрики: C, c++, CVE, cwe, illumos, iOS, mysql, open source, pvs-studio, security, static code analysis, vulnerabilities, weaknesses, Блог компании PVS-Studio, информационная безопасность, статический анализ кода, уязвимости
Уязвимость в терминах компьютерной безопасности — недостаток в системе, позволяющий намеренно нарушить её целостность или вызвать неправильную работу. Как показывает практика, даже, казалось бы, незначительный баг может являться серьёзной уязвимостью. Уязвимостей можно избежать, используя различные методики валидации и верификации программного обеспечения, в том числе — статический анализ. О том, как с задачей поиска уязвимостей справляется PVS-Studio, и пойдёт речь.
Читать полностью »
Notepad++: проверка кода пять лет спустя
2017-06-07 в 6:04, admin, рубрики: c++, notepad++, open source, pvs-studio, static code analysis, Visual Studio, Блог компании PVS-Studio, Компиляторы, разработка под windows, статический анализ кода
В этом году статическому анализатору PVS-Studio исполнилось 10 лет. Правда, стоит уточнить, что 10 лет назад он назывался Viva64. И есть ещё одна интересная дата: прошло 5 лет с момента предыдущей проверки кода проекта Notepad++. С тех пор PVS-Studio был очень сильно доработан: добавлено около 190 новых диагностик, усовершенствованы старые. Впрочем, ожидать огромного количества ошибок в Notepad++ не стоит. Это небольшой проект, состоящий всего из 123 файлов с исходным кодом. Тем не менее, в коде найдены ошибки, которые будет полезно исправить.
Читать полностью »