Joker 2015

16-17 октября 2015
Санкт-Петербург, Россия
Купить видео
В избранное

Андрей Дмитриев

Директор в JUG.RU Group

Иван Долгов

Account в Executive

Алексей Федоров

Технический евангелист в Одноклассники

Martin Thompson

CTO в LMAX

Олег Анастасьев

Архитектор big data в Одноклассники

О мероприятии

Все доклады конференции только про востребованные в Java технологии. Основные темы Joker: производительность, concurrency, тестирование, распределенные системы и высокие нагрузки в мире Java, а также будущее платформы.

"Изюминка" конференции — дискуссионные зоны, куда направляются после докладов все спикеры для живого общения. Учитывая, что почти все посетители Joker — Java-разработчики уровня Senior и Middle, можно с уверенностью утверждать, что там, в кулуарах, рождается будущее.

Для кого

  • Техническим директорам
  • Тим лидам
  • Инженерам
  • Программистам
  • Разработчикам
Поделиться

Расписание

Развернуть все
16 октября (пятница)
День 1
Показать
цену в
$
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Алексей Федоров

Технический евангелист в Одноклассники
и ещё 2
докладчика

Открытие конференции

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Martin Thompson

CTO в LMAX

Practicing at the Cutting Edge

They say that wisdom comes with age. Like many concepts in software, we have an imperfect proxy here. Age being the imperfect proxy for experience, discovery, and learning. When pushing a technology to the limits of performance one has a lot to learn and then unlearn over time as the language, runtime, operating systems, and hardware evolves.

Martin will reflect on his experience with Java since its inception. Starting with building financial GUIs to run on OS2 and NT, then the era of Servlets and J2EE, streaming data and media concurrently to thousands of devices, processing and indexing the largest catalogues, encryption on mobile phones, LMAX and the Disruptor, and the current generation of low-latency trading applications that must cope with millions of events per second with latency measured in the microseconds.

The talk will focus on the major steps in the evolution of Java and how it contrasts to C/C++ over time. We will also cover the challenges of pushing the limits of performance and how we need to collaborate with industry experts and organise our teams, which often stands at odds with the development culture in many industries and organisations.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Олег Анастасьев

Архитектор big data в Одноклассники

Распределенные системы в Одноклассниках

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

В этом докладе я расскажу об опыте построения отказоустойчивых распределенных систем на Java, основных ошибках и отказах, приемах их тестирования и диагностики. Также поговорим об авариях в распределенных системах и методах их предупреждения.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Евгений Борисов

Разработчик Java в Naya Technologies

Spring Puzzlers: тонкости и нюансы работы Spring

Вряд ли кто-то будет спорить с тем, что Spring является одним из самых распространённых фреймворков сегодня. Но на сколько хорошо вы с ним знакомы?

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

Этот доклад включает много очень заковыристых и забавных загадок по Spring, взятых из реальной жизни. Полученные знания помогут вам освоить тонкости Spring-a и защититься от всяких мистических багов. Этот доклад является продолжением к докладу «Спринг-Потрошитель», и в отличие от всех других puzzler-ов является очень практическим. Будет написано и разобрано много живого кода, взятого из реальных проектов.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Вязеленко

Sowatec AG в Java разработчик

Using Java Microbenchmark Harness (JMH) in a real world project

Many of you have already heard about JMH and probably even played with it to benchmark some code. But how would you use it in a real project? Which problems can it help to solve?

In this talk I would like to share the experience of using JMH library to drive performance optimizations and track performance regressions. You’ll learn how we use JMH, which issues and pitfalls were encountered and overcome along the way.

And since a measurement is not an end in itself, I will show you what can be a result of using the benchmark-driven approach to performance optimizations. The use-cases will demonstrate issues and solutions that helped bring the performance of our project to its next level.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Вячеслав Лапин

Разработчик в EPAM

Тюним производительность взаимодействия

