This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases. I suggest reading the previous posts where I already explained some concepts you might find here.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

NOTE: I’ve moved the classes placed under the Common folder to different libraries that you can find and use in this new php-soa repository.

In previous posts, I introduced…


This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases. I suggest reading the previous posts where I already explained some concepts you might find here.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

Previously, we saw how we can model our use cases in our code by making them explicit in the form of Commands and Command Handlers. Commands represent an intent…


This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases. I suggest reading the previous posts where I already explained some concepts you might find here.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

In the previous post I explained the concept of a Domain Event, let’s see an approach to include it in our code. …


Sometimes, people have the feeling that too much time is invested on analyzing the solution of a given problem. Time that should be used to write more code which, in their minds, means more features released faster to production.

The truth is that the cost of a feature increases exponentially from being just an idea until it is released:

1. When it’s just an idea, the cost of a change or improvement is almost nothing.

2. When the idea is shared with the rest of business experts and devs, any change will require new meetings. Sometimes this step is frustrating…


Enhancing your use cases with extra powers easily

This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases. I suggest reading the previous posts where I already explained some concepts you might find here.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

In the previous post, I introduced the Command Pattern as a good technique to represent your use cases in your code. In this new post, I am going to…


Use cases implementation made easy

This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

Problem

When developing a product, as developers, we spend most of our time implementing new features in the form of use cases: “create an user”, “modify the address of an existing user”, “send an email to an user”, etc.

I frequently find developers wondering where to…


Make your use cases explicit in your code

This post is part of Implementing a Use Case, a series of posts where I share my learnings on designing, architecting and implementing use cases. I suggest reading the previous posts where I already explained some concepts you might find here.

You can either take a look at the code of the application example or the different tags which show the state of the application at the moment of the post.

As said in the previous post, I want to share with you my experience to develop use cases in a way that let me implement easier and more maintainable…

Maikel González Baile

Senior Software Engineer | Agile, DDD & Microservices

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store