Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
GBP
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
История о том, как мы иконку PVS-Studio…

История о том, как мы иконку PVS-Studio меняли

20 Фев 2019

Релиз 7.0 ознаменовал новую веху в истории анализатора PVS-Studio – теперь доступен анализ не только кода, написанного на C, C++, C#, но также и Java. Кроме этого глобального нововведения продолжают улучшаться и дорабатываться существующие механизмы анализа, добавляются диагностические правила. Было ещё одно глобальное изменение, которое вы навряд ли пропустили. Мы изменили иконку.

Примечание. В статье вы не найдёте хитрых приёмов или советов по разработке иконок. Цель статьи немного в ином – рассказать историю, и по возможности сделать это интересно.

0611_HowWeChangedIcon_ru/image1.png

С чего такое решение? Всё достаточно прозаично. Текущая иконка была уже старой и не менялась многие годы. Почему бы её и не обновить с глобальным обновлением версии? На том и порешили, что к релизу 7.0 нужно придумать что-то новое.

У вас наверняка возник вопрос – как от трёхмерных зелёных букв 'PVS' мы пришли к тому, к чему пришли? Для лучшего понимания следует проследить за историей изменений, которая будет изложена ниже.

К слову, читатели, внимательно следящие за нашими публикациями, а также те, кто общается с нами на конференциях, уже могли заметить некоторые изменения в сопутствующей атрибутике, например – единорогах. Теперь они чаще изображаются прямоходящими, преимущественно носят голубые футболки, да и вообще их ряды порядком разнообразились.

Вернёмся к вопросу о том, зачем вообще понадобилось экспериментировать с геометрическими фигурами, если и в статьях, и на стендах – везде фигурирует единорог? Почему бы не использовать его в качестве иконки?

Да, единорог действительно уже сильно ассоциируется с PVS-Studio, поэтому перед экспериментированием с новой иконкой мы проверили, как смотрелся бы единорог в качестве иконки.

Некоторые примеры вы можете увидеть ниже.

Окно установщика:

0611_HowWeChangedIcon_ru/image2.png

Часть контекстного меню, вызванного из Solution Explorer:

0611_HowWeChangedIcon_ru/image3.png

Выглядит не очень, правда? И чем меньше иконка, тем хуже обстояли дела. В каком-нибудь Process Hacker, например, единорог смотрелся совсем уж неприлично. Кстати, между собой мы прозвали эту иконку "бананом", так как в размере 16x16 от банана этого единорога отличить невозможно.

Поэтому мы решили не экспериментировать с рисованием новых единорогов специально для иконок, а попробовать изменить существующую (зелёные буквы 'PVS'). На самом деле мы уже экспериментировали с единорогом в качестве иконки несколько лет назад. Тогда была заказана разработка иконки у профессионала. Результат работы был просто выброшен.

Первоначально было решено сделать иконку более минималистичной (убрать трёхмерность) и изменить цвета. В качестве основного цвета решили использовать голубой: им окрашены некоторые элементы на сайте, в футболку такого цвета одеты единороги, используемые на сайте, в статьях, на раздаточных материалах и стендах конференций.

Были нарисованы 3 иконки, из которых и предстояло выбрать.

0611_HowWeChangedIcon_ru/image4.png

Второй макет из голосования выбыл сразу, а вот между первым и третьим голоса разделились. После непродолжительных споров отказались и от первой иконки – слишком уж она была простой.

Третья представленная иконка хоть и выглядела лучше на фоне двух остальных, но всё ещё не удовлетворяла всем желаниям. Были эксперименты с изменением расстояния между буквами, формой треугольника (с равнобедренного на равносторонний) и прочее. Одним из ключевых моментов стал, пожалуй, отказ от одноцветности и расширение цветовой палитры – выделение отдельного цвета для каждой буквы. Первая версия такой иконки выглядела следующим образом.

0611_HowWeChangedIcon_ru/image5.png

Расширение цветовой палитры внесло разнообразие, но иконка всё ещё выглядела слишком скучной и простой. Нам показалось, что основная причина – строгие горизонтальные/вертикальные линии, выступающие границами между буквами. С ними и было решено начать экспериментировать. Несколько промежуточных вариантов представлено ниже.

0611_HowWeChangedIcon_ru/image6.png

Ключевым решением, которое сильно повлияло на дальнейшие работы, а также нашло отражение и в финальном результате, стало расположение буквы 'V' следующим образом:

0611_HowWeChangedIcon_ru/image7.png

По поводу 'V' вопросов у нас больше не было – она идеально вписалась (хоть и была теперь больше похожа на галочку). Оставались вопросы по поводу границы между буквами 'P' и 'S', так как она не выглядела такой изящной, начиналась 'нигде' и уходила 'в никуда'. По сравнению с 'V', линии которой и начинались, и заканчивались в углах фигуры, это выглядело уныло.

Тут коллегой (Павел, привет) была высказана мысль, которая определила дальнейшее ключевое направление работ (цитата не дословная): "А зачем нам эта 'надстройка' над треугольником? Давай выкинем её, и тогда линия на границе синего и зелёного естественным образом расположится аналогично 'V'." И это было попаданием в яблочко!

0611_HowWeChangedIcon_ru/image8.png

