﻿# Демонстрация возможностей анализатора PVS\-Studio на примере открытых проектов компании Microsoft

Компания Microsoft постепенно начала открывать исходный код некоторых своих проектов\. Наша команда этому очень рада\. Мы разделяем мнение, что код, над которым работают в Microsoft, имеет высокое качество\. Более того, в компании Microsoft при разработке уже используются анализаторы кода\. Поэтому, то, что инструменту PVS\-Studio удаётся найти ошибки, является отличной демонстрацией его возможностей\.


> Данная статья устарела\\\. Обновляемый список статей о проверенных проектах находится \[здесь\]\(https://pvs\-studio\.ru/ru/blog/inspections/\)\\\.

![0398_Microsoft_ru/image1.png](https://import.viva64.com/docx/blog/0398_Microsoft_ru/image1.png)

## PVS\-Studio

Те, кто уже знают, что такое анализатор PVS\-Studio могут пропустить этот вступление\.

PVS\-Studio \- это инструмент для выявления ошибок в исходном коде программ, написанных на языках С, C\+\+ и C\#\. PVS\-Studio выполняет [статический анализ кода](https://pvs-studio.ru/ru/blog/terms/0046/) и генерирует отчёт, помогающий программисту находить и устранять ошибки\. PVS\-Studio выполняет широкий спектр проверок кода, но наиболее силён в поисках опечаток и последствий неудачного Copy\-Paste\.

На сайте [доступна](https://pvs-studio.ru/ru/pvs-studio/download/) демонстрационная версия продукта\. В ней есть ряд ограничений, о которых я недавно писал в [статье](https://pvs-studio.ru/ru/blog/posts/0395/); там же сказано, как эти ограничения на время можно снять\.

## Демонстрация возможностей

Я давно уже убедился, что нет смысла писать красивые рекламные слова о PVS\-Studio\. Они не интересны программистам\. Я их отлично понимаю, ведь я и сам программист\. Как сказал Linus Torvalds: "Болтовня ничего не стоит\. Покажите мне код"\. В нашем случае, правда, следует немного перефразировать: "Болтовня ничего не стоит\. Покажите мне ошибки в коде"\.

У нас есть масса примеров, которые говорят сами за себя\. На данный момент нашей командой проверено множество открытых проектов и найдено 9574 ошибок\. Мы находим ошибки в таких проектах как Clang, Wine, Qt, Chromium, Unreal Engine и так далее\. Вы можете самостоятельно познакомиться с [базой ошибок](https://pvs-studio.ru/ru/blog/examples/) и прочувствовать могучую силу PVS\-Studio\.

Сейчас мне хочется выделить в отдельную группу проверку проектов, которые связаны с компанией Microsoft\. Я считаю, что в этой компании разработка программного обеспечения поставлена на высокий уровень, и код имеет низкую плотность ошибок\. Однако, даже высококлассные специалисты не застрахованы от ошибок, поэтому я рад продемонстрировать возможности анализатора PVS\-Studio\.

Также, наши статьи о проверке проектов является косвенным сравнением с анализатором [FxCop](https://en.wikipedia.org/wiki/fxcop) и встроенными в Visual Studio диагностиками\. Раз PVS\-Studio может находить ошибки после них, значит его стоит включить в ваш процесс разработки\.

Итак, предлагаю познакомиться со статьями, демонстрирующими возможности PVS\-Studio на проектах, написанных на языках C\+\+ и C\#\.

### C\+\+

* [Проверка проекта Computational Network Toolkit \(CNTK\)](https://pvs-studio.ru/ru/blog/posts/cpp/0372/) 
* [ChakraCore: проверка JavaScript\-движка для Microsoft Edge](https://pvs-studio.ru/ru/blog/posts/cpp/0370/)
* [Проверка проекта CoreCLR](https://pvs-studio.ru/ru/blog/posts/cpp/0310/)
* [Проверка Windows 8 Driver Samples](https://pvs-studio.ru/ru/blog/posts/cpp/0199/)
* Занимательная археология\. [Проверка Microsoft Word 1\.1a](https://pvs-studio.ru/ru/blog/posts/cpp/0245/)
* А ещё я находил ошибки в библиотеках Visual C\+\+: [1](https://pvs-studio.ru/ru/blog/posts/cpp/0163/), [2](https://pvs-studio.ru/ru/blog/posts/cpp/0288/) 
* Впрочем, нам далеко не всегда удается написать статью про ошибки после проверки проектов от компании Microsoft\. Не зря Microsoft славится ответственным подходом к разработке программного обеспечения и качественным кодом\. Например, в проекте Casablanca [я ничего не нашёл](https://pvs-studio.ru/ru/blog/posts/0189/)\.

### С\#

* [Analysis of \.NET Core Libraries \(CoreFX\)](https://pvs-studio.ru/ru/blog/posts/csharp/0365/)
* [Проверка \.NET Compiler Platform \(Roslyn\)](https://pvs-studio.ru/ru/blog/posts/csharp/0363/), приуроченная к выходу первой версии PVS\-Studio, в которой был поддержан анализ C\# проектов\.
* [Analysis of Microsoft Code Contracts](https://pvs-studio.ru/ru/blog/posts/csharp/0361/)

## Заключение

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

Хватит слов\. [Попробуйте анализатор в деле](https://pvs-studio.ru/ru/pvs-studio/download/)\.