Проблемы с производительностью традиционно принято решать тюнингом, но что обычно мы тюним? Схему и запросы к БД, бизнес-логику или (для SPA) код на клиенте, так? Однако мы обычно забываем о скорости механизма обмена сообщениями, который используется в наших приложениях – что, если «узкое место» находится именно там? И что, если код, который мы вынуждены писать, выглядит громоздко и даже уродливо, если его тяжело поддерживать, модифицируя и расширяя? На этом уровне мы обычно используем JMS, XML/SOAP и REST/JSON, но насколько они быстры, надёжны и оптимальны для используемых каналов связи? В этом докладе речь пойдёт о тюнинге систем обмена сообщениями – о современных компактных форматах, таких как MsgPack и CBOR, как альтернатив JSON`у и XML/SOAP`у, современных альтернативах JMS: Rabbit, Active, ZeroMQ и Apache Kafka. Мы увидим на реальном примере, как можно просто и удобно использовать их из нового Java 8 Stream API, что бы наш код сохранял лаконичность, простоту, модифицируемость и расширяемость.

Доклад ориентирован прежде всего на разработчиков проектов в сфере интеграции, однако будет интересен и всем остальным разработчикам систем класса Enterprise.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Алексей Шипилёв

Разработчик Java в Oracle

The Lord of the Strings: Two Scours

В этом докладе мы посмотрим на две потенциальные фичи в JDK 9, направленные на оптимизацию строк: Compact Strings, сжимающие строки с однобайтовыми символами, и Indify String Concat, использующий магию invokedynamic для конкатенации строк.

Кроме разбора, чем всё это нам грозит, в докладе будут освещены вопросы рациональности, подходов к реализации, практических граблей, с которыми сталкивается разработчик JDK, клюнувший на приманку «Да это ж опенсорс, патчес велком!».

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Алексей Зиновьев

Java-разработчик в Тамтэк

Как укротить буйного в отделении: смирительные Java-рубашки для MongoDB

Среди американских стартапов считается нормальным использовать в качестве базы данных для проекта NoSQL. Под это выделяются бюджеты, про это потом показывают слайды в презентациях.

Обычного Java — программиста ни жизнь, ни универ, ни типичный веб-проект не готовят к низкоуровневому взаимодействию через Java-драйверы. Через 15 минут кодинга он словно маленький ребенок начинает требовать Hibernate или его подобие для элементарного маппинга бесчисленных (на этапе построения прототипа, особенно) сущностей на гхм..таблицы в новой базе данных.

Однако, в высоконагруженных проектах свои требования, тут приходится считать каждый лишний байт метаинформации и рефлексия может стать расточительной тратой ресурсов JVM. Стандартный драйвер предлагает многое, ORM-like framework Morphia звучит как сладкий сон, но покрывает не все кейсы, Spring Data пытается сказать «тада, я тут, братцы», но растягивается на полу в луже конфигов, Kundera для всего подряд напоминает хорошую мину при плохой игре.. Вы можете погрязнуть во всем этом с головой и никогда не вынырнуть.

Свет в конце тоннеля есть, я дам вам железные аргументы для использования того или иного инструмента в ваши усталые от маппинга руки... А может быть мы вообще сможем заменить Mongo на что-то поинтереснее.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Александров

Старший эксперт-программист в T-Systems

Java(Script) on JVM

В данной сессии мы познакомимся с проектом Nashorn — легким движком JavaScript на JVM. Мы пройдем от простого к сложному: узнаем как и зачем могут сосуществовать Java и JavaScript. Посмотрим, как вызывать JavaScript из Java и наоборот. Научимся писать скрипты на JS под ОС и исполнять на JVM. И далее на конкретных примерах перейдем к сложному — ознакомимся с проектом avatar.js для написания веб приложений в стиле node.js. Посмотрим как avatar.js интегрируется с серверами Java-приложений. На примере рассмотрим как уживается стек технологий Java + Hibernate + JPA + Nashorn + Avatar.js + AngularJS.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Nicolas Fränkel

Software Architect в Hybris software
и ещё 1
докладчик

Improve Testing Code Quality with Mutation Testing

Unit testing ensures your production code is relevant. But what does ensure your testing code is relevant? Come discover mutation testing and make sure your never forget another assert again.

In the realm of testing, the code coverage metrics is the most often talked about. However, it doesn't mean that the test has been useful or even that an assert has been coded. Mutation testing is a strategy to make sure that the test code is relevant.

In this talk, I will explain how Code Coverage is computed and what its inherent flaw is. Afterwards, I will describe how Mutation Testing work and how it helps pointing out code that is tested but leave out corner cases. I will also demo PIT, a Java production-grade framework that enables Mutation Testing on a simple code base. If time allows, a demo will also show how PIT can be integrated with Sonar.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Tomasz Nurkiewicz

Senior Software Engineer в Allegro

CompletableFuture in Java 8, asynchronous processing done right

Future objects prior to Java 8 were surprisingly limited. CompletableFuture introduced in JDK 8 is way more powerful. You can finally register asynchronous callbacks, transform, chain and combine futures on the fly. This shift from blocking Future allows writing more responsive, scalable and robust applications without too much hustle.

Deep foundation in functional programming together with shiny lambda expressions make CompletableFuture a modern and comprehensive tool for every multi-threaded application. New futures can also act as so-called promises, thus providing simple synchronization mechanism. Java finally got an asynchronous processing abstraction that can compete with Scala.

During this coding-only session we will explore various examples of CompletableFuture and familiarize ourselves with some patterns and practices. However we WON’T use the word «monad» at all.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Алексей Рагозин

Lead Solution Architect в Технологический Центр Дойче Банка

Что должен знать о сетях каждый Java-разработчик?

Протокол TCP существует уже более 30 лет. Сетевые коммуникации являются неотъемлемой частью практически любого современного приложения. Тем не менее, сетевое программирование продолжает оставаться зоной проблем и опасностей. Но несмотря на простой интерфейс, программирование «сокетов» далеко не простая задача.

Тема этого доклада «правильное» использование TCP/IP и Java Socket API.

Знаете ли вы, что происходит при закрытии сокета? Как опции TCP влияют на производительность? Какие исключения кидает сокет в Java? - Не уверены, тогда этот доклад для вас.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Александр Маторин

Руководитель разработки в Сбербанк-Технологии

Рефакторинг в функциональном стиле

В Java 8 появилась поддержка лямбд и Stream API. Их использование позволяет сделать код намного симпатичнее. Но для многих Stream API и понятие функциональное программирование в Java эквивалентны. О стримах мы говорить не будем.

Мы обсудим интересные приемы функционального программирования, посмотрим на возможности по частичному применению функций, каррированию, методы для композиций функций из пакета java.util.function.

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Антон Кекс

Сооснователь в Codeborne

Цифровая подпись в Java, Россия vs Эстония

Занимаясь интернет-банками для российского рынка, я узнал, что добавление такой элементарной для Эстонии функции как цифровая подпись оказалось совсем не тривиальным делом в России. Тем не менее, за этим будущее, и большинство разработчиков должны знать, как это работает.

В Эстонии это будущее уже наступило — Эстония была первая страна в мире, 100% легализовавшая цифровую подпись, выдавшей 15 лет назад ничего не подозревающим гражданам ключи (расскажу, почему по два) в виде обязательного документа — государственной ID-карты, и одна из немногих стран, где цифровые подписи сегодня почти полностью вытеснили бумажные.

В России, наоборот, организации должны сами брать на себя создание всей инфраструктуры, чтобы дать возможность пользователям давать цифровые подписи. Также есть требования к алгоритмам, сильно отличающимся от мировых стандартов. Для этого появилось множество коммерческих компаний, которые пытаются продавать свои решения для этой задачи, не совместимые с друг другом и плохо совместимые с Java. Однако, на данный момент в распоряжении Java разработчика уже есть достаточно open-source средств, чтобы справиться с этой задачей самостоятельно — необходимо только понимать, что и как взаимосвязано. Именно обо всём этом я и собираюсь рассказать.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Martin Thompson

CTO в LMAX

Adventures with concurrent programming in Java: A quest for predictable latency

Concurrent programming with locks is hard. Concurrent programming without using locks can be really hard. Concurrent programming with relaxed memory ordering and predictable latency semantics is said to be only for wizards. This focuses on a decade long quest to discover algorithms that provide very high throughput while keeping latency low and predictable.

We will cover some fundamental theory of concurrency and then compare various approaches to the same problem so that we can measure the impact on throughput and latency. We'll also show how some of these algorithm implementations get way more interesting given the new features in Java 8.

This talk is aimed at programmers interested in advanced concurrency who want to develop algorithms with very predictable response times at all levels of throughput which push our modern CPUs to the limit.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Виктор Полищук

Java технический лидер в Infopulse

Legacy: как победить в гонке

У вас древний проект? Все зовут его «Legacy», а вас «неудачник»? Возможно они даже смеются над вами.

Давайте взглянем на ситуацию с другого ракурса. Все (все, Карл!) успешные проекты рано или поздно превращаются в Legacy-проекты.

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

Суть в том, что Legacy — это не грустно/уныло/немодно, это просто/клево/весело, если с умом подойти к задаче!

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Андрей Солнцев

Разработчик в Codeborne
и ещё 1
докладчик

Ping-pong programming

«Пинг-понг программирование» — это симбиоз двух известных практик экстремального программирования – парного программирования, и разработки через тестирование (TDD).

Суть в том, что тесты пишутся до кода. Один программист пишет красный тест. Второй программист пишет код, который сделает тест зелёным. Он же пишет следующий красный тест и снова передаёт клавиатуру первому. И так далее по кругу.

На выходе получаемый весёлый процесс, дикую вовлечённость всех участников, быстрое обучение новичков и конечно, на 100% протестированный код. Не верите — приходите и убедитесь.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Tomasz Nurkiewicz

Senior Software Engineer в Allegro

Hystrix – managing failures in distributed systems

We live in a distributed world where integration between components is ubiquitous. Assuming all parts of the system are working at the same time and are not overloaded is too optimistic. Our application must be prepared for failures, must tolerate, handle and test exceptional conditions.

Hystrix is a library that provides complete set of tools for managing failures. It monitors potentially problematic sections of code (like network calls), measures execution time and error rate. It can pro-actively turn off malfunctioning features for a period of time and keep system resources bound. Built-in real-time monitoring is also really useful to quickly troubleshoot anomalies and bottlenecks.

During this session we will focus on live demos and code samples, no slides are planned.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Josh Long

‎Spring Developer Advocate в Pivotal

The Macro of Microservices

Microservices are an enabler for continuous delivery. It's easy to forget that when the hype seems to be around the (many) technical merits of microservices in their own right. In this talk we'll look at how agile methodologies and a strong feedback loop (as enabled by cloud computing and continuous integration), along with microservices, have a combinatorial effect when taken together. The goal, after all, is to reduce the time between having an idea (a theory!) and validating that theory by getting the code in the hands of customers.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
17 октября (суббота)
День 2
Показать
цену в
$

Venkat Subramaniam

Founder в Agile Developer

Get Past the Syntax, the Real Scare's in the Semantics

We often hear programmers complain about the syntax, especially when learning a new language. It turns out that, while syntax plays a role in our ability to learn and use languages, the real force we have to deal with is in the semantics. Once we get past the syntax, the semantics is where the real power and the real scare is. Curious to learn more?

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Андрей Паньгин

Ведущий разработчик в Mail.Ru Group

Нужен ли нам Unsafe в Java?

«Безопасность превыше всего!» Такой лозунг хорошо подошёл бы Java-платформе, ведь виртуальная машина обеспечивает верификацию байткода, автоматическое управление памятью и ловит типичные ошибки вроде нулевых указателей и выхода за пределы массива. Java API тщательно разрабатывается с учётом требований безопасности и контроля доступа.

Но последнее время всё больше и больше разработчиков хотят обойти ограничения и выбраться из «песочницы» JVM. Едва ли кто из опытных программистов никогда не слышал про sun.misc.Unsafe. Хотя этот класс всегда был частью внутреннего API, не предназначенного для публичного использования, за последние годы его популярность настолько выросла, что сейчас наличие Unsafe стало практически показателем «крутости» open source проектов. Не исключение и Одноклассники: программное обеспечение социальной сети во многом основывается на приватных API.

Что же такого привлекательного в Unsafe? Почему программисты фанатично внедряют его в свои проекты, пренебрегая всеми предупреждениями? Отчего поднялась волна паники от слухов, что в Java 9, наконец-таки, Unsafe прикроют? Есть ли безопасные альтернативы приватным классам, или без Unsafe нет в жизни счастья?

Ответам на эти вопросам и посвящён доклад. Мы разберём типичные сценарии использования Unsafe, узнаем, какими ещё приватными API не брезгуют в Одноклассниках, и, главное, ради чего. Хорошенько подкрепим теорию бенчмарками и примерами из реальных проектов.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Кирилл Толкачёв

Главный разработчик в Альфа-Лаборатория
и ещё 1
докладчик

WILD microSERVICES

Микросервисы, как ни крути, — наше всё. Можно сопротивляться SOAP 2.0 сколь угодно долго, но рано или поздно или придут за тобой и обратят в свою веру, или ты придёшь к ним сам и попросишь крестить себя огнём и мечом. Как и у любого архитектурного решения у микросервисов есть свои плюсы и свои минусы.

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

В докладе будут освещены следующие темы:

  • микросервис — что за зверь и как его приручить;
  • на чём писать API и нелёгкий выбор между REST и RPC;
  • как скрестить Spring и Thrift и вывести новую породу;
  • а так же в программе «способы селективного отбора технологий»:
    • какой стек выбрать для разработки, что выбрали мы и почему;
    • как микросервисам найти друг друга;
    • предохраняй и сохраняй свои микросервисы;
    • что делать с длинными цепочками вызовов и как не умереть от большого количества их взаимодействий.
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Volker Simonis

OpenJDK contributor в SAP

How «final» is final?

Although the concept of «final» fields is quite simple, its implementation in Java can lead to surprising effects. First of all, the Java VM and Java language have a slightly different understanding of "final". Second (and unfortunately) declaring a field as final doesn't mean that the VM or the programmer can really rely on its immutability.

This talk will show the different aspects of "finality" and their impact on the Java compiler and the Java VM. It will demonstrate how finality can be circumvented in Java with the help of reflection or sun.misc.Unsafe. And finally it will discuss the impacts this has on the optimizations done by the JIT compiler and various workarounds like the non-standard @Stable annotation or -XX:TrustFinalNonStaticFields.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Александр Белокрылов

Менеджер продукта в Oracle
и ещё 1
докладчик

Вещи в Интернете: затаскиваем облачные сервисы на «безмозглые железяки»

Вопрос миф или реальность Интернет Вещей больше не стоит. Мир все масштабнее наполняется устройствами мониторинга, интеллектуального освещения, умными системами безопасности и телематическим оборудованием. Но остается масса вопросов. Как обеспечить надежное взаимодействие между устройствами и облачным сервисом? Как ограничить доступ приложений разных вендоров к ресурсам устройств? Как разработчику решения для Интернета Вещей не попасть в рабство к производителю «железа»? Наш доклад ответит на эти и другие вопросы. На примере кросс-платформенного приложения мы продемонстрируем возможности платформы Java ME Embedded в связке с Oracle IoT Cloud Service.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Иван Крылов

Senior Software Engineer в Azul Systems

Чего ждать от Java 9?

До выхода Feature Complete версии OpenJDK 9 EA осталось 2 месяца. Самое время посмотреть, что ждет нас в следующей версии Java. Для начала рассмотрим процесс того, как идеи становятся JEP-ами, а потом становятся частью стандарта языка Java. Потом посмотрим на список из четрех десятков фич, разберем наименее тривиальные из них на примерах: jshell, jmh, unified jvm logging, JDK Internal API encapsulation и, конечно же, модулярность.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Ted Neward

Director в Smartsheet

Busy Developer’s Guide to Amazon Web Services

Amazon has made waves for several years now as one of the leaders in cloud hosting and services. It’s an overwhelming offering, and in this session, we’ll tease apart some of the cloud terminology, some of the various ways to think about cloud, and how they map to the Amazon suite of cloud services and offerings. Our goal: to make sure you know what Amazon has to offer to developers, how to get started with AWS, and when AWS might not be the best option compared to a few of the other players.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Владимир Красильщик

Архитектор big data в Luxoft

Vert.x: руководство по эксплуатации

Вы устали от олдскульного подхода к построению корпоративного ПО на базе серверов приложений? Замучились решать проблемы с синхронизацией, гонками потоков и производительностью? Может хочется снова почувствовать себя девелопером, изучить и применить технологию одного из самых активно разрабатываемых на github проектов и испытать радость от вновь заработавших нейронов Вашего мозга?

Тогда приходите послушать про Vert.x — современный полиглотный toolkit для создания реактивных приложений для веб и не только. Vert.x — это своеобразная методология и инструментарий к построению масштабируемого и высокопроизводительного сервер-сайда, которые однако не накладывают никаких ограничений на фреймворки и инструменты, с которыми Вам и так привычно работать.

Если Вам знакомы или близки по духу такие термины как Node.js, Actors Model, Erlang, Akka и микросервисы Вам однозначно будет интересно познакомиться с Vert.x поближе, чтобы писать очень быстрый код под JVM на любом языке, будь то Java, Javascript, Scala, Groovy или Ruby.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Дмитрий Жемеров

Тим лид в JetBrains

Опыт использования Kotlin в JetBrains

Kotlin — новый язык программирования для JVM, Android и JavaScript, который с 2010 года разрабатывается компанией JetBrains. Язык ориентирован на написание элегантного, компактного и безопасного кода, свободно интегрируется с существующим Java-кодом и имеет мощную поддержку в IDE. В последнее время язык все более активно используется как внутри JetBrains, так и внешними разработчиками.

В докладе я расскажу об использовании Kotlin в двух наших проектах — в системе поддержки продаж и менеджмента лицензий (это Web-приложение, целиком сделанное на Kotlin) и в IntelliJ IDEA (здесь мы интегрируем Kotlin в большой существующий проект). Я покажу различные фреймворки, которые появились у нас в процессе разработки и которые могут пригодиться и вам. Я также расскажу о том, какие плюсы мы получили от внедрения Kotlin и с какими трудностями встретились.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Николай Алименков

Java-техлид в EPAM

Современный взгляд на реализацию классических дизайн-паттернов в Java

Практически каждый разработчик слышал о шаблонах проектирования. Они были придуманы давным давно с целью решения определенного набора часто встречающихся проблем в системах совершенно разной сложности и размера. Но бытует мнение, что многие из шаблонов проектирования просто прикрывали собой несовершенство объектно-ориентированных языков программирования того времени. Java как один из них был существенно переработан и улучшен в последние 10 лет. Так может стоит пересмотреть использование классических шаблонов проектирования в современном мире Java разработки? Некоторые из них теперь легко заменяются на идиомы самого языка, другие покрываются существующими библиотеками и фреймворками. Я уверен, что вы можете назвать некоторые шаблоны проектирования, которые давно уже мертвы и даже превратились в анти-шаблоны. Давайте проведем эту веселую и полезную ретроспективу вместе!

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Venkat Subramaniam

Founder в Agile Developer

Reactive Programming: creating highly responsive applications

Reactive Programming in gaining a lot of attention recently, but what's is it? It is a culmination of a lot of good ideas developed over the years, but brought together by the forces of recent developments, both in terms of software and hardware (multicores, mobile devices). Developing a fast application is easy, but developing applications that are responsive and at the same time gracefully handle failure, to be resilient is not. In this presentation we will quickly go over what reactive programming is and what a reactive application is, but then dive into code level details of how to actually create them.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Тагир Валеев

Разрабатчик в Институт систем информатики СО РАН

Что же мы измеряем?

Stream API, которое появилось в Java 8, — это модно, красиво, функционально и современно. Но насколько оно проигрывает в скорости традиционным циклам? Какова цена удобства?

В этом докладе мы начнём маленькое путешествие с маленького и наивного бенчмарка, придуманного для оценки скорости Stream API, затем проберёмся через дебри JIT-компиляции в HotSpot JVM, заглянем в омут инлайнинга и посмотрим, какова его глубина и можно ли в нём утонуть.

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

Полученные знания помогут вам избегать некоторых ошибок при написании бенчмарков, использовать и интерпретировать диагностические опции HotSpot JVM и лучше понять, как исполняется ваш код.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Nicolas Fränkel

Software Architect в Hybris software

Spring Boot loves DevOps

Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes. However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I'll demo some of those, that will make DevOps more than a little happy.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Владимир Ситников

Разработчик в Netcracker OSS

Разбор сложных случаев OutOfMemoryError

Все говорят, что при проблемах с памятью нужно открыть Eclipse MemoryAnalyzer и немного покрутить. Да, часто это срабатывает, но бывает, что даже опытного инженера задача ставит в тупик.

В докладе мы рассмотрим примеры коварных OOM, и научимся анализировать причины их возникновения. На живых мертвецах дампах памяти увидим почему может не очищаться WeakHashMap, куда утекает native память, сколько finalizer'ов поместится на кончике иглы.

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

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Josh Long

