День открытых дверей в JetBrains

День открытых дверей JetBrains собрал множество посетителей со всех уголков страны. Не обошло это мероприятие стороной и редакцию журнала Хакер, и в Хакере вышла статья о нем (ниже приводится с сокращениями, одна из использованных иллюстраций – из статьи The Village).

Как это было

Максим Шафиров, CEO JetBrains, в своем вступительном слове к аудитории подчеркнул, что главный приоритет JetBrains – продукты для программистов, сказал пару слов о предстоящей программе вечера и поблагодарил всех собравшихся за проявленный интерес.

Самым неожиданным разработкам компания отвела отдельный трек на конференции: практикумы по Kotlin и MPS, а также доклад Валентина Кипяткова, одного из основателей компании и ведущего разработчика, о новой системе контроля версий. Названия у нее пока нет.

Одна из ключевых фишек новой системы контроля версий в том, что центральный (онлайновый) репозиторий теперь играет куда более важную роль, чем в классических VCS. Локальный репозиторий, конечно, тоже никуда не делся, и запись ведется сначала в него. А вот синхронизация с центральным репозиторием происходит в фоне постоянно. Это никак не мешает коммитить изменения, если ты находишься в оффлайне. Они будут синхронизированы автоматически, как только станет доступен интернет.

Еще один необычный момент в новинке — отсутствие явного интерфейса командной строки. Хотя в базовом состоянии CLI уже есть, из коробки предлагается использовать только GUI, который наверняка будет интегрирован с другими продуктами JetBrains.

По словам Кипяткова, публичное бета-тестирование новой VCS начнется не ранее чем через год (а значит, релиз будет еще позже). Базовый функционал будет доступен бесплатно (но существование платных редакций или надстроек не исключается), исходный код будет открыт.

IDE из первых рук

После Максима Шафирова в главный зал вышел Николай Чашников, ведущий разработчик IntelliJ IDEA, и провел мастер-класс по этой IDE. Действительно очень полезный воркшоп, ведь не секрет, что эта IDE — настолько мощная штука, что, кажется, кроме самих разработчиков мало кто использует все возможности этой IDE.

Доклад был разделен на несколько частей, в каждой из которых освещались разные аспекты использования IntelliJ IDEA. Например, в разделе «Как писать код с нуля» Николай подробно остановился на «умной» идеевской технологии code completion (функция автодополнения, которая позволяет вставлять только то, что можно вставить), показал пример быстрой конвертации массивов. Дальше речь шла о том, как с помощью IDEA рефакторить код для написания тестов, быстро генерировать элементы класса, осуществлять быструю навигацию по проекту и прочее.

IDE workshop В отличие от фотокамеры, собравшиеся внимательно изучали слайды Николая

В конце Николай напомнил, что в каждой IDE от JetBrains есть такая штука, как Productivity Guide. Это — трекер использования фич IDE. В нем показывается, сколько раз ты, например, использовал Code Completion, сколько времени и символов тебе это сэкономило, сколько поправлено багов. В общем, очень забавная статистика — помогает осознать, насколько важна правильная IDE для разработчика. Беглый взгляд на ноутбуки соседей дал понять, что аудиторию фича сильно заинтересовала — многие полезли в меню Help, чтобы посмотреть свою статистику.

Мой PyCharm, к слову, сказал мне, что за последний месяц своим автодополнением и коррекцией спас меня от написания лишних 35 Кб кода и 16 возможных ошибок. Соседу моему повезло куда меньше. А вот с остальным и у меня фейл — быстрой навигацией по проекту я, похоже, не пользуюсь. Надо, конечно, почитать мануал на досуге, а то юзать IDE как блокнот — не айс :).

В секции .NET тоже было немало слушателей: доклад «dotTrace и Timeline: как превратить десятикратное ускорение программы в интересное занятие» от Михаила Герасимова и Анатолия Никитина привлек внимание аудитории.

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

Дмитрий Жемеров, CTO JetBrains, не смог лично присутствовать на мероприятии, поэтому делал доклад о поддержке динамических языков программирования в IDE на базе IntelliJ Platform по видеосвязи из мюнхенcкого офиса JetBrains. Было немного непривычно наблюдать за тем, как аудитория задает вопросы двум мониторам.

Дмитрий Жемеров отвечает на вопросы Дмитрий Жемеров отвечает на вопросы

