Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Конфигурационный менеджмент (часть 2, обзор инструментов)

Управление проектами *
Прошло много времени, прежде чем я созрел на написание второй части статьи, посвященной управлению конфигурациями. Тому, что это наконец таки свершилось способствует тот факт, что не так давно мне посчастливилось выступать на конференции PHPCONF 2009 8 октября (Web Architect Workshop Day) с мастер-классом «Метод организации репозитория исходного кода». Для выступления были заблаговременно подготовлены презентация, а также текст доклада. Несмотря на отличную организацию мероприятия, для публичного доступа так и не были выложены материалы докладов, входящих в программу конференции. В качестве компенсации я решил таки опубликовать материал, использованный в моем выступлении. Кроме данной статьи, (которая является логическим продолжением предыдущей), посвященной конфигурационному менеджменту, для публичного обозрения доступны слайды презентации.
В данной статье пойдет речь об инструментах, использующихся при управлении конфигурациями. Поэтому в первую очередь хотелось бы заострить внимание на том, как инструменты, использующиеся в разработке могут влиять на процесс создания ПО.
Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Просмотры 3.7K
Комментарии 25

Статический анализ кода C++

C++ *
Для меня красота C++ заключается, в первую очередь, во вседозволенности и ужасающей мощи языка. Мы можем работать с памятью так же плотно, как и в C, и в то же время имеем такие средства абстракции, как шаблоны и STL, где параметризовать можно что угодно и чем угодно.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Просмотры 29K
Комментарии 43

Джон Кармак о статическом анализе кода

Проектирование и рефакторинг *
«Самой важной вещью, которую я сделал как программист за последние годы — это начал агрессивно применять статический анализ кода. — пишет Джон Кармак в статье, опубликованной на AltDevBlogADay. — Не так важны сотни серьёзных багов, которые удалось предотвратить, сколько смена ментальности и моего отношения к надёжности ПО и качеству кода».

Джон Кармак рассказывает о различных инструментах, которые пытался использовать в течение своей карьеры и о тех выводах, к которым пришёл в итоге.
Читать дальше →
Всего голосов 92: ↑77 и ↓15 +62
Просмотры 13K
Комментарии 55

Новый механизм подавления ненужных сообщений анализатора

Блог компании PVS-Studio
PVS-Studio
На данный момент анализатор PVS-Studio уже имеет механизм для подавления ложных срабатываний (False Positive). Этот механизм полностью устраивает нас с функциональной точки зрения, т.е. у нас нет претензий к надёжности его работы. Однако, у некоторых из наших пользователей и клиентов возникало желание иметь возможность работать с сообщениями анализатора только на «новом», т.е. вновь написанном коде. Это желание вполне можно понять, учитывая, что в крупном проекте анализатор может сгенерировать тысячи или даже десятки тысяч сообщений на существующий код, править которые, конечно, никто не станет.

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2.8K
Комментарии 7

Бунт против виртуальной машины

Информационная безопасность *Разработка мобильных приложений *Разработка под Android *
Из песочницы
Предлагаю вашему вниманию перевод статьи Rage Against the Virtual Machine.

Антивирусные компании, магазины мобильных приложений и исследователи безопасности используют техники, основанные на динамическом анализе кода, для обнаружения и анализа мобильных вредоносных приложений. В этот статье, представлен широкий диапазон техник противодействия анализу, которые могут быть использованы вредоносными приложения для обхода динамического анализа в эмулируемые средах платформы Android.

Эвристики обнаружения, представленные в этой статье, охватывают три различные категории, основанные на (i) статических свойствах, (ii) динамической информации от датчиков и (iii) тонкостях работы эмулятора Android на виртуальных машинах. Для оценки эффективности представленных методов они были включены в образцы реальных вредоносных приложений и отправлены в публично доступные системы динамического анализа, после чего были получены тревожные результаты. Было обнаружено, что все инструменты и сервисы уязвимы для большинства наших техник уклонения от анализа. Даже тривиальные техники, такие как проверка значения IMEI, достаточны для обхода некоторых существующих сред динамического анализа. Также предложены возможные контрмеры для улучшения устойчивости текущих инструментов динамического анализа против попыток уклонения от анализа.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 20K
Комментарии 18

Verone — статический анализатор для C++ с анализом на лету

C++ *Visual Studio *
Из песочницы
Меня зовут Владимир Пляшкун и в сегодняшней статье я собираюсь представить бесплатный статический анализатор Verone для C++03/C++11/C++14, главной особенностью которого является анализ на лету.
Читать дальше →
Всего голосов 55: ↑53 и ↓2 +51
Просмотры 18K
Комментарии 35

Баг месяца: эстафета от PC-Lint к PVS-Studio

