Devoxx UA 2020 (talks)

I watched the conference onlie and picked the following talks: The Effective Developer – Work Smarter, Not Harder by Sven Peters Polyglot, Fault-Tolerant Event-Driven Programming with Kafka, Kubernetes and gRPC by Natan Silnitsky Reacting to an Event-Driven World by Grace Jansen Cause of Death: Hibernate by Thorben Janssen NoSQL Endgame by Otavio Santana, Thodoris Bais, […]

Share Button

Devoxx UA

Most conferences have been cancelled, since it is difficult to hold a conference these days. The idea to move the conference online has been obviously around, but it was rejected by most organizers, because it it not the same and the all important chance to meet other people is just not the same.  So the […]

Share Button

Object Creation: Builder vs. Constructor vs. Setter

When we create new objects, we are basically confronted with the need to provide at least one construction pattern. Of course depending on the language we have more or less three ways to go that are commonly available. Traditionally in OO it was mandatory to write setters and getters. In C++ or Java they really […]

Share Button

MapStruct

In the Java sphere we often develop the same data class several times. Each layer has its own variant and they are named almost the same, with some prefix or suffix or just the package name to distinguish. The set of attributes is the same (or almost the same), they have setters and getters. Or […]

Share Button

JSON instead of Java Serialization: The solution?

We start recognizing that Serialization is not such a good idea. It is cool and can really work on a wide range of objects, even including complex and cyclic reference graphs. And it was essential for some older Java frameworks like EJB and RMI, which allowed remote access to Java objects and classes. But it […]

Share Button

Ranges of Dates and Times

In Software we often deal with ranges of dates and times. Let us look at it from the perspective of an end user. When we say something like „from 2020-03-07 to 2019-03-10“ we mean the set of all timestamps such that     or more accurately:     Important is, that we mean to include […]

Share Button

Devoxx UA and Devoxx BE 2019

In 2019 I visited Devoxx UA in Kiev and Devoxx BE in Antwerp. Traveling was actually a little story by itself, so for now we can just assume that I magically was at the locations of DevoxxUA and DevoxxBE. In Kiew I attended the following talks: Probabilistic data structures in nutshell (in Ukrainian) [Oleksandra Kulyk] […]

Share Button

Checked Exceptions in Java

In Java it is possible to declare a method with a „throws“-clause. For certain exceptions, that are not extending „RuntimeException“ or „Error“, this is actually required. What looked like a good idea 25 years ago has proven to be a dead end. I do not know of any other major programming language that opts for […]

Share Button

Exceptions to implement Program Logic

Sometimes it is conveniant to use exceptions for implementing the regular program logic. Assuming we want to find some data and then process them. When no data is found, this step can be skipped, because there is nothing to do. So we could program something like this: public Data readData(Param param) {     Data data = db.read(param);     if (data.isEmpty()) {         throw new NotFoundException(„nothing found“);     }     return data; } public ProcessedData doWork(Param param) { […]

Share Button

Guava-Collections in Java-APIs

When we write APIs, that have parameters or as return values, it is a good idea to consider relying on immutable objects only. This applies also when collections are involved directly or indirectly as content of the classes that occur as return values or parameters. Changing what is given through the API in either direction […]

Share Button