Niklas' Blog
Friday, March 1, 2019
Setting up MongoDB for bi-temporal data
Wednesday, February 27, 2019
Manage bitempotal data with BarbelHisto
Wednesday, January 30, 2019
Modern State Pattern using Enums and Functional Interfaces
It’s offen the case that the behaviour of an object should change depending on the objects state. Consider a ShoppingBasket
object. You can add articles to your basket as long the order isn’t submitted. But once it’s submitted you typically don’t want to be able to change that order anymore. So, there are two states in such a shopping basket object: READONLY
and UPDATEABLE
.
Tuesday, January 29, 2019
Passing multiple arguments into stream filter predicates
When I am working with java streams I am intensively using filters to find objects. I offen have the situation where I'd like to pass two arguments to the fiter function. Unfortunately the standard API does only accept a Predicate
but not BiPredicate
.
To solve this limitation I define all my predicates as methods in a class, say Predicates
. That predicate class takes a constant parameter.
Friday, August 17, 2012
5' on IT-Architecture: the modern software architect
Yes of course, there is the role of a "software architect" in any non-trivial software development project. Even in times of agile projects, dynamic markets and vague terms like "emergence". The simple reason for that is that emergence and democracy in teams only work within constraints. Though, it's not always clever to assign somebody the role explicitly. In an ideal world one developer in that team evolves into the architecture role.When I started working as an IT professional at a *big* american software & IT consulting company I spent around five years with programming. After that time I got my first architecture job on a big project at a german automotive manufacturer. My main responsibility was to design the solution, advice developers, project managers and clients in doing things and to organize the development process. I wrote many documents, but I didn't code anymore. The result was that I lost expertise in my core business: programming. So after a while my assessments and gut instinct got worse, which results in worse decisions. As a sideeffect of generic (vague) talking it got harder to gain acceptance by the developers, project managers or clients. When I realized all that I decided to do more development again. Today, I am doing architecture for 10 years. I am developing code in the IDE of my choice at least 20-30% of my time.