LIST

Talk: The Distributed Human System - Alan Jefferies

Lightning Talk: The Distributed Human System - Alan Jefferies distributed computer systems flow Definition: distributed systems -– backlogs implicit in this definition i make explicit: decentralize control homan historically - assumption: partition tolerance is not important in human systems -we work from the same office anyway UNTIL: 2 nasty viruses we got partitioned ...

February 4, 2021

Talk: What do you mean by “is”? - Duncan Jones

Lightning Talk: What do you mean by “is”? - Duncan Jones (1) ignition switch variable (2) car (3) traffic it depends can only answer what the answer “was” transactions: it’s bad form to lock guests in their room Example: distance (influences time) business rule containing “is” do you mean - quite recently - a minute ago, 5 minutes ago - defined location (priveleged observer)

February 4, 2021

Technique: Discover service boundaries (SOA)

Search for ’natural folding lines’ in the domain Try to find the “natural folding lines” between areas in the domain. how: ask domain experts: “Can you imagine that changing data x ever impact data y” eg. “[hospital] Would the patient changing family name impact which doctor they get treated by” eg. “[webshop] Would changing the description of a product cause the price to change?” When the domain expert looks at you like - "You don't get it at all do you?...

February 4, 2021

Heuristic: Test behaviour instead of X

I have found multiple ways of looking at this: behaviour vs methods behaviour vs state behaviour vs implementation (1) Unit-Test Behaviour, Not Methods focus on the features that the object under test should provide, We need to know how to use the class to achieve a goal, not how to exercise all the paths through its code. Describing Behavior, Not API Features We need to know how to use the class to achieve a goal, not how to exercise all the paths through its code....

February 3, 2021

Heuristic: Composite Simpler Than the Sum of Its Parts

Heuristic: Composite Simpler Than the Sum of Its Parts hides enough information moneyEditor.getAmountField().setText(String.valueOf(money.amount()); moneyEditor.getCurrencyField().setText(money.currencyCode()); moneyEditor.setAmountField(money.amount()); moneyEditor.setCurrencyField(money.currencyCode()); moneyEditor.setValue(money); (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)

February 2, 2021

Heuristic: Context Independence

Heuristic: Context Independence hides too much / wrong information whatever an object needs to know about the larger environment it’s running in must be passed in permanent relationships (constructor argument) transient relationships (method argument) (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)

February 2, 2021

Model: 2 layers in Higher-Level Programming

Model: 2 layers in Higher-Level Programming implementation layer declarative layer a declarative layer emerges from continual “merciless” refactoring (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)

February 2, 2021

Model: 3 techniques for introducing types

(1) Technique: Breaking out Splitting a Large Object into a Group of Collaborating Objects when: object is becoming complex why: object has multiple concerns (violates Single Responsibility) (2) Technique: Budding off Defining a New Service That an Object Needs and Adding a New Object to Provide It (A) Value Types: placeholder type introduce a placeholder type that - wraps a single field, or maybe - has no fields at all (B) Objects...

February 2, 2021

Model: interface vs protocol

interface things fit together protocol things work together

February 2, 2021

Model: web of objects

(1) decompose our system value types objects decompose our system into value types and loosely coupled computational objects (2) building blocks lower-level objects into more capable objects use lower-level objects as the building blocks of more capable objects (src: Book_ Growing Object Oriented Software, Guided By Tests - Steve Freeman & Nat Pryce)

February 2, 2021