Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Software Design

Focusing on “Entities” leads nowhere good.

Focusing on data or “entities” can lead you to develop a system that is hard to change and, over time, littered with technical complexity. I will cover why you must think about your system’s behaviors and start being explicit. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Blinded by Data This video/blog was inspired by this post on Reddit. First, why is it fairly obvious that the “microservices” are a teacher, student, etc? That’s the first problem. It’s not obvious at all what “school app” does.… Read More »Focusing on “Entities” leads nowhere good.

What are Business Rules? It’s not this.

What are business rules? Well, they often get confused with trivial validation. I think it’s essential to make the distinction because where you apply business rules and validation will differ and indicate the type of system you’re building. Let me explain and illustrate how you can make the distinction with a simple code example. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Example Let’s immediately start with a very simple code example. Here’s a single method that has two conditions. The first is that if the… Read More »What are Business Rules? It’s not this.

Single() or First()? Understand the Abstractions you use!

Everything is built on layers of abstraction. But how well do you understand the abstractions of the tools, libraries, and frameworks you’re using? We know everything comes with trade-offs, and being informed about the underlying implementation can help you make better decisions. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Example I posted a video, Refactoring code a better design, where I changed a call from First() to Single(). If you’re unfamiliar with LINQ or C#, First() is an extension on Enumerable<T> that returns you the… Read More »Single() or First()? Understand the Abstractions you use!