Being busy preparing for the infoshare conference 2014, we still couldn’t skip the biggest Polish Java conference: GeeCON 2014. So I travelled to Cracow and spent two out of the three conference days there. If I had to sum it up in one sentence, I’d say that– those were very exciting days, enriched by the names like Arun Gupta, Adam Bien or Josh Long, well known in the Java community. If you add Jurgen Appelo or Kevlin Henney you may be sure that the conference must have something precious to offer to its attendees.
I faced the regular challenge: which presentations to join when you have a choice out of 5 parallel tracks? I know I missed some good speeches and some of those I attended were not worth it, but still I have a handful of valuable remarks out of the inspiring presentations I was lucky to join. I do hope you’ll find this summary interesting and helpful for further investigation.
There were plenty of talks that addressed new Java 8. Java 8 is a buzz. No wonder – with additions of long awaited Lambda Expressions, Stream API and many more improvements it is the biggest JVM release since years. I intentionally skipped some of the talks about Java 8, as the topic was well covered with all kinds of top-like articles and videos on the web, but I could not skip Adam Bien’s JEE 7 + Java 8. This was a really valuable presentation about the simple enterprise architecture using Boundary Control Entity pattern with extensive usage of Lambda Expressions instead (or as a powerful addition) of JPQL. These are the main conclusions I’ve drawn from this speech:
- Use the simplest possible architecture and let it change or improve when needed
- Start using Java 8 in your enterprise projects as soon as possible
Another interesting presentation I visited was Arun Gupta’s 50 new features of JEE 7. JEE 7 is not as hot as Java 8 at the moment, and it’s been on the market since almost a year now. Anyway, it was still worth attending Arun’s speech. Apart from the best known features like Web Sockets, HTML5 support I heard about many enhancements that will make my life easier, in case I use JEE 7. Check out the presentation on Slideshare. You definitively need to check the samples on GitHub, if you are interested in more details. I must admit, that the newest JEE looks really nice and it could get my attention sooner or later as it is getting simpler and cleaner with every consecutive release. I expect to experiment much more with this technology in the upcoming months.
Pivotal had a strong representation in the person of Josh Long – the Spring developer advocate. He talked about Microservices and how to quickly create them with Spring and Spring Boot. Microservice is usually a small application running in its own process that exposes its logics through HTTP resource API (REST). If you want to learn more about this architectural style, check out this great article.
During the live hacking Josh faced some failures, but anyway the presentation was really nice as Josh knows how to turn a failure into a success. A very energetic and positive guy!
Spring Boot itself is a project that simplifies bootstrapping and running Spring applications. Building REST services is a matter of minutes, even if you need to add database support (Spring Data JPA), security (Basic Authentication, OAuth). Spring Boot is definitively something to give a try in the near future. The source code used in this talk can be found on GitHub. If you want to learn more about bootstrapping a web application with Spring Boot, check out my blog post.
The quality during GeeCON was the topic that appeared in many presentations. Two of them were really interesting to me. Mutation Analysis among them.
Mutation analysis is used to design new software tests and evaluate the quality of existing software tests. Mutation testing is about modifying a program’s source or byte code and running it in order to verify whether or not the tests fail where they are supposed to fail. The library that was presented is PIT . The PIT test seems to be fast and easy to use, but for me this is hard to assess because I didn’t compare it to any other library or tool. However, the presentation triggered me to give PIT a try and see if we can utilize this in our projects. Maybe it will also trigger you?
Tomasz Kaczanowski, an author of a recently published e-book “Bad Tests, Good Tests” (free to download) presented custom assertions in unit tests. In his short talk (so called “Lightning Talk”), he showed how assertions in unit tests were improving over time: from no unit tests at all, through Junit/TestNG assertions and Hamcrest to AssertJ (or alike):
— Rafal Borowiec (@kolorobot) May 15, 2014
He also showed some real-life examples of custom assertions in comparison with private methods approach
In case you are using AssertJ, as we are at Goyello, please have a look how to create custom assertions with this library.
During the first day of GeeCON there was an Agile track. I attended at least three Agile talks that day. But only one really impressed me. The one about retrospectives by Jakub Jurkiewicz. In his talk he reminded how important the retrospective is in Scrum. We tend to forget, that one of the core values of Agile is to inspect and adapt. The retrospective meeting allows teams to look at the process and improve it. One of the challenges for the teams or a Scrum Master is to make people engaged so that the meetings are useful and bring value. The author went through many practical examples how to keep people engaged during this meeting through different exercises. Some of the below items were thoroughly discussed and may also be of a great value for you
- The purpose of the meeting must be known and presented to the team
- Make people engaged. One of the possible ways is to change occasionally the way the meeting is handled
- The meeting is not to blame each other: one of the rules that should be agreed and known to the Team
- Grade what happened during the Sprint by using exercises like Histogram, Satisfaction Radar or simply Timeline
- Find improvements and make SMART goals out of them
- Close the meeting with feedback from others so there is knowledge how to improve the meeting in the future
The two days I spent in Kraków at GeeCON 2014 were useful thanks to meeting great specialists and hearing their valuable, experience-based stories. The conference challenged me to investigate some of the topics in more detail during the upcoming weeks. Two items will especially get my attention: Java 8 and JEE 7 and how to improve retrospectives.
Have you visited CeeCON 2014 as well and you want to share your experience and remarks? Or maybe you’d like to discuss some topics I mentioned in this post? Feel free to contact me.