СофтТеко на Конференции Joker 2014

Основной необходимостью любой IT специальности является постоянное самообразование и совершенствование. В этой связи приятно отметить, что посещение профессиональных мероприятий стало традицией среди сотрудников нашей компании.

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

Саша Пеховский, Саша Куцко, Саша Стальмаков, Денис Кухта, Витя Зельдин, Андрей Панасюк и Саша Бендерский решили поделиться впечатлениями от посещения мероприятия, а также полезной информацией, которую удалось почерпнуть в ходе мероприятия.

Доклады

Nitsan Wakart – The Illusion of Execution

Андрей: Довольно капитанский доклад про то, что у вас есть много факторов которые могут влиять на выполнение вашего софта. Ничего сильно интересного не узнал, но доклад помог почерпнуть идею для следующего моего доклада для студентов БГУ

Андрей Паньгин – Лучший отладчик — сделанный своими руками

Андрей: Это абсолютно лучший доклад из тех что я посетил на конференции. Что делать если хочется понять что ж там не так в этой JVM на проде или просто вдруг проблема воспроизвелась и нужно попытаться понять что к чему с выключенным JPDA. Очень и очень интересно. Рекомендую глянуть когда появится в общем доступе.

Николай Чашников – Писать код быстрее, ошибаться реже

Саша Б: Николай из JetBrains, продуктом которой – IntelliJ Idea пользуются почти все java-разработчики, и его доклад был о том, как писать код так, чтобы застраховаться от NPE и не писать кучу проверок. Доклад вышел достаточно однобоким, но в целом интересным. Можно глянуть одним глазом.

Витя: Соглашусь с Сашей. Действительно доклад был о том как избегать NPE и как это делает Intellij Idea. Так же Николай рассказал про продукты, которые дополняют “идею”. Они встраиваются в javac и ошибки, которые могли появиться в рантайме, выведутся на этапе компиляции. Доклад вышел хорошим. Мне понравился.

Алексей Шипилёв – Java Benchmarking: как два таймстампа прочитать!

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

Christoph Engelbert & Peter Lawrey – Unsafe Java World

Саша С: Господа докладчики рассказывали о том, что возможно сделать в java, если копнуть на уровень ниже – в JVM: например, изменять значения переменных в кеше JVM или делать что-то на уровне байт-кода. Часто звучала фраза “you shouldn’t use this”. Не назвал бы доклад интересным или полезным, скорее познавательным.

Андрей: Доклад рассказывает о десятке способов выстрелить себе в ногу. Довольно интересно для того чтобы заглянуть немножечко поглубже. Но вообще за подобный код нужно отрывать руки. Практическая польза сомнительна, но fun – неплохой

Иван Крылов – StructuredArray и ObjectLayout

Витя: Компания Azul Systems, которую представлял Иван, предлагает новый пакет java-классов. Пакет призван улучшить производительность “как в программах С”. Там не будет синтаксических изменений, нового байткода и новых форм поведения JVM. Ребята хотят включить свой пакет уже в java9. Но пока добиться действительного прогресса в производительности “как в С” не получилось. Поэтому пока они представляют на суд разработчикам свой интерфейс и ждут feedback-ов.

Глеб Смирнов – HotSpot, что ты делаешь?! Ахаха, прекрати!

Андрей: Глеб продолжает в свой обычной манере уговаривать не бояться исходникОв OpenJDK и учиться пользоваться grep. Не знаю как на ком, а на мне его мантры работают. Так и чешутся ручонки поковыряться.

Саша Б: Глеб – очень веселый парень, и доклад его было тоже очень веселым. При этом отлично построен и познавателен. До меня он донес следующую идею: не боги горшки обжигают, и jvm пишут тоже люди. А значит, могут быть баги. А с ровными руками и утилитой grep их можно найти.

Олег Анастасьев – За гранью NoSQL: NewSQL на Cassandra

Саша С: Доклад от одного из ведущих разработчиков Одноклассников о том, как их команда разрабатывала NoSQL хранилище данных на основе Cassandra, чтобы отказаться от плохо выдерживающих большие нагрузки  серверов Microsoft SQL в пользу быстродействия и отказоустойчивости NoSQL, имея при этом функциональность ACID-транзакций и сложных индексов. Интересно, информативно, наверное, один из лучших докладов.

Барух Садогурский, Евгений Борисов и Николай Алименков – Зачем у Spring столько конфигураций?

