Home » Author Archives: Remon Sinnema

Author Archives: Remon Sinnema

Functional FizzBuzz Kata in Java

A while ago I solved the FizzBuzz kata using Java 8 streams and lambdas. While the end result was functional, the intermediate steps were not. Surely I can do better. As always, let’s start with a failing test: package remonsinnema.blog.fizzbuzz; + + import static org.junit.Assert.assertEquals; + + import org.junit.Test; + + + public class WhenFunctionallyFuzzingAndBuzzing { + + private final FizzBuzzer ...

Read More »

How to manage dependencies in a Gradle multi-project build

I’ve been a fan of the Gradle build tool from quite early on. Its potential was clear even before the 1.0 version, when changes were regularly breaking. Today, upgrading rarely cause surprises. The tool has become mature and performs well. Gradle includes a powerful dependency management system that can work with Maven and Ivy repositories as well as local file system dependencies. During my work with Gradle I’ve come ...

Read More »

FizzBuzz Kata With Java Streams

After only a couple of weeks of Judo practice, my son got bored. He complained that he wasn’t learning anything, because he kept doing the same thing over and over. It’s not just young children that confuse learning and doing new things. For instance, how many software developers go through the trouble of deliberate practice by performing katas or attending dojos? It may seem ...

Read More »

First Steps Into the World of Go

Since developers should learn a new programming language every year, I felt it was about time for me to dive into something new and I decided on Go. The good news is that Go has awesome documentation to get you started. More good news is that Go has a mature ecosystem of tools, including support for getting dependencies, formatting, and testing. There ...

Read More »

How To Develop Software Using Only SaaS

The world is fast moving to Software-as-a-Service (SaaS) and we developers are busy learning how to build SaaS applications. We can now finally do that using nothing but SaaS applications ourselves. The Developer’s Toolbox As developers, we don’t ask for much.     An Integrated Development Environment (IDE) lets us do our main task: writing code. A Source Code Management ...

Read More »

How To Process Java Annotations

One of the cool new features of Java 8 is the support for lambda expressions. Lambda expressions lean heavily on the FunctionalInterface annotation. In this post, we’ll look at annotations and how to process them so you can implement your own cool features. Annotations Annotations were added in Java 5. The Java language comes with some predefined annotations, but you ...

Read More »

REST Messages And Data Transfer Objects

In Patterns of Enterprise Application Architecture, Martin Fowler defines a Data Transfer Object (DTO) as: An object that carries data between processes in order to reduce the number of method calls. Note that a Data Transfer Object is not the same as a Data Access Object (DAO), although they have some similarities. A Data Access Object is used to hide ...

Read More »

DevOps Is The New Agile

In The Structure of Scientific Revolutions, Thomas Kuhn argues that science is not a steady accumulation of facts and theories, but rather an sequence of stable periods, interrupted by revolutions. During such revolutions, the dominant paradigm breaks down under the accumulated weight of anomalies it can’t explain until a new paradigm emerges that can. We’ve seen similar paradigm shifts in ...

Read More »

Three Ways To Become a Better Software Professional

The other day InfoQ posted an article on software craftsmanship. In my view, software craftsmanship is no more or less than being a good professional. Here are three main ways to become one. 1. See the Big Picture Let’s start with why. Software rules the world and thus we rule the world. And we all know that with great power ...

Read More »

The State of REST

The S in REST stands for State. Unfortunately, state is an overloaded word. In this post I’ll discuss the two different kinds of state that apply to REST APIs. Applications The first type of state is application state, as in Hypermedia As The Engine Of Application State (HATEOAS), the distinguishing feature of the REST architectural style. We must first understand ...

Read More »

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Spring Interview QnA
  • Multithreading & Concurrency QnA
  • JPA Minibook
  • JVM Troubleshooting Guide
  • Advanced Java
  • Java Interview QnA
  • Java Design Patterns