Lots of interesting writeups on Java 9 this week.
Here we go…
1. Spring and Java
>> Introducing Spring Cloud Function [spring.io]
Spring has always adopted POJO-based approaches, now it’s time to focus on functional approaches. Spring Cloud is getting enhanced with a possibility of defining beans from function implementations – everything well integrated with Reactor.
>> How much projections can help? [blog.arnoldgalovics.com]
Using projection instead of entity-based fetching can significantly improve overall performance – which is not a surprise.
>> From Microservices to Service Blocks using Spring Cloud Function and AWS Lambda [kennybastani.com]
A practical look at Service Blocks using Spring Cloud Function and AWS Lambda. If you’re interested in seeing Spring Cloud Function in action – definitely have a look.
>> Scala vs Kotlin: Multiple Inheritance and the Diamond problem [blog.frankel.ch]
Scala and Kotlin have their own solutions to problems caused by multiple inheritance – worth having a look.
>> Mocking HTTP, Mockito style [specto.io]
When working with microservices, we often need to mock/stub HTTP endpoints – Hoverfly is one of the better tools for doing that.
>> Support for Java 9 in IntelliJ IDEA 2017.2 [jetbrains.com]
Java 9 will be (hopefully) released soon and IDE providers are coming up with new features for their tools – this time, we can have a look at new support in Intellij IDEA.
>> 5 Things You Need to Know When Using Hibernate with Mysql [thoughts-on-java.org]
Hibernate already supports most of the MySql’s features, but there are still a few things to remember that are not entirely abstracted away.
Also worth reading:
>> Assuring Architectural Rules with ArchUnit [hascode.com]
>> Basic Spring web application in Java, Kotlin and Scala – comparison [rskupnik.github.io]
>> Java Command-Line Interfaces (Part 6): JOpt Simple [marxsoftware.blogspot.com]
>> 5 Step Recipe: Everything You Need to Know for Staying Up-to-Date in Java [blog.takipi.com]
>> Java Command-Line Interfaces (Part 7): JCommander [marxsoftware.blogspot.com]
>> Java Annotated Monthly – July 2017 [jetbrains.com]
>> Pragmatic Functional Programming [cleancoder.com]
Webinars and presentations:
>> Git Questions – How and When do I Merge or Rebase? [jetbrains.com]
>> Java Performance Engineer’s Survival Guide [infoq.com]
Time to upgrade:
>> Spring Tool Suite 3.9.0 released [spring.io]
>> Spring for Apache Hadoop 2.5.0 GA released [spring.io]
>> Bean Validation 2.0 CR 2 released [beanvalidation.org]
>> Spring Cloud Finchley M1 is available. [spring.io]
>> Hibernate Validator 6.0.0.CR3 is out with Bean Validation 2.0.0.CR3 support [in.relation.to]
>> Mockito 2.8.53 is out [github.com]
2. Technical
>> Project Package Organization [dolszewski.com]
Package structure in Java projects is often neglected or applied mindlessly – here we can see a comparison of the two most popular approaches: package-by-layer vs. package-by-feature.
>> Converting Queries to Commands [michaelfeathers.silvrback.com]
Raising the abstraction level and passing commands to objects can result in better decoupling – and Java 8 Lambda Expressions make it much easier and concise.
Also worth reading:
>> Fine tuning embedded jetty inside of spark framework. [blog.codecentric.de]
>> Gatling Load Testing Part 2 – Extending Gatling [blog.codecentric.de]
3. Musings
>> How to Write Test Cases [daedtech.com]
There is no universal answer to this problem – pick one of the scientific methods, follow it, and use the best tools possible.
>> Why Expert Developers Still Make Mistakes [daedtech.com]
We should make mistakes – those expose lacks in our knowledge that we can eventually fix.
Also worth reading:
>> The Paradox of Apple Watch [bitquabit.com]
>> Is There a Single Method for the Internet of Things? [queue.acm.org]
>> Eric Han, VP at Portworx, Speaks to InfoQ on the State of the Hyperconverged Container Market [infoq.com]
>> Why I Hate Slack and You Should Too [bitquabit.com]
>> On crossing the bridge into unit testing land [ontestautomation.com]
>> Maintenance hell? No, thanks! [blog.codecentric.de]
4. Comics
And my favorite Dilberts of the week: