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

Derek Comartin

Enums aren’t evil. Conditional statements everywhere are

Are you seeing the same conditional statements (if/switch) against enums littered everywhere? There are different ways of handling that, but a lot of it comes down to your context. Conditionals around type checking, extension methods, Inheritance, and Polymorphism are all options. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Enums The original examples of this problem come from a video by Nick Cosentino, which he tagged me in. The gist is that there are a lot of conditional, in this case “if statements,” throughout a codebase… Read More »Enums aren’t evil. Conditional statements everywhere are

Goodbye, long procedural code! Fix it with workflows

We’ve all written long procedural code with many logic branches that must handle failures because it tries to execute a long business process with many actions. Better alternatives exist than writing a rat’s nest of complex procedural code. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Procedural We’ve all probably written or looked at code similar to the following. It does a few things: first, it adds and saves an order to the database; then, it tries to process the credit card payment; and lastly, it… Read More »Goodbye, long procedural code! Fix it with workflows

Beware! Anti-patterns in Event-Driven Architecture

Event-driven architecture has patterns and common practices that are solutions for various problems. The issue arises when you apply these patterns when you don’t have the problem they solve, or you can avoid having the problem in the first place. Here are some patterns and why the might become anti-patterns in a given context. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Leaking Internals If each service has it’s own storage/database, then we need to be cautious about leaking schema and data that we don’t want… Read More »Beware! Anti-patterns in Event-Driven Architecture