Clean Code

Writing Clean Tests - It Starts From the Configuration

The first thing that we have to do when we start writing either unit or integration tests is to configure our test classes. If we want to write clean tests, we must configure our test classes in a clean and simple way. This seems obvious, right? Sadly, some developers choose to ignore this approach in […] Read more

Three Reasons Why We Should Not Use Inheritance In Our Tests

When we write automated tests (either unit or integration tests) for our application, we should notice pretty soon that Many test cases use the same configuration which creates duplicate code. Building objects used in our tests creates duplicates code. Writing assertions creates duplicate code. The first thing that comes to mind is to eliminate the […] Read more

10 Books Every Java Developer Should Read

I have read my share of software development books and I have noticed that it is very rare to find a book which I want to read more than once. However, once in a while I find a book which teaches me new things every time when I read it. This blog post is a […] Read more

Domain-Driven Design Revisited

Recently I read a book titled Domain-Driven Design by Eric Evans. This wasn’t the first time I read this book but this time I realized that I had been totally wrong about domain-driven design. I thought that the domain model consists of entities and value objects. In fact, I was obsessed with moving the domain […] Read more

The Microservice Architecture Sounds Like Service-Oriented Architecture

I didn’t understand the service-oriented architecture. I thought that it was just one of those highly theoretical and very impractical software architecture patterns. In other words, I considered it to be an architecture fanatics’ wet dream. Then I read an article titled Microservices by Martin Fowler, and the service-oriented architecture started suddenly make sense to […] Read more

We Need More Foremen

This week I read a blog post titled Where is the Foreman by Robert "Uncle Bob" Martin. It made me think. Uncle Bob suggests that a software development team should have a foreman who: He'd make sure everything was done, done right, and done on time. He'd be the only one with commit rights. Everybody […] Read more