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

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!

Code Review & Refactoring to a Better Design

It’s code review and design time. Recently, I recorded a video providing my thoughts on some code attempting to illustrate persistence ignorant for queries. I didn’t cover some specific API design decisions I disagreed with, around nullables and throwing exceptions. I’ll show samples of what I’d prefer the API to look like and why. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Code Review This post reviews code that was initially in this code review post, “Clean Architecture” and indirection. No thanks. I that post/video was… Read More »Code Review & Refactoring to a Better Design

HELP! My system is a spaghetti code mess.

If you’re frustrated working in a large spaghetti code system that’s hard to change and easy to introduce bugs, you’ve probably wanted to rewrite everything from scratch. The reality is that’s not likely going to happen. However, here’s how you can think about untangling the spaghetti code mess in smaller chunks one at a time, making it more manageable. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Spaghetti code People often refer to a spaghetti code when It has a lot of concerns intertwined, and because… Read More »HELP! My system is a spaghetti code mess.