LIST

Model: competing heuristics

Habit_ look for your heuristics and competing heuristics Heuristics competing against Favour Composition over Inheritance Heuristic: Use inheritance when template pattern fits Heuristic: Use inheritance when is-a Heuristic: Use inheritance when behaves-like-a Heuristic: Use inheritance when and only when there is inheritance in the domain Heuristics competing about reality Heuristic: Don’t model reality, evaluate for usefulness…driven by the domain Heuristic: immutable in reality => immutable in code invoice - ready, signed off, sent out, does not change anymore Heuristic: when your solution involves breaking&entering, find another solution Heuristics to help find competing heuristics...

July 3, 2022

Model: distill your heuristics

Identify your personal heuristics Whenever you are faced with a design problem, and you have an idea of what you want the solution to be. Then your instinct should be "wait, why is this better?" "what heuristic did I apply to move from this design to that design?" gut feel -> name / label it (src: Video_ Design Heuristics - Mathias Verraes - KanDDDinsky 2018)

July 3, 2022

Model: Fat events

contain redundant information in Event Sourcing not fat when they only contain the delta of what changed How do you decide what attributes to put into a published event? see: Video_ Design Heuristics - Mathias Verraes - KanDDDinsky 2018 (src: Video_ Design Heuristics - Mathias Verraes - KanDDDinsky 2018)

July 3, 2022

Model: Method for deliberate design choices

1) What are the forces here? domain assumptions context technical forces constraints DDDers not just learn the rules from the business ... what are the forces here? how does this business assess risk? how much do they care about certain risks? the balance between making more money and taking more risk how do they look at customers? - employees that get fired if they do something wrong - millions of users with little control mapping assumptions...

July 3, 2022

Model: Patterns vs Principles vs Heuristics

Patterns are what you discover Principles are what you’re supposed to do Heuristic are strategies to progress in solving a problem, without guarantees Patterns are descriptive “sometimes mis-used as prescriptive, overusing, eg. when new in the field” goal: communicate about solutions not: use this everywhere, asap (prescriptive) Principles & Best Practices are prescriptive applied almost blindly best practice guarantee “if you always apply the best practice, you always get the best result”...

July 3, 2022

terraform & GCP

How to login: don’t use a downloaded credential file https://jryancanty.medium.com/stop-downloading-google-cloud-service-account-keys-1811d44a97d9 instead export GOOGLE_OAUTH_ACCESS_TOKEN="$(gcloud auth print-access-token)" or SERVICE_ACCOUNT="your-service-account-email" export GOOGLE_OAUTH_ACCESS_TOKEN="$(gcloud --impersonate-service-account="${SERVICE_ACCOUNT}" auth print-access-token)" followed by your terraform commands or have a look at my automated setup https://github.com/TjenWellens/docker-alias Also related to terraform: my terraform gcp setup template: https://github.com/TjenWellens/template-tf-gcp-init

July 3, 2022

Course: ADSD - Intro to SOA

(free src: https://learn.particular.net/courses/take/SOA/lessons/1517272-it-ops-service ) Course_ Advanced Distributed System Design - Udi Dahan ToC SOA tenets Service example _) Q&A (no notes, not in free src) Services modelling: Workflows, boundaries and business capabilities UI composition and Branding service IT/Ops service related: Service Boundaries, SOA vs DDD - DDDEU2021 Session_ Service Boundaries - Tjen Wellens 1) SOA Tenets Microsoft original “tenets of SO” 1. autonomous 2. explicit boundaries 3. share contract & schema not class or type (or anything, or db) 4....

July 1, 2022

Heuristic: when you find a cyclic dependency go get a senior developer

no solution offered no context offered only tells “there might be a problem” (src: Video_ Design Heuristics - Mathias Verraes - KanDDDinsky 2018)

July 1, 2022

Model: 4+1 Architectural View Model

Views logical process development physical (aka deployment) +1 = scenarios (aka use cases) (src: Course_ ADSD - Intro to SOA)

July 1, 2022

Model: Clue Bucket (aka toolbox)

Model: Clue Bucket Clue bucket = toolbox (@ruthmalan) insights patterns best practices design principles proposal: add Design Heuristics (src: Video_ Design Heuristics - Mathias Verraes - KanDDDinsky 2018)

July 1, 2022