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

Data Access Layer makes it easier to change your Database?

One primary reason for a data access layer or abstraction is your ability to change underlying databases easier. Have you ever replaced the underlying database of a large system or service? For example, moved from one relational database like PostgreSQL to MySQL. Or perhaps went from a relational database to a document or event store? There seem to be two groups of people. Those that have will say that abstracting the underlying database is crucial. In contrast, the other group has never moved the database and questions abstracting or creating a data access layer because you likely won’t replace the… Read More »Data Access Layer makes it easier to change your Database?

Fintech Mindset to Software Design

If you’re creating a line of business or enterprise-type software, I think one of the most valuable skills you can have isn’t technical. Rather it’s understanding how the business domain you are in works. One way is following how money flows through a system by having a fintech mindset. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Revenue & Cost I was on the Azure Devops Podcast, where I mentioned that a big influence on my career was working with an Accountant. No surprise, this has… Read More »Fintech Mindset to Software Design

SOLID? Nope, just Coupling and Cohesion

How do we avoid writing spaghetti code so our systems don’t turn into a hot mess? For me Coupling and Cohesion. Some people focus on things like SOLID principles and Clean Architecture. While I don’t necessarily have a problem with that if you’re pragmatic, I don’t ever really think about either of those explicitly. YouTube Check out my YouTube channel where I post all kinds of content that accompanies my posts including this video showing everything in this post. Coupling and Cohesion With over 20 years of professional software development experience, I’m mostly thinking about coupling and cohesion as a guide to… Read More »SOLID? Nope, just Coupling and Cohesion