Блог компании PVS-Studio Open source *Программирование *C++ *C# *
Недавно мы опубликовали 2 статьи про ТОП 10 ошибок в открытых проектах C++ и C# за предыдущий 2016 год. Статьи понравились читателям и это натолкнуло на мысль: почему бы не сделать такой ТОП для каждого месяца? Ведь на нашем сайте огромная база ошибок, которая хорошо структурирована и из которой можно выбрать самые интересные баги, найденные в определенный промежуток времени. В этой заметке будет рассказано о новой рубрике «Баг месяца» и о том, из чего мы исходили, когда готовили список ошибок для нее.

Picture 1
Читать дальше →
Всего голосов 29: ↑24 и ↓5 +19
Просмотры 5.2K
Комментарии 6

Статический анализ в видеоигровой индустрии: топ-10 программных ошибок

Блог компании PVS-Studio Программирование *C++ *Разработка игр *C# *


Если вы занимаетесь разработкой ПО в сфере видеоигровой индустрии и задаётесь вопросом о том, что ещё можно сделать, чтобы повысить качество продукта \ упростить процесс разработки, и при этом не используете статический анализ — самое время начать. Сомневаетесь? Что ж, я попробую вас в этом убедить. Если же вам просто интересно посмотреть на ошибки, которые допускают разработчики из сферы видеоигровой индустрии, то, опять же, вы попали по адресу — специально для вас отобраны наиболее интересные.
Читать дальше →
Всего голосов 42: ↑39 и ↓3 +36
Просмотры 17K
Комментарии 26

Lifetime Profile Update in Visual Studio 2019 Preview 2

Блог компании Microsoft Программирование *C++ *Visual Studio *

The C++ Core Guidelines’ Lifetime Profile, which is part of the C++ Core Guidelines, aims to detect lifetime problems, like dangling pointers and references, in C++ code. It uses the type information already present in the source along with some simple contracts between functions to detect defects at compile time with minimal annotation.



Read more →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 1.1K
Комментарии 0

Introduce Static Analysis in the Process, Don't Just Search for Bugs with It

Тестирование IT-систем *Java *DevOps *
This article is an authorized translation of the original post. The translation was made with the kind help of the guys from PVS-Studio. Thank you, guys!

What encouraged me to write this article is considerable quantity of materials on static analysis, which recently has been increasingly coming up. Firstly, this is a blog of PVS-Studio, which actively promotes itself on Habr posting reviews of errors, found by their tool in open source projects. PVS-Studio has recently implemented Java support, and, of course, developers from IntelliJ IDEA, whose built-in analyzer is probably the most advanced for Java today, could not stay away.

When reading these reviews, I get a feeling that we are talking about a magic elixir: click the button, and here it is — the list of defects right in front of your eyes. It seems that as analyzers get more advanced, more and more bugs will be found, and products, scanned by these robots, will become better and better without any effort on our part.

Well, but there are no magic elixirs. I would like to talk about what is usually not spoken in posts like «here are things that our robot can find»: what analyzers are not able to do, what's their real part and place in the process of software delivery, and how to implement the analysis properly.


Ratchet (source: Wikipedia).
Read more →
Всего голосов 32: ↑31 и ↓1 +30
Просмотры 4.6K
Комментарии 0

Counting Bugs in Windows Calculator

Блог компании PVS-Studio Open source *C++ *Visual Studio *C *

A few days ago, Microsoft made the source code of their Windows Calculator publicly available. Calculator is an application that has traditionally shipped with every Windows version. A number of Microsoft projects went open-source over the recent years, but this time the news was covered even by non-IT media on the very first day. Well, it's a popular yet tiny program in C++. Despite its size, we still managed to find a number of suspicious fragments in its code using the PVS-Studio static analyzer.
Read more →
Всего голосов 44: ↑41 и ↓3 +38
Просмотры 41K
Комментарии 2

Following in the Footsteps of Calculators: Qalculate

Блог компании PVS-Studio Open source *Программирование *C++ *C *

Previously we did code reviews of large mathematical packages, for example, Scilab and Octave, whereby calculators remained aloof as small utilities, in which it is difficult to make errors due to their small codebase. We were wrong that we haven't paid attention to them. The case with posting the source code of the Windows calculator showed that actually everyone was interested in discussing types of errors hiding in it. Moreover, the number of errors there was more than enough to write an article about that. My colleagues and I, we decided to explore the code of a number of popular calculators, and it turned out that the code of the Windows calculator was not that bad (spoiler).
Read more →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры 1.1K
Комментарии 3

Cataclysm Dark Days Ahead, статический анализ и рогалики

Блог компании PVS-Studio Open source *C++ *Разработка игр *C *
Picture 10

Скорее всего, из названия статьи вы уже догадались, что в центре внимания ошибки в исходном коде. Но это вовсе не единственное, о чем пойдет речь в этой статье. Если кроме С++ и ошибок в чужом коде вас привлекают необычные игры и вам интересно узнать, что это такие за «рогалики» и с чем их едят, добро пожаловать под кат!
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 8K
Комментарии 19

Cataclysm Dark Days Ahead: Static Analysis and Roguelike Games

