Categories
Programming

Code Responsibly: Paying Attention to the Humans You Impact

One of the consitent truths I have found in every development team I have worked with is that there is more work that can possibly be done. A great deal more. For the forseeable future, this will always be the case. I can come up with an innovative new idea by chance one Sunday afternoon. […]

Categories
Programming

Your Identity Should Be Immutable and Unconfusable

There are lots of ways to make an identity immutable and unconfusable. I’ll show just a couple, but first the principle behind it. Your identity should be immutable, because you will accumulate lots of threads back to your item that need that identity. If the identity changes, you will be breaking all of the relationships […]

Categories
Programming

Patterns Principles And Practices Of Domain Driven Design

I have just finished reading Scott Millett’s comprehensive volume Patterns, Principles, and Practices of Domain-Driven Design, which Scott kindly arranged to send to me. This is a subject I have been talking about non-stop for the past six months with my good friend Adam Watson – and this book thoroughly covers the topics that we […]

Categories
Programming

Mescoservice Architecture

Microservices are getting a lot of attention at the moment. For some they are the solution to the problem of monolithic software, to others they represent unnecessary complexity? Enter Mescoservices! Mescoservice architecture speaks to experienced service-oriented programmers who understand the concept of Domain Driven Design. It is the anti-dogmatic, non-extreme, and balanced view of service […]

Categories
Programming

Understand the Intent Before Making Changes

There is a clever pattern in domain-driven-design whereby you create an object to represent identifiers in your model. For example, if you have a Client object, you replace the numeric id with an object called ClientId. The reason for this is that it prevents incorrect ids being passed to method, because the methods don’t allow […]

Categories
Programming

Wrapping Simple Types in a Class for Identities

This is something I discovered when looking through some code I inherited from someone and I had to investigate it to work out why it existed. You may have already come across something similar, in which case you will know the answer to this question: Which of these is better? public Person GetPerson(int personId) { […]