JEEConf 2016

Впервые в жизни скатался на JEEConf. Как было? Если одним словом – круто. На самом деле.

Теперь подробнее.

Билеты мы купили одними из первых, хотя карты всех(!) белорусских банков отказывались работать с предлагаемой платежной системой. Но все-таки пяток писем и помощь организаторов – и билеты куплены. А тут и Белавиа порадовала скидками, так что билеты на самолет оказались дешевле билетов на на поезд. No way, нужно было ехать.

В пятницу утром Саша Соболь заехал за мной и мы почесали в аэропорт. В этот раз я узнал что в аэропорту Минск-2 есть бесплатная неохраняемая парковка. Стремновато, конечно, за машину, но, с другой стороны, кому нужны наши рыдванчики? 🙂

В аэропорту возникли проблемы с погранцами. Те собрались вчетвером и коллективно решали выпускать меня из Беларуси или не выпускать. Все-таки выпустили и я даже успел на самолет. Всего 50 минут полета и ты в другой стране. Киев встретил нас солнышком, вонючим автобусом Skybus и комиссией в 10% за снятие денег в банкомате. Полчаса на автобусе, 40 минут на метро, дорога через митингующую площадь Конституции и мы – на конференции.

Быстрая регистрация и два пропущенных доклада. Отстой, но будем досматривать потом. А потом начались доклады:

Day 1

Можно ли рассказать о юнит-тестах интересно? Абсолютно. Новые фишки-свежачки JUnit 5, мотивация принятия тех или иных определенных архитектурных решений. И JUnit становится больше, чем просто библиотекой для тестирования: метят в полноценную платформу. Просто посмотрите данный доклад, когда он появится в сети. Саша, конечно, сидел и бубнел на ухо, что Spock и вон то умеет, и вон то. Но даже он под конец затих и сказал что было зачетно.
TODO:
  1. Проверить как @Nested работает в совокупности с @RunWith
  2. Проверить как работают @Rule и что будет если таких правил несколько
  3. Посмотреть на MockitoJUnitRule
  4. Поиграться с @ExtendWith
  5. Посмотреть для чего используется @Tag
  6. Посмотреть как работает Dynamic Test Generation
  7. Посмотреть что такое Hamcrest
  8. Поиграться с junit-console, и узнать, есть ли что-то вроде “–countinious”
Небольшой lightning talk как раз по теме вверху. Отличное построение от простого к сложному. Мне понравилось.
TODO:
  1. Вспомнить принцип подстановки Барбары Лисков

Counter Wars, or 100500 ways to shoot yourself in the foot when implementing thread-safe counter – Alexey Fyodorov

Алексей немного поумерил обычный JUG.RUшный пыл в плане “железных счетчиков” и “интринзиков”. И получился очень годный доклад. Постепенно, от простого, к вещам посложнее. Но интересно и практично. А еще спасибо за честность. Никакие оптимизации на уровне JVM и пара наносекунд не помогут если код пишется как попало.
TODO:
  1. Поиграться с taskset под Linux
  2. Подписаться на mechanical-sympathy
  3. Посмотреть по L1/L2/L3 кэшам процессора
  4. Посмотреть алгоритмы когерентности кэшей
  5. Узнать, есть ли Azul JDK под Linux x64 и поиграться немножко
  6. Посмотреть доклад Volker Simonis по JVM Intrinsics
  7. Прочитать Brian Goetz “Java Concurrency in Practice” и, возможно, что-то посвежее
И снова классный доклад от Николая. Честно и открыто сказано что пути из JAR Hell не нашлось, по меньшей мере в JDK 9. Вполне детально и толково рассказано о том, как устроена система модулей и варианты ее использования. Существенная часть доклада уделена миграции.
TODO:
  1. Почитать “The Java Module System In Action” когда она выйдет. После такого достойного доклада сразу же захотелось.
  2. Поковырять JEP 260
  3. Поковырять JEP 261
  4. Поковырять JEP 223
  5. Понять, как же все-таки будет работать в этой модульной системе что-то вроде автосканирования классов Spring или маппинг Hibernate
Hibernate, how the magic is really done? – Mikalai Alimenkou and Igor Dmitriev
Этот доклад закрывал для меня первый день. И он оказался каким-то “капитанским” что ли, разве что рекламировал следующий доклад, связанный уже с оптимизацией. Какие-то банальные истины без особой новизны.
TODO:
  1. Посмотреть extra lazy в Hibernate
  2. Поковырять LazyCollectionOption
  3. Проверить, включен ли у нас Hibernate Dirty Checking Enhancer
  4. Пристальнее взглянуть на Lombok

Day 2

День после пьянки всегда начинается непросто, и тут было нелегко. Дмитрий на абсолютно бесцветных и местами корявых слайдах показывал не самые простые концепции вроде распределенных транзакций. Но получилось вполне зачетно. Мозг вынырнул из коматоза и ему стало интересно.
 
TODO:
  1. Посмотреть есть ли варианты двухфазного коммита в связке Cassandra + MySQL
  2. Поковырять методы XAResource
  3. Посмотреть алгоритмы распределенных транзакций
  4. Посмотреть как работают Atomikos/Bitronix с Tomcat
  5. Вспомнить про JDO
  6. Проверить слова Дмитрия насчет try/catch + rollback
  7. Вспомнить уровни изоляции, поддерживаемые в MySQL
  8. Посмотреть becomejavasenior.com
Для меня, в последнее время работающего со Спрингом на довольно простом уровне было любопытно посмотреть на некоторые новые плюшки из JavaEE. Некоторые паттерны были абсолютно тривиальны, а вот некоторые – выглядели довольно любопытно.
TODO:
  1. Почитать книгу “JavaEE Design Patterns”
  2. Посмотреть документацию по аннотации @StartUp
  3. Посмотреть документацию по аннотации @DependsOn
  4. Посмотреть документацию по аннотации @ConcurrencyManagement
  5. Посмотреть документацию по аннотации @LockType
  6. Посмотреть документацию по аннотации @Decorator
  7. Посмотреть документацию по аннотации @Delegate
Introduction to Akka Streams – Dmytro Mantula
Ооооочень основательный доклад. Первых 25 минут(засекал) докладчик постепенно подводил к Akka Streams, причем из таких дальних далей. что ого-го. Казалось что уже ничего нового и не будет. На Akka Streams осталось всего минут 20. Но эта основательность и логичное наращивание материала сработали просто отменно. Один из лучших докладов из тех, что я посетил
TODO:
  1. Вчитаться в Reactive Manifest
  2. Подумать над принципом Back Pressure
  3. Поковырять JEP-266
  4. Пройти “Principles of Reactive Programming” на Coursera
Hibernate performance tuning – Mikalai Alimenkou and Igor Dmitriev
Данный доклад был явно полезнее, чем предыдущий от той же пары докладчиков. Вынес для себя парочку тулов и механизмов в Hibernate, о которых раньше не слышал
TODO:
  1. Поковырять datasource-proxy
  2. Поковырять p6spy
  3. Посмотреть текущую реализацию пула соединений в проекте
  4. Почитать про @NamedEntityGraph
  5. Посмотреть @DynamicInsert/@DynamicUpdate
  6. “ORDER BY NULL” в MySQL – WTF?

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

TODO:
  1. Посмотреть на SockJS
The Dark Side of Micro-Services – Nicolas Fränkel
Отличный доклад от отличного дядьки. Очень прагматично, очень по-инженерному и очень по делу. Микросервисы предоставляют не только возможности, но и требования: к бизнесу, к команде. Трезвый взгляд на вещи среди кучи маркетинговой шелухи.
TODO:
  1. Поиграться с Hystrix
  2. Поиграться с Ribbon
  3. Поиграться с Eureka
  4. Подписаться на дядьку

