Code tells a story, but is it the actual story the original author wanted to tell? A lot of time the original story gets lost, as new functionality gets bolted on, or key parts are extracted, leaving behind an incomplete picture. These repurposed objects might pass all the unit tests but have no actual meaning in the context of the original story. We will take a look at how we can more easily communicate the purpose of code to future developers, by introducing contracts and immutability, and using explicit context bound language, to give meaning to the code and keep the story whole.
2. Jeroen v.d. Gulik
• CTO / Co-Founder Isset
(http://isset.nl)
• Builder of Artificial Stupidity
• @n0x13
• Likes Cats … a lot
3. Isset Internet Professionals
• We build custom internet technology based solutions
• We helped design and build several online video
platforms (Pathé Thuis, Videoland, NPO Plus/NLZiet)
• Currently focussing on video-transcoder.com
• We like a challenge so if you have interesting
problems to solve, come and talk to me
• Still Hiring
46. “As an Author I want to be able to Create
an Article. Before Publishing it, I want to
have a Draft. I also would like to be able
to Retract an Article with a Reason”
47.
48. Objects as dumb data stores
a.k.a.
Anemic Domain Model
This is our industry standard
70. Objects should only expose
methods relevant to it's current
state
- George Bush
71.
72.
73. Objects should …
• Be responsible for their own internal consistency
• Have specific behaviour towards its
responsibility
• Broadcast their state
• Only care about the state it’s currently in.
74. But there is still a piece
of the puzzle missing…
75. As a Publisher I want to
know which Article has been
retracted more than X times
76.
77. As an Editor I want to see
all the changes that have
been made
78.
79. Store all the Changes
(Δ delta’s),that have
happened