Java Day 2017 2016

Java Day

Java Day is annual Java Technology Conference in Minsk, Belarus. 2017 will see the 6th anniversary JavaDay.
Opening the summer with JavaDay 2017, we claim for the biggest engineer event of the season. And if in the previous years we paid attention to the right way to code on Java, now we will talk about what to do if you are an engineer to your finger tips.
That's why we will talk not only about Java (but we'll pay a lot of attention to it), but also about practices, instruments, approaches and even philosophy. Spring Boot, JWT, containers monitoring, correct integration between microservices, Continuous Delivery - everything without what Java Enterprise does not exist in 2017. How to manage the modern stack and not to get mad - you'll learn during the day from the stars of the industry.
76% of the conference's success is communication. And there is no topic hotter that future of the language and platform development.
All above mentioned and more is waiting for you at JavaDay that will be held on June 3!



  • 9.00 – 10.00

    Registration, welcome coffee

  • 10.00 – 10.10

    Opening Session

  • 10.10 – 10.55

    Object Oriented JUnit Tests (ENG)

    Yegor Bugaenko

    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)

    Alexander 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


  • 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


  • 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


  • 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

    Teams Engineering Culture at Amazon (ENG)

    Vladimir Gorshunov

    - Teams model at Amazon — two pizza's team - SDM (Software Development Manager) & TPM (Technical Program Manager) roles
    - Model of artefacts, systems & servers held by a team
    - Cooperation between teams and scaling practices
    - Annual OP planning cycle & Agile work during the year

  • 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


  • 12.10 – 12.45

    To Go or Not To Go? (RUS)

    Stas Afanasiev

    Who & why needed to create a new programming language? What is Go special about, why is there so much hype and stuff? Answers to these (and more) questions I'll try to give in my talk.

  • 12.45 – 13.10

    Go On! (RUS)

    Vadim Petrov

    Main possibilities of a programming language is always better to learn on a certain example. I'll show how you can solve an ordinary task with a minimal amount of code using simple but powerful constructions and instruments of Go.

  • 13.10 – 13.45

    Instrumenting Go Applications (RUS)

    Mike Kabischev

    After the application launch, the most interesting begins at production. I'll tell you what instrumenting techniques we use in order to sleep tight at nights and be sure in correct work of applications.

  • 13.45 – 15.20


  • 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


  • 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)

    Aleksander 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.
    -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

    (talk) 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.


  • Space 1287


  •  2655
  •  444
  •  2024

Partners and participants

  •  2673
  •  676
  •  2694


  •  2695
  •  2124
  •  2136
  •  2670
  •  2679
  •  2680
  • Belarus JUG 1339
  • JEEConf 1295
  • 913
  • DOU 14
  • jobstutby 1826
  • Все курсы 2667
  • DevClub 1296
  • belbiz 1753
  • Vilnius JUG 1656
  • Java Rush 1677
  •  5
  • Java PL 1657
  •  426
  •  1684
  •  2697
  •  2696
  •  2699
  •  2700