I’m going to write a couple of posts on the topic of TDD. Over the years, I’ve come to some conclusions of how to apply TDD practices and write tests in general that I hope you will find helpful. I’ll try to distil my experience with it to several points which I’ll illustrate with examples.
More about test-induced design damage →
The third most important software development principle is Encapsulation.
More about Encapsulation →
Today, I’m going to discuss the KISS principle. I consider it the second most valuable software development principle.
More about KISS →
I’m starting a new blog post series about the most valuable principles in software development. Not that I think you might not know them, but I rather want to share my personal experience and thoughts on that topic. The order in which I put those principles reflects their significance relative to each other, as it appears to be in my opinion.
That is quite a large subject and I’m going to dilute it with articles on other topics, so it might take a while.
Okay, let’s start.
YAGNI revisited →
Hard coding is often considered an anti-pattern. Having values that can change over time hard-coded in the source code requires recompilation every time these values actually change.
While this statement is true, I think that hard coding should be the default choice when developing an application.
Make hard coding your default choice →
Today, I’d like to discuss the differences between interfaces, abstractions and .NET interfaces, as well as what the term “implementation details” means.
Interfaces vs Interfaces →