rasiim kyan Profile picture
still around but i be in them blue skies more nowadays - https://t.co/nwMoM2u54J

Jul 19, 2020, 7 tweets

software modeling and #ddDesign, quick intro

for starters, model basic concepts:

- nouns
- verbs

i'd even throw in the modifiers:

- adjectives (informs types of nouns/things/data)
- adverbs (informs ways or degrees of verbs/behaviors)

(at this point you only have a shallow view of the design)
(but it's a good start)

then get deeper, keeping track of the concepts':

- associations
- relationships (e.g. one/many to one/many)
- roles
- dependencies

(now we're diggin, getting to the essence of the domain)

look for awkward concepts and call em out:

- constraints/invariants
- processes, procedural rules (un-oo parts of the model)
- specifications/validations

(it takes iterations and convos to get here)
(but jackpot, we're starting to get to the jewels in the domain)

design; compose/arrange them as:

- value objects
- entities
- aggregates
- services
- repositories
- factories

and isolate this set of classes and groups of classes, the model, in it's own layer

heuristics rules of thumb:

- make the implicit explicit
- liberal use of UL-reflective naming
- no anemic models, use whole objects
- srp, kiss, and dry, tda; solid grasp in general

(just continue to refactor to better and better design)

any other software design steps i missed??

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling