Java Day 2017 2016
#javadayby

Java Day

Шестая ежегодная конференция, посвященная разработке на Java.
Открывая лето с JavaDay 2017, мы сразу претендуем на главное инженерное событие сезона. И если в предыдущие годы мы уделяли внимание тому, как программисту писать на Java правильно, то сейчас мы поговорим о том, что делать, если ты у мамы инженер.
Поэтому, отдавая должное популярности Java, говорить будем не только о ней, но и о практиках, инструментах, подходах и даже философии. Spring Boot, JWT, мониторинг контейнеров, правильная интеграция между микросервисами, Continuous Delivery - все то, без чего Java Enterprise не существует в 2017 году. Как управляться с современным стеком и не сойти с ума, в течение дня на собственных примерах расскажут звёзды индустрии.
76% успеха конференции – это общение. И нет темы горячее, чем будущее развитие языка и платформы.
Всё это и даже больше вас ждёт на конференции JavaDay, которая состоится уже 3 июня!

Выступают

Программа

  • 9.00 – 10.00

    Registration, welcome coffee

  • 10.00 – 10.10

    Opening

  • 10.10 – 10.55

    Object Oriented JUnit Tests (ENG)

    Yegor Bugayenko

    JUnit was designed with very little thinking about objects and their design. JUnit is very procedural. Can we fix that and make our tests object-oriented too? Yes, we can.

  • 11.05 – 11.50

    Service Discovery: More Than It Seems (RUS)

    Aleksandr Tarasov

    There is a problem of finding the best instance of a service in distributed systems with dynamic configuration. Nowadays, there are many products for the configuration storage and service discovery. It should be mentioned at least Netflix Eureka, Consul, etc or good old Zookeeper. These products can keep and give configuration, manage service instances lifecycle and some of them even can be as dynamic DNS service. But main question is not about what instance may be called at the certain time. It is about what instance is better for call? This means that smart load balancing top on service discovery is required. Spring Cloud project allows to integrate these products to your project and provides powerful solutions for typical problems, that make cloud native services developing easier. This talk will review the internal structure of SpringCloud implementation of Client-Side Service Discovery and Client Load Balancing patterns. It also will include specific details of concrete implementations with examples from official libraries and the author’s own library.

  • 11.50 – 12.10

    Coffee

  • 12.10 – 12.55

    JUnit 5: Overview & New Features (RUS)

    Vlad Gaevsky

    Not so much time is left till the new major version of one of the most popular unit testing frameworks will be released – JUnit 5 is coming!
    In this talk I will show you which new features this version will introduce, which possibilities we need to know to be ready for release, what kind of vision JUnit 5 assumes – not very deep in the code, just as overview what can be done with the power of All-new JUnit. And of course, we will try to answer the main question – “To migrate or not to migrate from JUnit 4?”

  • 13.00 – 13.45

    Advanced Search For Your Legacy Application (ENG)

    David Pilato

    How do you mix SQL and NoSQL worlds without starting a messy revolution? This live coding talk will show you how to add Elasticsearch to your legacy application without changing all your current development habits. Your application will have suddenly have advanced search features, all without the need to write complex SQL code! David will start from a RestX, Hibernate and Postgresql/MySQL based application and will add a complete integration of Elasticsearch, all live from the stage during his presentation.

  • 13.45 – 15.20

    Lunch

  • 15.20 – 16.05

    Session Is Dead - Long Live JWT (ENG)

    Hrvoje Crnjak

    In Software Development things are continuously changing. Solutions that were completely fine just a moment ago, can prove to be a source of great pain now. And one of those solutions that worked perfectly just last week, but isn't that perfect, now is Session. We all now that HTTP is a Stateless protocol, so we (as smart as we are) figured out a way to bypass this limitation by introduction Session cookies. But from Session-related attacks on the client side, to problems with maintaining Session integrity on the server side. We found out that hacking protocols (HTTP) has it's price. So the smart IT community decided it's time to take a different approach. Enter JWT (JSON Web Token) - a Stateless solution to a Stateful problem. JavaScript community is already using JWT quite extensively, and now it's time for us to do the same (we don't want to be worse than them, do we?). In this lecture we'll take a look at what JWT actually is and how it can be used in our projects. We'll also try to summarize what problems JWT solves (and what problems it creates) with regards to the old Session approach.

  • 16.10 – 16.55

    Curse of Spring Boot Test (RUS)

    Kirill Tolkachev

    Сегодня только очень ленивый разработчик не пробовал Spring Boot. Всем хочется быть на коне и во всеоружии. Мы писали Spring приложения, теперь Spring Boot. Мы тестировали Spring приложения, а теперь тестируем… ну, вы поняли. Чем проще инструмент, тем больше магии он делает «под капотом». Spring Boot не исключение. Более того, мало кто задумывается, что происходит при использовании привычных всем инструментов, описанных в документации Spring Test. Попробуем разобраться в деталях того, какие грабли нам аккуратно подложили тут и там. Для этого протестируем «типичное» приложение и зададим себе вопросы, которые должен задавать любой разработчик, использующий Spring и яростно внедряющий Spring Boot на своих проектах.

  • 16.55 – 17.15

    Coffee

  • 17.15 – 18.00

    Evolution of Future in Java&Scala (ENG)

    Andrey Ershov

    With number of requests growing, asynchronous style of writing applications is gaining popularity. We will go though the evolution steps of future in Java. Java 5 had Future, but it was blocking and to address it's limitations 3rd party libraries, such as Guava, provided their own Future abstractions. Except being not standardised, they had several drawback, that we will take a look at. Everything changed with Java 8 release which brought to us CompletableFuture. Does it need any improvements? In end of this talk, we will take a look at Scala Future and see how it compares to CompletableFuture. Also we will shed some light on other methods for managing asynchronous computations.

  • 18.10 – 19.00

    Intro to AI Buzzwords (RUS)

    Arseny Kravchenko

    AI, Big Data, Machine Learning - what's the difference?
    Statistical Learning 101
    Machine Learning tasks
    ML before DL: applications and challenges
    Why DL is a gamechanger?
    DL applications: useful and funny
    Weakness of DL
    How do I start?

  • 11.05 – 11.50

    Monitor Your Containers (ENG)

    Philipp Krenn

    Containers are quickly gaining popularity as the preferred tool for deploying and running services. While being easier to deploy and isolate, containerized applications are creating new challenges for the logging and monitoring systems. This talk looks into the details about how the Elastic Stack, and in particular Beats — lightweight shippers — are gathering data from containers. The session shows our way to: * fetch logs from containers * collect different measurements from cgroups * collect metrics using the Docker API * enhance the data with the metadata of the containers * monitor the network traffic exchanged between containers * collect metrics from the underlying host We conclude the talk with a live demo of all the components in action.

  • 11.50 – 12.10

    Coffee

  • 12.10 – 12.45

    To Go or Not To Go? (RUS)

    Stas Afanasiev

    Кому и зачем понадобилось создавать новый язык программирования? В чем особенности Go, почему вокруг столько хайпа и вообще. Ответ на эти (и не только) вопросы постараемся раскрыть в докладе.

  • 12.45 – 13.10

    Go On! (RUS)

    Vadim Petrov

    Основные возможности языка программирования всегда лучше постигать на конкретном примере. Покажу, как минимальным количеством кода решить типовую задачу, используя простые, но мощные конструкции и инструменты языка Go.

  • 13.10 – 13.45

    Instrumenting Go Applications (RUS)

    Mike Kabischev

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

  • 13.45 – 15.20

    Lunch

  • 15.20 – 16.05

    Kotlin as a Language for Frontend Development (RUS)

    Zalim Bashorov

    Kotlin is a young programming language. Originally it was designed to target the JVM, but now it targets the JavaScript too (and even Native). During this talk, we will discuss about some aspects of Kotlin JS, like: * interop with JavaScript; * things which work differently compared to JVM; * sharing code between targets; * and more.

  • 16.10 – 16.55

    Kotlin Coroutines: Asynchronous Programming Made Simple (RUS)

    Ruslan Ibragimov

    Today more and more applications are written with asynchronous code. Languages have first class support for asynchronous programming: go with goroutines, C# and Python with async/await, and at the end JavaScript with callbacks, promises and async/await. There is already a lot of code in JVM ecosystem written for asynchronous applications: Netty, RxJava, Spring Reactor, etc. Even Java 8 provides CompletableFuture, and Java 9 Reactive Streams Interface. So clearly, asynchronous programming is our present and future.
    But writing code with asynchronous primitives in Java adds complexity to our systems. Kotlin now offers means to tame this complexity by making coroutines first-class citizens in the language through the single primitive: suspending functions. We will see what are Coroutines in Kotlin, their practical use-cases and interoperability with Java.

  • 16.55 – 17.15

    Coffee

  • 17.15 – 18.00

    From Zero to Hero: Firing Up a Holistic Continuous Delivery/DevOps Pipeline (ENG)

    Michael Hüttermann

    In this interactive session, we’ll set up a holistic Continuous Delivery pipeline with the use of DevOps enabler tools, based on Cloud, microservices and container technologies. Involved tools in this live demo include: Jenkins 2, SonarQube, Docker, Artifactory, Bintray, and the ELK stack.

  • 12.10 – 14.10

    Workshop 1: Introduction to Spring Cloud (RUS)

    Aleksandr Tarasov, Kirill Tolkachev

    Введение в Spring Cloud
    В рамках воркшопа мы покажем как создавать сервисы с помощью фреймворков Spring Boot и Spring Cloud, а именно:
    - дадим шаблоны для быстрого старта
    - покажем как собрать, упаковать и запустить сервисы
    - разберём и реализуем несколько типовых шаблонов: service discovery, load balancing, circuit breaker и т.д.
    - научим собирать все логи воедино
    Уровень подготовки участника:
    - хорошее знание Java
    - ноутбук с Mac OS X или Linux-based операционной системой
    - установленный Docker и git-клиент
    - аккаунт на github
    - наличие интернета, чтобы cкачать репозиторий с github-а и Docker-образы (ссылки будут даны ближе к ивенту)
    Чтобы зарегистрироваться на воркшоп, заполните форму

  • 15.00 – 17.00

    Workshop 2: Hands On Elastic Stack 5.3 (ENG)

    David Pilato & Philipp Krenn

    The Elastic Stack is built of:
    *Beats to collect data and transport them to elasticsearch or logstash
    *Logstash to collect data (from beats or other sources), transform them on the fly and transport them to other tools, like elasticsearch.
    *Elasticsearch to store, index, search and analyze the collected data
    *Kibana to display all that
    Let's start to discover the Elastic Stack. In this session, you will install and setup Elasticsearch, Beats, Logstash and Kibana. Then, you will learn how to collect different metrics with metricbeat; create an ingest pipeline in elasticsearch and parse a CSV file with filebeat and enrich it in elasticsearch with the ingest pipeline; parse a CSV file with filebeat and send its raw content to logstash which will enrich it and send it to elasticsearch; search and compute data in elasticsearch; and finally visualize all the collected data with Kibana.
    Requirements:
    -Laptop with Java 8 (JDK 1.8.0_20 minimum)
    -Basic familiarity with a terminal
    To register for the workshop, please, fill in the form

  • 17.15 – 18.00

    (доклад) Changing Wheels on Moving Car: From Monolith to Microservices by Using API's (ENG)

    Vladimir Dejanovic

    Join me in this talk to hear about my personal experience of transferring monolith business critical application to microservice architecture, with zero downtime, thanks to using API's. You will hear war stories, what went as planed, what was wrong. Hopefully you will enjoy them, have a laugh and learn new things. You will leave this talk with more knowledge and experience about this subject, and how to solve this problems if you encounter them in your day to day work.

Organizers

  • Space

Партнеры конференции

Партнеры и участники

Инфопартнеры

  • Belarus JUG
  • JEEConf
  • dev.by
  • DOU
  • jobstutby
  • Все курсы
  • DevClub
  • belbiz
  • Vilnius JUG
  • ZIELONA GÓRA JUG
  • Java Rush
  • Java PL