A domain-centric Solution Architect, taking technology as a tool to bring the business value. Proud practitioner of Domain Driven Design methodologies.
Fantastic session with my Healthcare research group on Healthcare AI. We have now finished the map, the investment zones and determined the areas that matter most - healthcare demand management, medical training sets and tech assisted care.
@simas_ch@omniprof Should you though? If you ever change your mind and want to add logic there you have massive refactoring at all use cases.
That approach breaks encapsulation and expose your class to be put in inconsistent state.
“Despite the initial assumption that software was the most critical part, it turned out that the solution was mostly politics” - Introducing Event Storming - @ziobrando
I like to expand it to - usually tech is not a problem - everything else is - mainly communication.
How to properly discover an #DDD Aggregate?
Step 1: Group together atomic operations
Step 2: Define behaviors
Step 3: Add data that is needed that defined behaviors needs.
Remember: Aggregates are behaviors first!
@mr_taghip@mathiasverraes@deyrson That is because represenatation of model is adjusted to reciver.
Diagrams are easy to collect lost of information for human beings
Code is something that computer understands.
Both may represent same model - but cannot be easily exchanged for all receivers.
We all know:
- the importance of Ubiquitous Language
- codebase should be written and maintained in English
But let's imagine the business stakeholders who are not natively speaking English, and the business is run in a non-English speaking country.
What do you do then?
@lucaguada The moment when change should apply to the model is when natural business language changes.
Example: Business is growing and started hiring people who cannot communicate in Italian anymore (let's say C-level). Changes in communication will need to be reflected in the code.
@lucaguada I am happy to have GetColazioneList - if the clients are using that as a domain term. (I hope I've described breakfast in Italian)
Probably when communication changes, because of internalization steps, code needs to get refactored too?
@simas_ch@mydevlprplanet UI is not relevant here, as you can have multiple languages, and something like Default language doesn’t convince me.
But when business says A and you need to deep dive to find entity X that is a crime!
@brzezmac Would you keep a dictionary to translate from: original language words to English ones?
Something obvious for you may be misunderstood by business stakeholders. The greatest benefit of Ubiquitous Language is for business stakeholders. I foresee some issues with this approach.
@simas_ch It triggers another question - what language have you communicated with the clients?
I feel Ubiquitous Language over English codebase is the way I would go too.
@simas_ch Are you:
Trying to keep the entire codebase in the 'Domain Language'
Or rather, limit it to the core domain - where Ubiquitous Language is bringing the best of value.
Or have everything in English until you cannot find a good English word - as an exception?
@ShripadAgashe@paul_hammant@samnewman Problem with patterns is when they are are misused - they become a blockers for growth - a prison
What devs then do? Hack around patterns… what that leads to - bad quality code
And my favorite: sorry - I cannot implement that change as patterns we used won’t let me…
#EpicFail