Home » Author Archives: Remon Sinnema

Author Archives: Remon Sinnema

First Steps Into the World of Go

software-development-2-logo

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

software-development-2-logo

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

java-logo

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

software-development-2-logo

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

devops-logo

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

career-logo

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

software-development-2-logo

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 »

How To Return Error Details From REST APIs

json-logo

The HTTP protocol uses status codes to return error information. This facility, while extremely useful, is too limited for many use cases. So how do we return more detailed information? There are basically two approaches we can take:         Use a dedicated media type that contains the error details Include the error details in the used media ...

Read More »

How To Control Access To REST APIs

software-development-2-logo

Exposing your data or application through a REST API is a wonderful way to reach a wide audience. The downside of a wide audience, however, is that it’s not just the good guys who come looking.         Securing REST APIs Security consists of three factors: Confidentiality Integrity Availability In terms of Microsoft’s STRIDE approach, the security compromises ...

Read More »

Behavior-Driven RESTful APIs

software-development-2-logo

In the RESTBucks example, the authors present a useful state diagram that describes the actions a client can perform against the service. Where does such an application state diagram come from? Well, it’s derived from the requirements, of course. Since I like to specify requirements using examples, let’s see how we can derive an application state diagram from BDD-style requirements. ...

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:

  • Advanced Java Guide
  • Java Design Patterns
  • JMeter Tutorial
  • Java 8 Features Tutorial
  • JUnit Tutorial
  • JSF Programming Cookbook
  • Java Concurrency Essentials