Сейчас мы заняты большой задачей. Мы хотим провести сравнение четырёх анализаторов кода: CppCat, Cppcheck, PVS-Studio и Visual Studio 2013 (встроенный анализатор кода). Для этого мы решили проверить не менее 10 открытых проектов и проанализировать отчёты, которые выдадут анализаторы. Это очень трудоёмкая задача и пока она не завершена. Но так как ряд проектов уже проверен, то про некоторые из них можно написать статьи. Чем я сейчас и займусь. Для начала опишу, что интересного удалось найти с помощью PVS-Studio в Firebird.
Читать полностью »
Рубрика «code review» - 9
Побочный результат: проверяем Firebird с помощью PVS-Studio
2014-02-21 в 8:32, admin, рубрики: c++, code review, firebird, Firebird/Interbase, pvs-studio, Блог компании PVS-Studio, инструменты разработчика, обзор кода, статический анализ кода, метки: c++, code review, firebird, pvs-studio, инструменты разработчика, обзор кода, Си, статический анализ кодаПредновогодняя проверка PostgreSQL
2013-12-24 в 6:06, admin, рубрики: c++, code review, memcmp, postgresql, pvs-studio, Блог компании PVS-Studio, статический анализ кода, метки: c++, code review, memcmp, postgresql, pvs-studio, статический анализ кода
Год заканчивается, а я давно не писал заметок о проверке открытых проектов. Мне уже неоднократно предлагали проверить проект PostgreSQL Database Management System. Этим я и занялся. К сожалению, грандиозной и интересной статьи не получится. Я заметил только несколько типовых ошибок. Так что в этот раз получилась совсем небольшая статья.
ЦЦБ или управление по управлению версиями программного кода
2013-10-30 в 5:14, admin, рубрики: code review, svn, Блог компании Intel, Системы управления версиями, метки: code review, svnРазработка любого современного программного продукта не обходится без использования системы управления версиями программного кода (например, Subversion). Данный пост о том, что в некоторых случаях для успешного выпуска продукта одной только системы управления версиями становится недостаточно, и необходимо использовать некоторый инструмент для расширения ее функциональности.
Гладко было на бумаге
Разработчики имели разный опыт работы в нашем проекте Intel® Media SDK, и, как следствие, разное понимание рисков и последствий, которые несли их коммиты. Коммиты не тестировались разработчиками вовсе, или объем их тестирования был недостаточен.
Некоторые некорректные/не вовремя сделанные коммиты (например, ориентированные не на текущую, а на следующую версию продукта) приводили к появлению существенных (show stopper) ошибок на стадии, непосредственно предшествующей выпуску продукта. В условиях ограниченного временного ресурса разработчики испытывали немалые трудности в установлении причин их появления. Так как ошибки не могли быть исправлены немедленно, это приводило к сдвигу даты выпуска продукта.
Все это усложнялось еще и тем, что не всегда коммиты в системе управления версиями достаточно хорошо комментировались. Любые попытки изменить такое положение дел в нашем проекте были безуспешными.

Как решение вышеназванных проблем в нашем проекте был разработан CCB Читать полностью »
WTF?
2013-10-01 в 7:36, admin, рубрики: c++, code review, open source, pvs-studio, wtf, Блог компании PVS-Studio, обзор кода, ошибки в программе, Программирование, С++, метки: code review, open source, pvs-studio, wtf, обзор кода, ошибки в программе, С++, Си
Меня не покидает когнитивный диссонанс. На форумах обсуждаются возвышенные идеи о написании сверх надежных классов, кто-то рассказывает, что его проект собирается с ключами -Wall -Wextra -pedantic -Weffc++. Господи, где все эти достижения науки и техники? Почему я вижу кругом глупейшие ошибки? Может быть, со мной что-то не так?
Заземлённые указатели
2013-08-28 в 7:44, admin, рубрики: c++, code review, Cpp, cppcheck, Блог компании PVS-Studio, методологии разработки, обзор кода, разработка, разработка программного обеспечения, С++, указатели, метки: code review, Cpp, cppcheck, методологии разработки, обзор кода, разработка программного обеспечения, С++, указатели 
Не так давно, один из сотрудников покинул наш коллектив и присоединился к компании, занимающийся разработкой программного обеспечения, связанного с встраиваемыми системами. Ничего особенного в этом нет, всегда и везде, кто-то уходит, а кто-то приходит. Всё зависит от количества плюшек, удобства и предпочтений. Интересно другое. Человек искренне переживает за состояние кода на новом месте работы, что в результате и вылилось в эту совместную статью. Тяжело, «просто программировать», когда знаешь, что такое статический анализ кода.
Читать полностью »
PVS-Studio наконец то добрался до Boost
2013-08-21 в 10:53, admin, рубрики: boost, c++, code review, cplusplus, pvs-studio, Блог компании PVS-Studio, статический анализ кода, тестирование, метки: boost, c++, code review, cplusplus, pvs-studio, статический анализ кода 
Мы уже давно хотели проверить библиотеку Boost. У нас не было уверенности, что результатов проверки хватит на статью. Однако, желание не пропадало. Два раза мы пытались сделать это, но отступали, не разобравшись, как заменить вызов компилятора на вызов PVS-Studio.exe. Теперь мы вооружились новым инструментарием, и третья попытка оказалась удачной. Итак, возможно ли найти в Boost ошибки?
Ключ к счастью, или Качество включенó. Крик души программиста
2013-08-14 в 10:09, admin, рубрики: code review, Блог компании Positive Technologies, качество кода, модульное тестирование, разработка, метки: code review, качество кода, модульное тестированиеВ этот раз речь пойдет о модульных тестах и инспекциях кода. Когда мы в нашей команде начали использовать две эти практики в своих проектах, драйва и радости от работы прибавилось на порядок. Упомянутым темам посвящено огромное количество теоретических и практических трудов, но сегодня речь пойдет именно о личной выгоде разработчика.Читать полностью »
Review Board + Mercurial — опыт внедрения и автоматизации процесса code review
2013-07-18 в 16:18, admin, рубрики: code review, Mercurial, Программирование, Системы управления версиями, метки: code review, mercurial
Некоторое время назад в компании, где я работаю в связи с расширением комманды было принято решение о введении процесса code review. Выбор инструмента пал на Review Board — продукт обладает достаточным функционалом, активно разрабатывается с 2006 года и является open source. В качестве системы контроля версий у нас используется Mercurial
О том, с чем какими задачами столкнулись при организации процесса код ревью для связки Review Board + Mercurial — под катом.
Читать полностью »
Количественная оценка понятности кода
2012-12-03 в 17:06, admin, рубрики: code review, Проектирование и рефакторинг, рефакторинг, Совершенный код, метки: code review, рефакторинг 
Принято считать, что понятность кода — вещь, во-первых, субъективная, а, во-вторых, — количественно не измеряемая. Существуют различные количественные метрики кода, но среди них метрики понятности нет. Чтобы машинно измерить понятность кода, нужен его семантический анализ, а это уже задача искусственного интеллекта.
Но давайте посмотрим на проблему с другой стороны. Что мы делаем, когда разбираемся с чьим-то кодом? Как происходит сам процесс изучения кода? Мы листаем функции, ищем определения переменных, классов, переходим от функции к функции, от файла к файлу.
Затерянный остров хорошего кода
2012-11-13 в 8:15, admin, рубрики: code review, Code Style, stackexchange, Совершенный код, метки: code review, Code Style, stackexchangeОчередной спор о стиле, красоте и компактности кода занял слишком много времени, в связи с чем и был отправлен на разрешение широкой аудитории StackOverflow. Это помогло, и спор решился, но в комментариях мне намекнули, что я пришел не по адресу:
Stack Exchange's "codereview" site is the new hotness for this sort of question.
Оказывается, больше года назад в застенках Area 51 был рожден вопросник Code Review, призванный делать код лучше.
