MermaidJS for Diagrams

I’ve discovered a really easy way for writing diagrams - MermaidJS. I’ve found it to be a handy way for easily diagramming workflows, or when planning out new architecture for projects. Here’s some examples of little ways you can use it easily. ...

March 9, 2022 · 5 min

Using UML for Domain-Driven Design

While it is definitely a lot less common to see people using Unified Modeling Language (UML) in software businesses these days, I believe it can be a valuable tool for planning and implementing Domain-Driven Design (DDD) principles. DDD is an approach to software development that focuses on understanding and modeling the problem domain, and UML provides a set of notations and diagrams that can assist in this process. Let’s delve into the reasons why it can be helpful. ...

December 17, 2021 · 3 min

SOLID and Domain Driven Design Together

Consider yourself not just a software developer but an architect of complex software systems. In this realm, you have at your disposal a set of powerful guidelines known as SOLID principles, designed to enhance the structure and maintainability of your code. These principles go hand in hand with Domain-Driven Design (DDD), a methodology that focuses on aligning software solutions with the intricacies of a specific problem domain. SOLID principles act as a foundation for your coding practices, ensuring that your software is not only robust but also adaptable to changing requirements. When incorporated alongside DDD, they contribute to the creation of well-structured and maintainable software solutions. In this exploration, we’ll delve into how SOLID principles can seamlessly integrate with DDD, providing a holistic approach to building software that is both powerful and flexible, capable of addressing the nuances of the problem domain it serves. ...

October 1, 2021 · 3 min

What Is Domain Driven Design?

Domain-Driven Design (DDD) is an approach to designing and organizing software that focuses on understanding and representing the core concepts and relationships within a specific problem domain. In simple terms, it’s a way of building software that closely mirrors the real-world problem it’s intended to solve. It’s all about keeping it real and making software that’s super effective, easy to tweak, and won’t drive you nuts when things change. Think of it as a way to slice up complex problems into manageable pieces, set clear boundaries, and use tried-and-true patterns to represent the core bits. The result? Software that gets your problem and helps you solve it without losing your mind. ...

September 24, 2021 · 3 min