Красиво, минималистично, границы расположены так, как нужно! Стали экспериментировать - смотрелось здорово. Довольные результатом, мы даже этот прототип решили назвать как-то по-особенному - 'UltimateTriangle'. Чтобы при сравнении с другими, рядом находящимися, сразу было понятно, кто здесь фаворит. Ну вы поняли, непредвзятое сравнение :)

Однако при более тщательном тестировании всплыл один нюанс (куда ж без них). При малом размере граница между зелёным и синим сливалась, хотелось её как-то подчеркнуть.

У коллег же была другая претензия. Если буквы 'P' и 'V' здесь ещё как-то можно увидеть, то 'S' явно перестала читаться. Может быть её и можно было 'достроить', но для этого нужно иметь совсем крутое воображение.

Так от треугольника мы двинулись дальше. Разрабатывая прототипы для решения обозначенной выше проблемы, Екатерина (ага, тебе тоже привет :) ) немного изменила геометрию фигуры, добавив еще один угол и превратив её из треугольника в... вытянутый и подрезанный треугольник? Неважно, как оно звучит, выглядеть это стало ещё более свежо!

Набросок новой фигуры:

0611_HowWeChangedIcon_ru/image9.png

А так он выглядел после переноса в цифровой формат:

0611_HowWeChangedIcon_ru/image10.png

Изменение геометрии явно пошло на пользу, но не хватало разделения элементов / выделения 'буквы' (кому чего). Для представления буквы 'S' было решено попробовать использовать тёмную линию. Результат представлен ниже.

0611_HowWeChangedIcon_ru/image11.png

Как видно, линия усугубила дело. Теперь основным элементом, выделяющимся на фоне остальных и акцентирующим внимание на себе, стала тёмная 'стрелка'.

А вот разделение фигуры на три явно отделённых компонента решило проблему. Почти финальный вариант выглядел так:

0611_HowWeChangedIcon_ru/image12.png

Я был доволен результатом. Коллеги тоже – теперь они более чётко видели здесь буквы 'PVS' (да как вы это делаете то?!).

Реакция Евгения, нашего генерального директора, (привет и тебе тоже :) ), сначала была примерно следующей: "Здорово, но где тут 'PVS'?" Удивительно, но через некоторое время и он стал видеть здесь буквы...

Дальнейшие доработки были связаны с небольшой корректировкой цветов и выверением расстояния между элементами – оно не должно было смотреться слишком большим, когда изображение отображается в крупном масштабе, но линия не должна выглядеть еле заметной полоской на маленьких изображениях – 16x16, например.

В итоге остановились на следующем варианте, который и стал финальным.

0611_HowWeChangedIcon_ru/image13.png

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

Окно установщика:

0611_HowWeChangedIcon_ru/image14.png

Часть контекстного меню, вызванного из Solution Explorer:

0611_HowWeChangedIcon_ru/image15.png

Внешний вид окна прогресса анализа при переключении открытых окон:

0611_HowWeChangedIcon_ru/image16.png

Пример того, как новая иконка отображается при поиске:

0611_HowWeChangedIcon_ru/image18.png

Ниже представляю краткий путь от старой до новой иконки:

0611_HowWeChangedIcon_ru/image20.png

Вроде бы вышло неплохо, как считаете? Кстати, не могу не спросить, а видите ли вы в новой иконке буквы 'PVS'?

Заключение

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

Тем, кому интересны подобные истории, рекомендую также прочитать статью (если вдруг вы её пропустили) "Как 10 лет назад начинался проект PVS-Studio". Однако и с тех пор уже утекло много воды (как минимум, мы переехали в новый офис), так что нам определённо ещё есть, что рассказать...

Популярные статьи по теме
Как PVS-Studio оказался внимательнее, чем три с половиной программиста

Дата: 22 Окт 2018

Автор: Андрей Карпов

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

Дата: 21 Ноя 2018

Автор: Андрей Карпов

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

Дата: 17 Янв 2019

Автор: Андрей Карпов

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Эффект последней строки

Дата: 31 Май 2014

Автор: Андрей Карпов

Я изучил множество ошибок, возникающих в результате копирования кода. И утверждаю, что чаще всего ошибки допускают в последнем фрагменте однотипного кода. Ранее я не встречал в книгах описания этого …
Бесплатный PVS-Studio для тех, кто развивает открытые проекты

Дата: 22 Дек 2018

Автор: Андрей Карпов

В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub, GitLab или Bitbucket. Им предоставляется возмо…
Статический анализ как часть процесса разработки Unreal Engine

Дата: 27 Июн 2017

Автор: Андрей Карпов

Проект Unreal Engine развивается - добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта - появление в коде новых ошибок, которые желательно выявлять как можно раньш…
PVS-Studio ROI

Дата: 30 Янв 2019

Автор: Андрей Карпов

Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые по…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

Автор: Андрей Карпов

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
Главный вопрос программирования, рефакторинга и всего такого

Дата: 14 Апр 2016

Автор: Андрей Карпов

Вы угадали, ответ - "42". Здесь приводится 42 рекомендации по программированию, которые помогут избежать множества ошибок, сэкономить время и нервы. Автором рекомендаций выступает Андрей Карпов - тех…
Любите статический анализ кода!

Дата: 16 Окт 2017

Автор: Андрей Карпов

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

Комментарии (0)

Следующие комментарии

На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять