Database Rant

What is the primary purpose of the database? I won't blame you for saying data storage. In most software projects it is the place where we store our data. I will however tell you that you are wrong. Data storage is not the primary purpose of the database If you want to just store data, why add the overhead of a database? Why not just save your data directly on the file system. My client wants an application! Applications generate
- Database Rant

Read more

Event Sourcing and Battling Accidental Complexity (DevDay2016)

For the last year I have been delving into Event Sourcing in my free time. From total ignorance to complete understanding, back to not having an idea what is going on and then epiphany after epiphany, it has been a fun, eye opening journey. It is such a different way of thinking, and ties in so beautifully with Domain Driven Design, CQRS and Clean Code. It solves so many problems that I did not even realize I had. It simplifies
- Event Sourcing and Battling Accidental Complexity (DevDay2016)

Read more

Delayed Dependency Resolution the Right Way

I have been playing around with CQRS/Event Sourcing and using lightweight, immutable command messages to trigger actions in my application. The great thing about this is that you can specify a single point of entry into your application by using a very simple interface. public interface IApplication { void Execute<T>(T command) where T : ICommand; } This means that every time you want to expose a new actionable feature, you just provide the client with a simple command
- Delayed Dependency Resolution the Right Way

Read more

Better Test Documentation

Let's look at some tests. Ok, so we can assume there is some User and Controller functionality. But to really know more we have to dig deeper. Looking at the User test folder, have we gained more insight?. It is only when diving into UserTests that we get to see what our functionality really is. And here we see the same old same old: A class, testing many different (and separate) things regarding Users. Long tests names all starting with
- Better Test Documentation

Read more

My First Pluralsight Course Went Live

Fact: I have not been blogging as often as I would have liked Fact: This is because I have been working on my Getting Started With ChatOps Pluralsight course. This course is a road map to getting a team up and running with ChatOps. I help you discover the benefits of ChatOps and how to get your team to actively participate in a ChatOps culture. I show you how to place information and everyday tasks in the middle of your
- My First Pluralsight Course Went Live

Read more