Object-Oriented Solutions: Avoiding Getters

Alice and Bob were both working in a small team for an international broker, creating an application to react to certain events in the market. The application's architecture was centered around Trades, that represents a transaction between a buyer and a seller exchanging something of value on an exchange. The initial implementation of a Trade … Continue reading Object-Oriented Solutions: Avoiding Getters


Object-Oriented Solutions: Accounts and Currencies

This article is about a simplified version of real code running at a financial institution and how maintenance problems with this code can be avoided by using Object-Oriented Design. The purpose of the code is to represent retail money Accounts and enable transferring money, define recurring transfers and to support the usual functionality you find … Continue reading Object-Oriented Solutions: Accounts and Currencies

Requirements for a Configuration Library

For an application developer, the problem of configuring the system for actual operations is usually not regarded as a complicated issue. Sometimes the code needs some settings, which can not, or should not be hard-coded, so some external source is needed to provide these values. It's not rocket science. Still, there are some straight-forward, nice-to-have … Continue reading Requirements for a Configuration Library

Magic-less Dependency Injection with JayWire

JayWire is a small, easy to use magic-less Dependency Injection library for Java 8. This article is a short tutorial on how to get started using it in projects of any size from small single- to large multi-module ones. Why another Dependency Injection library? Interestingly enough, the key feature of JayWire is not that it … Continue reading Magic-less Dependency Injection with JayWire

A story of Checked Exceptions and Java 8 Lambda Expressions

Image you are writing a small, awesome Transaction Management library to be used in a project you are working on. You want to provide an easy and safe way for your colleagues to get an SQL Connection from the current transaction, use it, and then close it when the processing is done. The very first … Continue reading A story of Checked Exceptions and Java 8 Lambda Expressions

Evil Annotations

When Java 1.5 introduced Annotations, Enterprise Developers had high hopes that it would make their life developing EJBs and other Enterprise Artifacts much easier. See for example this contemporary article: Simplify enterprise Java development with EJB 3.0. Since then however, using Annotations the way Java Enterprise started to use them had some unforeseen consequences and … Continue reading Evil Annotations