Денис: В какой-то степени это было больше шоу, батл трех конфигураций Spring: xml, groovy и java. Однако, эти ребята со своей иронией подчеркнули плюсы и минусы каждой из конфигураций в той или иной ситуации. Мне очень нравится манера подачи данных спикеров, всем советую запомнить эти имена, у них на докладе вы точно не заснёте.

Андрей: интересный формат, практично. Ребята – молодцы.

Markus Eisele – JavaScript in the Еnterprise

Саша П.: Последние на дню доклады редко бывают хардкорными, так получилось и с этим. По сути, Маркус напомнил что с Java 8 вышел интерпретатор Javascript, построенный на JVM – Nashorn; про существование Project Avatar, который занимается выдачей различных JavaEE вещиц для такого серверного джаваскрипта (может быть, дело дойдет и до JPA). Но на вопрос, видел ли уже докладчик хоть что-то в продакшене с использованием Nashorn – было твердое утверждение “нет”.

Андрей: Довольно водянистый доклад который был больше построен на субъективных ощущениях Маркуса, чем на реальном использовании в проектах. В принципе, я разделяю многие высказанные докладчиком мысли что, однако, не добавляет докладу информативности.

Владимир Красильщик – Мониторинг Java-приложения с многопроцессной архитектурой

Андрей: довольно практичный взгляд Владимира о том, что делать если приложений много, а мониторить хочется всё в одном месте. Довольно интересно.

Николай Алименков – Прикладная многопоточность

Саша К.: Этот доклад понравился больше всех. Если кратко – то этот доклад не только о том, как команда Николая изобретала велосипед, но основной акцент уделялся именно тому, почему готовые велосипеды (в частности, классы из Guava) не подходили. Затронуты подходы (которых нет в  слайдах): ThreadFactoryBuilder, ConcurrentUtils, TimedSemaphore, TimeLimiter, RateLimiter, Stripe, Uninterruptibles, DISRUPTOR, ZooKeeper+Curator.

Андрей: У Николая подход чёткий и сугубо практичный: мне нужно чтобы работало, а теоретизировать можно сколько угодно. И за счёт этого шикарный практический доклад от которого, судя по Твиттеру, у Шипилёва волосы на голове шевелятся. Ну а ещё Коля – белорус. Ну как такой докладчик может не понравиться?

Алексей Рагозин – Структуры данных в Java, изобретаем заново

Саша С: Данный доклад был посвящен коллекциям в Java, а именно тому, чего в них не хватает, почему в некоторых случаях (например в высоконагруженных системах) не стоит использовать стандартную реализацию из java.util и какие структуры использовать для реализации коллекций для более быстрой работы. Доклад был оооочень насыщен техническими и алгоритмическими деталями – сложный для восприятия.

Михаил Дударев – USS «Enterprise» – сквозь черные дыры безопасности Java Web-контейнеров

Саша К.: Очень четко рассказано про самые популярные атаки (XSS, Encryption, Access Control, Injection, CSRF). Что нужно знать чтобы с ними бороться (для начала хотя бы знать что есть OWASP). Далее каждый из 5 типов атак был рассмотрен более подробнее. Был рекомендован конкретный шифр EDCH_RSA_WITH_AES_128_GM_SHA256, применение которого на сегодняшний момент является наименее уязвимым вместе с TLS1.1, TLS1.2. Далее последовали практические рекомендации что нужно и чего не нужно делать в джава контейнерах. В общем, доклад получился сверх-информативным и очень полезным. Спасибо Михаилу огромное.

Андрей: Доклад от Михаила на этом Joker был гораздо веселее и практичнее чем на прошлом Joker. Так держать! Придётся на следующей неделе ковырять конфиги tomcat на всех наших серваках.

Евгений Борисов – Spring Data? Да, та!

Денис: Как я уже отмечал, один из моих любимых докладчиков. Очень чётко, информативно и по делу. В течение часа показал, как с помощью Spring Data смигрироваться между 4-я различными базами данных.
Андрей: Женя – очень хорош. Очень практический доклад с прицелом на недалёкое будущее с NoSQL. Максимум информации, максимум жизни в слайдах, сессия с написанием кода прямо на лету. Так, как умеет Женя, не умеет наверное никто.
Саша Б: Евгений – великолепный докладчик, а его доклад – идеален. Мы все были впечатлены тем, как быстро он пишет код и как мало нужно менять в Spring Data, чтобы перейти с реляционной базы на Mongo или базу на графах. Евгений профессиональный java-тренер, и то, как он рассказывает – лучшая реклама его тренингов.