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