Magic is the arch enemy of readable code, and one of the most common form of magic which can be found from our code is a magic number. Magic numbers litters our source code, and transforms it into a pile of unreadable and unmaintainable rubbish. That is why we should avoid magic numbers at all […] Read More
Clean Code
Writing Clean Tests - Naming Matters
When we are writing automated tests for our application, we have to name our test classes, our test methods, fields of our test classes, and the local variables found from our test methods. If we want to write tests which are easy to read, we have to stop coding on autopilot and pay attention to […] Read More
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