Какие доклады стоят в очереди на просмотр:

  1. Reactive Thinking in Java – Yakov Fain
  2. Java EE 8: What Servlet 4.0 and HTTP/2 mean to you – Alex Theedom
  3. What Mr. Spock would possibly say about modern unit testing: pragmatic and emotional overview – Yaroslav Yermilov
  4. Everything I Ever Learned About JVM Performance Tuning at Twitter – Attila Szegedi
  5. HotSpot Intrinsics – Volker Simonis
  6. Hotspot & AOT – Dmitry Chuyko
  7. Hot and spicy Java with Lombok. Live! – Vladimir Tsukur
  8. How Immutability Helps in OOP – Yegor Bugayenko
  9. The Post-Apocalyptic sun.misc.Unsafe World – Christoph Engelbert
  10. The Road to Reactive with RxJava – Frank Lyaruu
  11. Spring Boot under the Cover– Nicolas Fränkel
  12. Types war: Weak vs Strong – Victor Polischuk
  13. ORM is an Offensive Anti-Pattern – Yegor Bugayenko

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

Соцпакет

Базовый соцпакет включал в себя: плотный пакетик, ручку, блокнотик и пачку ненужных бумажек. Дочки сразу оценили прочность пакетика по приезду и стали носить в нем свое девичье барахло. Ручка оказалась необычной. Внутри было что-то вроде небольшого лабиринта и пара шариков, которые можно было гонять на скучных докладах. Но таких докладов оказалось немного, зато позвякивание шариков стало раздражать, когда просто записываешь идеи. А вот блокнот был четким и, на первый взгляд, огромным. Да и на второй тоже. Зато в нем было все что надо. И программа, и карта помещений, и места для записей под каждый доклад. Программа содержала ссылку на страничку с описание доклада. Вообще удивительно удобно, но все равно блокнот просто огромен. На каждый доклад были отведены страничка описания и три странички под записи. Мне кажется, можно было бы сделать блокнот вдвое меньше урезав описание до половины странички, а место для заметок для полутора. Лично у меня записи по редкому докладу не умещались в полстраницы.

Питание

Кейтеринг был довольно хорош. Особенно кофе/чай часть, печеньки, уборка. Мусор и пустые тарелки исчезали очень быстро, даже быстрее чем иногда хотелось бы. Обед был построен в два потока. Кстати, обед был не очень разнообразным. На выбор предлагался пластиковый контейнер с рыбой, мясом и овощами и пластиковыми приборами. Плюс салатик. Непритязательно, но довольно вкусно. Плюс компот и лимонад у девушек за кофейными автоматами. Использование одноразовых контейнеров, в которые изначально была упакована еда, позволила нормально провести обед для всех участников за одну сессию вместо двух. По итогу мы, как удавы, валялись и балдели вторую половину обеда на терассе.

Whiskey Party

Никогда не любил подобные мероприятия. Как оказалось – зря. Спасибо огроменное днипрянам Ивану, Юле, Леше и Саше за компанию, а Антону из Киева – отдельный пламенный привет. Жутко приятно проводить время с такими замечательными человеками!

Место проведения

Довольно удобное местоположение. До Майдана минут 10 пешком, и в то же время как-то на отшибе, в парковой зоне. Охранники – относительно дружелюбные. Отличная веранда, где можно было поваляться на “груше” и посмотреть в небо. Разве что лестницы были какие-то неявные, эскалаторы были основным путем перемещения между этажами. Основная претензия к месту проведения оказалась в залах. Никакого уклона и докладчик на уровне зрителей приводили к тому, что нижняя часть слайдов не была видна из-за голов. Дополнительные мониторы, конечно спасали ситуацию, но все равно не то. Зато основные экраны были не на базе проекторов, а полноценными большущими ЖК. Цветопередача просто несравнима. Логистика передвижения между залами была простая и понятная. На каждом зале висел список докладов в этом треке и это было удобно. Разве что можно сделать шрифт побольше, для таких подслеповатых куриц, как я.

Формат

Сам формат в виде “пятница плюс суббота” лично мне, как иногороднему, очень нравится. Он позволяет без особых сомнений отставить второй выходной для прогулок по городу. А в Киеве есть где погулять! Город просто шикарен, особенно весной.

Вывод

Понравилось практически все. Доклады довольно практичные, хотя некоторые жалуются что техническую планку в этом году снизили. Есть что поковырять на ближайшие  В Минск привезена пачка технических идей по нашему продукту и неплохо расширен кругозор. А еще просто было очень приятно ездить с Сашей 🙂

Advertisements
This entry was posted in Conference, Education, Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s