Блог компании PVS-Studio Open source *C++ *Разработка игр *C *
Picture 5

You must have already guessed from the title that today's article will be focusing on bugs in software source code. But not only that. If you are not only interested in C++ and in reading about bugs in other developers' code but also dig unusual video games and wonder what «roguelikes» are and how you play them, then welcome to read on!
Read more →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 3.9K
Комментарии 0

Almost Perfect Libraries by Electronic Arts

Блог компании PVS-Studio Open source *C++ *Разработка игр *C *
Our attention was recently attracted by the Electronic Arts repository on GitHub. It's tiny, and of the twenty-three projects available there, only a few C++ libraries seemed interesting: EASTL, EAStdC, EABase, EAThread, EATest, EAMain, and EAAssert. The projects themselves are tiny too (about 10 files each), so bugs were found only in the «largest» project of 20 files :D But we did find them, and they do look interesting! As I was writing this post, we were also having a lively discussion of EA games and the company's policy :D

Picture 1

Read more →
Всего голосов 24: ↑22 и ↓2 +20
Просмотры 5.4K
Комментарии 0

Библиотеки Electronic Arts почти хорошего качества

Блог компании PVS-Studio Open source *C++ *Разработка игр *C *
Наше внимание привлёк репозиторий Electronic Arts на GitHub. Он очень маленький и из двадцати трёх проектов нас заинтересовали только несколько C++ библиотек: EASTL, EAStdC, EABase, EAThread, EATest, EAMain и EAAssert. Проекты оказались тоже очень маленькими (около 10 файлов), поэтому мы нашли ошибки только в «самом большом» из 20 файлов :D Но нашли, и интересные! Пока писалась заметка, мы с коллегами также бурно обсудили игры компании EA и её стратегию :D

Picture 1

Читать дальше →
Всего голосов 41: ↑36 и ↓5 +31
Просмотры 16K
Комментарии 5

CMake: the Case when the Project's Quality is Unforgivable

Блог компании PVS-Studio Open source *C++ *C *Системы сборки *

Picture 1

CMake is a cross-platform system for automating project builds. This system is much older than the PVS-Studio static code analyzer, but no one has tried to apply the analyzer on its code and review the errors. As it turned out, there are a lot of them. The CMake audience is huge. New projects start on it and old ones are ported. I shudder to think of how many developers could have had any given error.
Read more →
Всего голосов 25: ↑23 и ↓2 +21
Просмотры 1.7K
Комментарии 0

CMake: тот случай, когда проекту непростительно качество его кода

Блог компании PVS-Studio Open source *C++ *C *Системы сборки *

Picture 1

CMake — это кроссплатформенная система автоматизации сборки проектов. Эта система намного старше, чем статический анализатор кода PVS-Studio, при этом ещё никто не попробовал применить его к коду и сделать обзор ошибок. Ошибок, оказывается, много. Аудитория CMake огромна. На нём начинаются новые проекты и переносятся старые. Страшно представить, у скольких программистов могла проявиться та или иная ошибка.
Читать дальше →
Всего голосов 53: ↑48 и ↓5 +43
Просмотры 17K
Комментарии 29

Analyzing the Code of ROOT, Scientific Data Analysis Framework

Блог компании PVS-Studio Open source *C++ *C *Big Data *
Picture 3
While Stockholm was holding the 118th Nobel Week, I was sitting in our office, where we develop the PVS-Studio static analyzer, working on an analysis review of the ROOT project, a big-data processing framework used in scientific research. This code wouldn't win a prize, of course, but the authors can definitely count on a detailed review of the most interesting defects plus a free license to thoroughly check the project on their own.

Introduction


Picture 1

ROOT is a modular scientific software toolkit. It provides all the functionalities needed to deal with big data processing, statistical analysis, visualisation and storage. It is mainly written in C++. ROOT was born at CERN, at the heart of the research on high-energy physics. Every day, thousands of physicists use ROOT applications to analyze their data or to perform simulations.
Read more →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 2.1K
Комментарии 4

Анализ кода ROOT — фреймворка для анализа данных научных исследований

Блог компании PVS-Studio Open source *C++ *C *Big Data *
Picture 3
Пока в Стокгольме проходила 118-я Нобелевская неделя, в офисе разработки статического анализатора кода PVS-Studio готовился обзор кода проекта ROOT, используемого в научных исследованиях для обработки больших данных. Премию за такой код, конечно, не дашь, а вот подробный обзор интересных дефектов кода и лицензию для полной проверки проекта разработчики получат.

Введение


Picture 1

ROOT — набор утилит для работы с данными научных исследований. Он обеспечивает все функциональные возможности, необходимые для обработки больших данных, статистического анализа, визуализации и хранения. В основном написан на языке C++. Разработка началась в CERN (Европейская организация по ядерным исследованиям) для исследований по физике высоких энергий. Каждый день тысячи физиков используют ROOT-приложения для анализа своих данных или для моделирования.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 3.9K
Комментарии 7