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

32d3ca0552cc0d760ec577a8b75f3761.png

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

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

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

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

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

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

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

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

14afa9558e0ebfa2e027aee2c8df7203.png

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

3ebc6b99c63a5dad97d630963a66426e.png

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

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

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

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

731db30d5aa5f9201700dc2c59d4d5c3.png

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

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

60f280fcd55243a76dbbeae3b29c119c.png

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

c5cdbab0c5cdaf55e9d677516cf7d5d3.png

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

6f0ea6718c560c8ed888b2f1662dcc3d.png

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

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

7dec5d577cdec8f1b173223f5df33df0.png

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

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

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

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

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

115f6a36d944bc4e166d0e71e01691c0.png

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

aeda37f7cafefa836eceeebce137754b.png

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

e735f42c951398f16b05be829359890a.png

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

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

771f55b6f65487c4ac501a4baeca081a.png

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

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

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

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

3744b74725f119c8f4725507a1e9b8c5.png

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

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

b71fb2ce5c9026a1a4fdb5c638c9b362.png

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

fb5d57ffe341ed5bbf032e1017f7bb0b.png

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

6d9dfd74ef89bc1f9c18097986e04ee3.png

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

8187d179f310c04b4fa2c61941feeacd.png

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

add8085012cbd61d466d9242093a706d.png

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

Заключение


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

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

8983b65a74adb29a2113eba12fbec3f1.png

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. The story of how we changed the PVS-Studio icon

© Habrahabr.ru