‎Spring Developer Advocate в Pivotal

The Bootiful Application

Alright, so maybe «bootiful» won't ever work, but I tried, and it was worth it too because you're reading this. Spring Boot, the new convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring's flexibility with conventional, common sense defaults to make application development not just fly, but pleasant! Spring Boot aims to make address the common functional and non-functional requirements that gate quickly moving to production.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Андрей Солнцев

Разработчик в Codeborne

50 оттенков Play!

Несколько лет назад в болоте Java появился революционный Play! фреймворк. Он якобы вобрал простоту RubyOnRails и скорость и compile safety Java. Он сулил избавление от перезагрузок. Он обещал дикую скалируемость забесплатно. Одни предвкушали новую жизнь Java без ынтерпрайза, другие скептически похмыкивали: «Play – это несерьёзно. Разве что для игрушек.»

Кто же оказался прав?

Мы использовали Play! фреймворк для построения вполне серьёзных приложений. Теперь, спустя 4 года, я готов поделиться болью и радостью от Play и сделать выводы, стоит ли верить громким обещаниям, и как заглянуть под капот при выборе следующего фреймворка.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Никита Липский

Инициатор и руководитель проекта в Excelsior

Клиентская Java вне браузера: делаем нативные клиенты на Java

Современный интернет сервис – это не только Web клиент. Сегодня принято писать нативные клиенты как минимум для всех основных мобильных платфторм (iOS, Android) и эта мода также распространяется на десктопные платформы. Это означает что разработчик вынужден либо писать под каждую платформу код с нуля, либо использовать какое-то кроссплатформенное решение. Напомню, что Java изначально проектировалась как кроссплатформенное клиентское решение. Медленно двигаясь в сторону iOS/Android, Java предлагает богатый выбор UI фреймворков от Swing до JavaFX для всех основных десктопных платформ прямо сейчас. Но чтобы называться нативным клиентом, приложение, написанное на Java, должно вести себя привычным для конечного пользователя способом: оно должно устанавливаться на компьютер привычно и не иметь внешних зависимостей, выглядеть хорошо, стартовать и работать быстро и без задержек, не потреблять много памяти. В этом докладе мы рассмотрим, как эти аспекты адресуются стандартной реализацией Java, альтернативной реализацией Java – Excelsior JET, оптимизированной специально для десктопных платформ, открытыми реализациями, такими как OpenJDK и другими инструментами, такими как Install4J. В результате, слушатель получит общее представление о UI фреймворках для Java, существующих на сегодняшний день, включая JavaFX, а также как подготовить свое клиентское Java приложение для дальнейшего распространения так, чтобы конечный пользователь в итоге воспринимал бы его как родное (нативное) приложение данной целевой платформы.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Ted Neward

Director в Smartsheet

Iconoclasm

History is littered with the stories of iconoclasts – people who truly stood out as pioneers, lateral thinkers, and in some cases, outright heroes–and their successes and failures. From the baseball management vision of Branch Hickey to the glassblowing vision of Dale Chihuly to the engineering design vision of Steve Jobs, iconoclasts have changed our world in subtle and profound ways, sometimes loudly, sometimes quietly.

For an industry that seems so ripe and so rife with «special personalities», it would seem that programming is tied up deeply with iconoclasm. But what defines the iconoclast, what demarcates the «true» iconoclast from the mere pretender, and how can we use the characteristics of the iconoclast to change our own immediate surroundings for the better?

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Билеты

Показать
цену в
$
Видеозапись
Доступ к записям всех докладов
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Организатор

JUG.ru
https://jugru.org

Организационный комитет: JUG.ru, info@jugru.org, 78126802918

Похожие мероприятия

20 апреля 2015
Докладов 28
Просмотров 0
Dev, Development, Java, ПО, Программирование, Разработка, Софт, Язык программирования
19-20 октября 2017
Докладов 90
Просмотров 44
Dev, Development, ПО, Программирование, Разработка, Софт, Технологии
19-20 мая 2017
Докладов 29
Просмотров 6
.net, Dev, Development, DotNet, QA, ПО, Программирование, Разработка, Софт
показать еще