Java Day 2016
#javadayby

Java Day

Пятая ежегодная конференция, посвященная разработке на Java.

В первом потоке конференции слушатели cмогут ознакомиться с самыми горячими трендами в Java разработке: критический взгляд на ООП в Java, работа с системой сборки проектов Gradle, тонкости настройки JVM, обзор паттернов Java EE, а также доклад о принципах и внутреннем устройстве транзакций в Java.

Кроме традиционных тем по Java и Java в web, на конференции будет представлен поток докладов, посвященный Scala, Kotlin и Android: слушатели познакомятся с преимуществами программирования на Scala, а также узнают, как на Scala можно использовать Java технологии на примере Spring Boot. Отдельные доклады будут посвящены применению RxJava в разработке для Android, а также обзору нововведений в Android N. Слушателям также будет представлен доклад о практическом применении языка Kotlin на реальных примерах.Также участники конференции познакомятся с концепциями функционального программирования в Java 8 и обзором функционального языка Frege.

Выступают

Программа

  • 9.00 – 10.00

    Registration, welcome coffee

  • 10.00 – 10.10

    Opening Session

  • 10.10 – 11.00

    Микросервисы - Огонь, Вода и Медные трубы

    Aleksander Tarasov, Kirill Tolkachev

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

  • 11.00 – 11.50

    Java vs. OOP

    Yegor Bugayenko

    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

    Никита Волков

    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

    Dmytro Sokolov

    Доклад познакомит слушателей с внутренним устройством Spring JTA, возможными конфигурациями с Spring AOP, ясно изложит все возможности фреймворка по работе с транзакциями. Также участники конференции ознакомятся с видами источников транзакций и как с ними работать. Дмитрий обратит особое внимание на распределенные транзакции с несколькими источниками данных, а также интеграцию с 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?

    Maciej Prochniak

    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

    Микросервисы - Огонь, Вода и Медные трубы

    Alexander Tarasov

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

  • 11.00 – 11.50

    Java vs. OOP

    Yegor Bugayenko

    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 в примерах

    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

    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.

  • 16.40 – 17.30

    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?

  • 17.30 – 17.50

    Coffee

  • 17.50 – 18.40

    Frege для астронавтов

    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

Программа

Registration, welcome coffee

Organizers

  • Space

Date

Выступают