Java Day 20162015
#javadayby

Java Day

Java Day is annual Java Technology Conference in Minsk, Belarus. 2016 will see the 5th anniversary JavaDay.

The focus of the conference is on popular directions and trends in the world of Java development: Java EE, microservices, a fresh look on OOP in Java, Gradle, Spring JTA, JVM tuning, RxJava on Android, Kotlin in examples, innovations in Androud N.

Also some talks offer alternative focus on Java development and among other topics will cover functional programming in Java, Frege functional language, using of microservices with Scala, Spring Boot and Spring Cloud.

Everyone is welcome to discuss the latest trends afterwards.

Speakers

Program

  • 9.00 – 10.00

    Registration, welcome coffee

  • 10.00 – 10.10

    Opening Session

  • 10.10 – 11.00

    Going through fire and water with microservices

    Aleksander Tarasov, Kirill Tolkachev

    Микросервисы это не нечто новое, уникальное, неизведанное. Идеи, заложенные в их концепцию, основные постулаты уже звучали раньше. Так почему же мы всё чаще слышим о микросервисах? Почему многие верят, что это серебряная пуля, которая спасёт нас от кровавого энтерпрайза? Даст нам глоток свежего альпийского воздуха после многолетнего вдыхания городской пыли? Мы попытаемся разобраться, что такое микросервисы для нас и чем они отличаются от того, что было раньше? Разберем основные понятия и покажем как теперь разрабатывать enterprise-приложения с микросервисным подходом на нашем любимом языке программирования Java? И нужна ли Java вообще? С какими проблемами придётся столкнуться, как их можно решить и какие инструменты в этом помогут?

  • 11.00 – 11.50

    Java vs. OOP

    Yegor Bugaenko

    Object-oriented programming was invented as a solution for the unmanageable complexity of a procedural one. Objects were supposed to replace procedures and global variables. Is it really happening in modern Java projects? Are we really thinking in objects, methods and classes? Or we still are in that complex and messy procedural world. Unfortunately, we are still there. Can that be fixed? Can we make our code really object-oriented and clean, while staying with Java? I believe we can.

  • 11.50 – 12.10

    Coffee

  • 12.10 – 13.00

    Declarative JDBC

    Nikita Volkov

    JDBC is notorious for its unwieldiness. The API is highly intertwined and often inconsistent. This is the reason why most applications based on JDBC are prone to end up being a code spaghetti and a torture to maintain. In this talk I'm going to present djdbc, a library providing the solutions to problems of JDBC using just a few simple abstractions nudging the user towards the declarative style of programming. No frills involved: no metaprogramming, reflection or magical annotations. Just a few simple abstractions applying the best practices of isolation of concerns to make your persistence layer comprehendable and maintainable, without losing the ability to apply the extended features of JDBC. This library is in major part inspired by my other project hasql, which is a PostgreSQL integration library for the Haskell functional programming language and backs the popular Postgrest project. Having such a background djdbc incorporates some great practices from the functional programming world, while still targeting the Java audience, as well as any other JVM language.

  • 13.00 – 13.50

    Spring JTA: Principles of work with transactions

    Dmytro Sokolov

    This talk covers the internal structure of Spring JTA, possible configuration with Spring AOP, all features of the framework for handling transactions, the types of sources of transactions and how to work with them, distributed transactions with multiple data sources, integration with Spring JdbcTemplate, Hibernate, JMS.

  • 13.50 – 15.00

    Lunch

  • 15.00 – 15.50

    Java EE revisits design patterns

    Alex Theedom

    Design patterns are not only cool but represent the collective wisdom of many developers. Since the publication of Design Patterns: Elements of Reusable Object-Oriented Software by GoF many new concepts have extended the coverage of these design patterns, and now Java EE provides out-of-the box implementations of many of the most well known patterns. This talk will show how, by taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. Among the design patterns discuss there will be Singleton, Façade, Observer, Factory, Dependency Injection, Decorator and more.

  • 15.50 – 16.40

    From CRUD to Hypermedia APIs with Spring

    Vladimir Tsukur

    Typical way to design and expose HTTP API today is a so called CRUD approach: come up with URL templates for resources, map create-read-update-delete operations to HTTP verbs and serialize domain model as JSON. Nice and easy, isn't it? This talk will present limitations of CRUD style APIs and how to address them using "real" REST and hypermedia, HAL and ALPS. We'll take a look how a set of libraries and tools from Spring helps building these APIs. All the talking is not worth it without an example, so Spring-based application will be our guide. Amazon, PayPal, GitHub and other API providers have already started embracing hypermedia and linking by enhancing their HTTP interfaces. Are you next?

  • 16.40 – 17.30

    JVM Tuning in a rush!

    Tomasz Borek

    When performance hits rock-bottom everybody (and their dog) is called upon and all of a sudden developers should have been responsible for last half a year or so and code with performance in mind (and deadlines, but that of course goes unsaid). So, here I'm talking about what can a dev do to meet those unreasonable demands and what might he do anticipating them. Strictly JVM, mostly Sun Hotspot impl, but number of points can be used to other JVMs as well.With more time, I usually show also tools available both on OS and JDK side.

  • 17.30 – 17.50

    Coffee

  • 17.50 – 18.40

    MVC 1.0 - by Example

    Ivar Grimstad

    Model-view-controller, or MVC for short, is a common pattern in web frameworks. MVC frameworks can be categorized as action-based or component-based. In a component-based framework, the HTTP requests are grouped and typically handled by framework components with little or no interaction with application code. In an action-based framework, on the other hand, the HTTP requests are routed to controllers and turned into actions by application code. The Java EE platform does not currently have support for action based MVC, but this is about to change. MVC 1.0, as specified by JSR 371, is targeted for the upcoming Java EE 8 release. This session provides an introduction to the action-based MVC 1.0 API and will include lots of code samples and tips to where to get started using this awesome technology.

  • 18.40 – 19.30

    Streams, flows and storms - how not to drown with your data?

    Maciek Próchniak

    The landscape of stream processing frameworks gets more and more complicated.Some time ago Apache Storm was the only boy/girl in town. After that Spark Streaming emerged, then Apache Flink - European answer to Storm & Spark. What's more - just few days ago Apache Dataflow entered incubation stage - aiming at API unification and backed by Google. I'm not even mentioning Samza, Flume nor projects that failed to gain traction.In the talk I'd like to clear things a bit to help listeners (and myself) decide - which of above fit particular needs and which ones are stable enough to be used without fear.

  • 19.30

    Closing Ceremony

  • 9.00 – 10.00

    Registration, welcome coffee

  • 10.00 – 10.10

    Opening Session

  • 10.10 – 11.00

    Goingo through fire and water with microservices

    Alexander Tarasov

    Микросервисы это не нечто новое, уникальное, неизведанное. Идеи, заложенные в их концепцию, основные постулаты уже звучали раньше. Так почему же мы всё чаще слышим о микросервисах? Почему многие верят, что это серебряная пуля, которая спасёт нас от кровавого энтерпрайза? Даст нам глоток свежего альпийского воздуха после многолетнего вдыхания городской пыли? Мы попытаемся разобраться, что такое микросервисы для нас и чем они отличаются от того, что было раньше? Разберем основные понятия и покажем как теперь разрабатывать enterprise-приложения с микросервисным подходом на нашем любимом языке программирования Java? И нужна ли Java вообще? С какими проблемами придётся столкнуться, как их можно решить и какие инструменты в этом помогут? The talk is delivered by Alexander Tarasov and Kirill Tolkachev.

  • 11.00 – 11.50

    Java vs. OOP

    Yegor Bugaenko

    Object-oriented programming was invented as a solution for the unmanageable complexity of a procedural one. Objects were supposed to replace procedures and global variables. Is it really happening in modern Java projects? Are we really thinking in objects, methods and classes? Or we still are in that complex and messy procedural world. Unfortunately, we are still there. Can that be fixed? Can we make our code really object-oriented and clean, while staying with Java? I believe we can.

  • 11.50 – 12.10

    Coffee

  • 12.10 – 13.00

    Kotlin in examples

    Boris Vanin

    Язык Java развивается и улучшается, но возможно не так быстро как нам хотелось бы. Какие-то ошибки проектирования языка уже совершены и внедрять совеременные подходы всё сложнее. Но писать простой, понятный, лаконичный код всё равно хочется. На этой почве в последнее время стало появляться множество языков, в том числе для JVM. Совем недавно компания JetBrains выпустила релиз языка Kotlin. Kotlin -- “прагматичный” язык, созданый, чтобы работать вместе с Java и даже возможно где-то её заменить. В ходе доклада мы посмотрим на этот язык, его особенности, попробуем применить его к задачам реальной жизни.

  • 13.00 – 13.50

    The Mayans Lost Guide To RxJava on Android

    Fernando Cejas

    Reactive Programming is becoming more popular nowadays. In this little journey, we are gonna see what RxJava offers to us in terms of android development. We will also learn how we can apply it to real life mobile projects by showing different examples and use cases.

  • 13.50 – 15.00

    Lunch

  • 15.00 – 15.50

    Java EE revisits design patterns

    Alex Theedom

    Design patterns are not only cool but represent the collective wisdom of many developers. Since the publication of Design Patterns: Elements of Reusable Object-Oriented Software by GoF many new concepts have extended the coverage of these design patterns, and now Java EE provides out-of-the box implementations of many of the most well known patterns. This talk will show how, by taking advantage of Java EE features such as CDI and the smart use of annotations, traditional design patterns can be implemented in a much cleaner and quicker way. Among the design patterns discuss there will be Singleton, Façade, Observer, Factory, Dependency Injection, Decorator and more.

  • 15.50 – 16.40

    Modern microservices with Scala, Spring Boot and Spring Cloud

    Jesper de Jong

    Microservices is a style of software architecture in which complex applications are composed of small, independent services that communicate with each other over the network and that can be deployed and maintained independently. The microservices architecture style is becoming more and more popular since companies such as Netflix, Amazon and eBay have shown how this is useful for building and operating large, cloud-scale software systems. Spring Boot and Spring Cloud are part of the well-known Spring Framework which help you design, build and run systems composed out of microservices. Scala is one of the most popular programming languages for the JVM besides Java which brings a lot of powerful features that make you a more productive and better overall software developer. In this talk we will take a look at using the Scala programming language with Spring Boot and Spring Cloud to build microservices. The following questions will be answered: - What are microservices and what are the advantages and disadvantages of a microservices architecture? - What are Spring Boot and Spring Cloud and how are these useful for building microservices? - What are the advantages of using Scala instead of Java and how do you practically use Scala for building microservices with Spring Boot and Spring Cloud?

  • 16.40 – 17.30

    Jack & Jill & Java 8

    Aleksander Piotrowski

    With the N preview Google introduced Java 8 for Android platform. Java8 *Language Features* that is. Sadly/luckly it's not full Java 8 support and only some cool features are now available such as: static and default interface methods, a few extra annotations and ... everybody's favourite Lambda expression! But that's all boring. So in the second part of my presentation we'll learn about Jack & JIll, and Jayce and .jack file format too! I will try to explain who the hell they are and what is the difference between the old and the new Android toolchain.

  • 17.30 – 17.50

    Coffee

  • 17.50 – 18.40

    Frege for astronauts

    Dmitry Bushenko

    На практике мы, программисты, занимаемся тем, что создаем продукт, коммитим фичи, фиксим баги. Не часто нам дают воспользоваться какой-нибудь передовой технологией или новым типом архитектуры, ведь это не всегда практично. В своем докладе я предлагаю выйти за рамки сиюминутной необходимости сдать проект к дедлайну. Давайте посмотрим, как мог бы выглядеть чистый, красивый, модульный, понятный и легко поддерживаемый код, если бы над нами не стояли с кнутом менеджеры и заказчики. Я расскажу о чисто функциональном языке Frege, который компилируется в java-код. Я надеюсь показать, как сильно ошибается Егор Бугаенко, когда использует тип Opt для защиты от NPE, а также когда утверждает, будто классы-декораторы создают по-настоящему модульный код. Минимальная единица кода -- функция, а не класс! Я покажу, что такое по-настоящему мощная система типов, и что она даёт программисту. Мы рассмотрим некоторые высокоуровневые абстракции, очень простые и практичные, но мало понятные тем, кто пишет на объектно-ориентированных языках. Одним словом, пойдем прямым путём в космос, от чего нас давно предостерегает программист-философ Джоэл Спольски

  • 18.40 – 19.30

    "Java Wars VIII: The Function Awakens"

    Grzegorz Piwowarek

    Presentation is about introducing java developers into the paradigm of functional programming utilizing Java 8 features. Presentation covers: lambda expressions, an user-friendly definition of a monad and multiple ways of making java developer's life easier using those concepts.

  • 19.30

    Closing Ceremony

Organizers

  • Space

Partners

  • Ciklum
  • Oracle
  • Expert Soft

Partners and participants

  • Cybercom Group
  • TouK
  • ISsoft

Infopartners

  • dev.by
  • Belarus JUG
  • Java Professionals
  • ZIELONA GÓRA JUG
  • JUG Poznan
  • Java PL
  • Vilnius JUG
  • JDay Lviv
  • DOU
  • DevClub
  • JEEConf
  • Айти-Событие
  • startuplife
  • 42.TUT.BY
  • Apptractor
  • la.by
  • JavaDay Lviv
  • JUG.ua
  • Imaguru
  • Numeralis
  • GDG Minsk
  • Bezkassira
  • IT Event Minsk
  • CyberBionics
  • H-Files
  • JUG.EKB
  • Toruń JUG
  • Latvian Developers Network
  • razbor-poletov.com
  • GDG DevFest Ukraine
  • DroidCon.pl
  • Java Rush