Около главного зала, где проходили два предыдущих воркшопа, было расставлено несколько книжных шкафов с десятками книг по разработке.

Библиотека программиста Библиотека программиста

На этом же этаже стоял необычный музыкальный инструмент Ideaphone на основе оркестровых колоколов, сделанных из газопроводных труб. Управляется этот инструмент автоматизированной системой на базе Arduino. К инструменту прилагался веб-сервер и клиент для управления (веб-приложение с привычными музыканту черными и белыми клавишами).

Трубы + колокола + Arduino = Ideaphone Трубы + колокола + Arduino = Ideaphone

Сделали эту штуку на хакатоне JetBrains, в котором, к слову, она и заняла почетное первое место среди множества других оригинальных проектов. Управляется Ideaphone по MIDI.

Кстати, о музыке. У JetBrains есть небольшая музыкальная комната. До project-студии, наверное, не дотягивает, но все необходимое, в принципе, есть.

Кроме ПО, в JB еще и музыку делают :) Кроме ПО, в JB еще и музыку делают :)

Как работают в JetBrains?

Каждый этаж офиса JetBrains имеет свой цвет — синий, желтый, красный, оранжевый, зеленый, фиолетовый…

Разноцветный JetBrains Разноцветный JetBrains

Между этажами курсировал забавный лифт, обклеенный магнитами с логотипами разных продуктов JetBrains. Хотя магниты можно было свободно отрывать от стен, но их количество не убавлялось — то ли народ стеснялся, то ли JetBrains оперативно подвозила новые. Мы ухватили себе несколько на память.

Продуктовый лифт Продуктовый лифт

На стенах иногда попадаются весьма забавные надписи и плакаты:

В JetBrains любят хорошие дни В JetBrains любят хорошие дни
Ни один сантиметр площади даром не пропадет Ни один сантиметр площади даром не пропадет

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

И они здесь на каждом шагу И они здесь на каждом шагу

Например, комнаты отдыха. Лампа, наушники и кресло — отличное место для брейка готово.

Кондиционеры включены на полную: в разговорных комнатах прохладно Обычно двери в разговорные комнаты закрыты, но тогда вспышка прикольно отражается в стекле

На каждом этаже можно встретить небольшие уютные места, где можно попить кофе и обсудить насущные проблемы.

Здесь все располагает к беседе. Особенно кофе-машина. Здесь все располагает к беседе. Особенно кофе-машина.

Ну а если кофе не обойтись, то у JetBrains в запасе целая столовая с бесплатными обедами:

Поесть можно и основательнее Поесть можно и основательнее

Очень необычно смотрятся переговорки, вмонтированные прямо в стены офиса.

In-wall переговорки на двоих In-wall переговорки на двоих

…Но иногда попадаются и совсем уж экзотичные вещи:

Если на стол положить зеркало, то можно прожечь дыру в потолке Если на стол положить зеркало, то можно прожечь дыру в потолке

А вот серверная JetBrains — предмет особой гордости инженеров компании. Обычно здания такого типа рассчитаны на стандартную офисную нагрузку, однако из-за тяжелых аккумуляторов ИБП нагрузка в серверной превышает это значение во много раз. Решили проблему так: здание, в котором расположен офис, стоит на вертикальных колоннах, поэтому инженеры соединили их поперечными 35-сантиметровыми балками из металла — по расчетам, подобная конструкция может выдержать танк.

Небольшой ЦОД на балках Небольшой ЦОД на балках

В JetBrains повсюду царит дух творчества. Даже такие, казалось бы, обыденные вещи, как парковка, не обошлись без забавных мелочей вроде арта на стенах.

Граффити на парковке нарисовали заранее Граффити на парковке нарисовали заранее

В JetBrains многие ездят на велосипедах, поэтому они дожидаются своих владельцев в тепле и покое: перед поездкой не приходится вытирать сиденье от грязи, воды и снега.

Многие разработчики предпочитают крутить педали, а не нажимать Многие разработчики предпочитают крутить педали, а не нажимать

Инженеры на высоте

Вот чего зачастую нет даже у самых больших компаний — так это это своей крыши с диванами и Wi-Fi, с которой открывается потрясающий вид на Исаакий и Петропавловку.

Вид с крыши Вид с крыши
Петропавловка и Пушкинский дом - вдали, корпуса СПбГУ - вблизи. Петропавловка и Пушкинский дом – вдали, корпуса СПбГУ – вблизи.