[JAVA] JJUG CCC 2018 Fall Repo

Introduction

I participated in JJUG CCC 2018 Fall on Saturday, December 15, 2018.

JJUG CCC is Japan's largest Java community event, held twice a year in spring and autumn.

Good sessions on Java-related technologies and case studies It is also a place where Java engineers who are active in different fields can meet together.

This post is a report article of the day.

JJUG CCC 2018 Fall Summary

Spring Framework 5.1 Hands-on by ccc_m1 Pivotal Certified Instructor!

https://www.slideshare.net/masatoshitada7/pivotalspring-framework-51-spring-boot-21-jjugccc

A hands-on session for Spring beginners.

Using the time for two frames (1 hour and 45 minutes with a break on the way), This is a session where you can experience web application development in Spring.

The instructor gave a brief explanation of Spring for about 20 minutes. (I think it's easy to understand because the outline of Spring is explained using figures!)

Then hands-on starts.

Regarding hands-on, the Wi-Fi at the venue is weak (the number of simultaneous connections is 30 in a room with a capacity of 54 people!), There were many occasions when I was confused about building an environment. (In the configuration of the project published for hands-on, it is absolutely necessary to be connected to the Internet.) All the materials necessary for building the environment will be zipped so that they can be distributed on the day. I felt that preventive measures such as were necessary.

I think that the experience of creating something that actually works from scratch with your own hands is very valuable. (If you are inexperienced, you can repair the application in production, etc. I think that there are few opportunities to be aware of the whole by touching only a part. )

I hope it will be an opportunity for those who are about to start Spring.

ccc_a3 Make Spring Boot microservices easy with IBM Cloud and Kubernetes!

https://speakerdeck.com/taijihagino/java-spring-boot-with-kubernetes-on-ibm-cloud

As soon as you use IBM Cloud, you can use Kubernetes, I learned how easy it is to deploy microservices.

I saw a live coding demonstration, After getting an IBM Cloud account

--Create a Kubernetes cluster from your web dashboard

Kubernetes will be available soon after you do.

No credit card registration required to get an account There is less concern that you will be charged for the wrong operation.

Also, it seems that you are usually charged to build a container environment, It is said that if you have one cluster, you can use it for free, so It seems that you can easily build a Kubernetes environment.

ccc_g4 Now is the time to get started with Stream API

https://www.slideshare.net/skrb/stream-api-125945709

The Stream API that appeared in Java SE 8 I often hear that the introduction is still postponed at the actual development site. As if to represent it on the day It was so successful that I could stand in a large room that could accommodate 210 people.

In order to master the Stream API, ** get used to it rather than learn **.

As it applies to people who have a lot of experience _ I'm not calm unless I'm satisfied with the mechanism _ I think there is something like that.

However, it is necessary to actually move your hand because you are not sure.

As an analogy

_ Heat denaturation of protein 60 degrees _ _ Maillard reaction 155 degrees _

** → If you know this knowledge, can you make an omelet well? ** **

I was asked, but I am convinced.

Anything new is easy to feel difficult, but First of all, we will work on replacing the conventional description with a new writing style little by little. The more you get used to it, the more you will eventually be able to wear it.

ccc_c5 I tried to introduce Kotlin with an existing application

https://docs.google.com/presentation/d/1wTm_eSbsM2ihfz27QpSHzuRcCIhcRYKom-Vx_-FfUts/edit#slide=id.g4a45c17187_0_0

Java users try using Server Side kotlin, I learned about the good points and the points to be aware of.

The good thing is

--Kotlin's unique notation can reduce the amount of code that feels redundant --The integrated development environment allows you to convert existing Java source code to Kotlin source code. --Can be used with Java --Official support by Spring Framework

There seems to be something like that. It is very effective not only when creating a new application but also when replacing it with an existing application.

On the contrary, as a point to be careful

--When the Java side returns Null, it must be received by Nullable, or the Java side must also return Optional. ――I have the impression that the version upgrade is more intense than Java, so it is necessary to follow the new version firmly. --Since Kotlin runs on the JVM, which JDK to use is the subject of discussion as with Java.

There seems to be something like that.

Also, ** shortening redundant code does not necessarily mean that it is easy to understand **. It takes time for the new notation to be used by teams, so it is necessary to devise ways to gradually use it.

ccc_a6 An example of converting an EC site that has been expanding for 18 years on Oisix to a microservice with Spring Boot and k8s on Azure

https://www.slideshare.net/hiroakikobayashi1806/18ecspring-bootk8s-on-azure

I learned the methods that were actually adopted when the existing system was converted to microservices.

The application will continue to run 24 hours a day. In addition, applications that have evolved for more than a dozen years are huge and complex. Since it is not possible to make microservices at once, use the Strangler pattern to The method is to gradually replace specific parts of the function and gradually replace the legacy system.

In microservices, the information used by each service is The principle is to split the database so that it is only accessed by that service.

However, existing systems make heavy use of complex join syntax in SELECTs. In many cases, many domain updates are performed in one transaction.

If you decide that you can't split the DB right away, It is necessary to devise to divide the application first.

In addition, cloud service is Azure, application is Spring Boot, Container orchestration uses kubernetes,

--Microsoft, the developer of Azure, is in favor of Java --Spring also supports Azure --There is a Kubernetes environment management service called Azure Kubernetes Service (AKS)

With this background, it can be said to be one of the leading candidates.

ccc_a7 JVM and coding style that does not generate GC

https://www.slideshare.net/kenjikazumura/gcjvm

GC is annoying because it sometimes stops the application from running, Whether it's tuning or the same source code Depending on the type of JVM and the inline situation, GC may or may not occur, so Finding the optimal solution is difficult.

However, GC is evolving day by day. Implementations that are far from the original purpose are not desirable in order to suppress the occurrence of GC. First, try to write code that is easy to read.

Summary

Server-side development by Kotlin and the wave of microservices I felt that it was getting stronger and stronger.

With existing applications, not new development Incorporating Kotlin, making it a microservice, I was surprised at that.

However, I fully understood that there are merits.

I felt that it was one of the strong choices in terms of the life cycle of the application.

I wanted to actively incorporate it into our learning service.

Recommended Posts

JJUG CCC 2018 Fall Repo
JJUG CCC 2018 Spring Repo
JJUG CCC Fall 2018 document summary
JJUG CCC 2019 Fall slide list
JJUG CCC 2017 Fall Report Java
Participated in JJUG CCC 2019 FALL
JJUG CCC 2019 Fall materials summarized
I participated in JJUG CCC 2019 fall
I participated in JJUG CCC 2019 Fall.
[* Java *] I went to JJUG CCC 2017 Fall
JJUG CCC Spring 2018 memo
JJUG CCC 2018 Spring participation memo
I went to JJUG CCC 2019 Spring
I participated in JJUG CCC 2019 Spring
Summary of going to JJUG CCC 2019 Spring
[* Java *] I participated in JJUG CCC 2019 Spring