Presentation "Cut & Shave" about Domain Modelling (and language / philosophy) on https://kandddinsky.de/ Berlin 2019,October 18 Slides on https://www.slideshare.net/HermanPeeren/cut-shave
In mister Occam's barbershop we'll have Domain Modelling in our chair to have a fresh cut and shave. We'll cut, redefine, rename and rearrange concepts like bounded contexts, ubiquitous language, context maps, aggregates and their roots, entities, value objects and event sourcing. Our modeling tools have grown, but might need some maintenance service... Language is the vehicle of modeling, it is the tool by which we understand the world. Our words are the building blocks of our models. If our language is imprecise, inconsistent or contradictory, so our models will be imprecise, inconsistent or contradictory. Although some practicioners of Domain Driven Design proudly call themselves "domain linguists", not all DDD-jargon is very well defined. Some concepts come from different paradigms or contain logical errors. Too broad or too narrow definitions introduce unnecessary accidental complexity. This presentation aims to show some mistakes and do proposals to improve the situation. The proof of the pudding is to show how models can be made more useful by that. On our road we'll be helped by some modelers from the past, like Aristotle, Hume, Kant, Wittgenstein or Ryle. And we'll see how a 14th century razor blade can still be sharp.
Creative developer Herman Peeren likes creativity and exploring new ideas. Modelling is a way to better understand the world around us. Computer Science is Philosophy. Languages carry our thoughts, and that holds for both natural languages and computer language.
Sapir-Whorf hypothesis language can have (some) effect on thought https://en.wikipedia.org/wiki/Linguistic_relativity Keith Chen's saving behaviour research; see TED-talk 2012 https://www.ted.com/talks/keith_chen_could_your_language_affect_your_ability_to_save_money/
criticism: John McWorter, "The Language Hoax" (2014/2016) https://www.amazon.com/Language-Hoax-John-H-McWhorter/dp/0190468890 https://www.youtube.com/watch?v=yXBQrz_b-Ng
Steven Pinker https://en.wikipedia.org/wiki/Steven_Pinker https://en.wikipedia.org/wiki/The_Language_Instinct https://en.wikipedia.org/wiki/The_Stuff_of_Thought TED-talk (2005) https://archive.org/details/StevenPinker_2005G
Aristotle categorising entities A great resource on philosophy is Stanford Encyclopedia of Philosophy (SEP) https://plato.stanford.edu/contents.html About Aristotle's categories in SEP: https://plato.stanford.edu/entries/aristotle-categories/ https://plato.stanford.edu/entries/aristotle-metaphysics/ https://plato.stanford.edu/entries/aristotle/
Newton-Leibniz-Kant time as a separate entity Some of the articles from the SEP: https://plato.stanford.edu/entries/newton-stm/ https://plato.stanford.edu/entries/leibniz-physics/ https://plato.stanford.edu/entries/newton-philosophy/ https://plato.stanford.edu/entries/spacetime-theories/
https://plato.stanford.edu/entries/kant-spacetime/ https://plato.stanford.edu/entries/kant-transcendental-idealism/ https://plato.stanford.edu/entries/kant-science/ https://plato.stanford.edu/entries/kant-leibniz/
Immanuel Kant Song: https://www.youtube.com/watch?v=DC8ioZkb-Sc
Wittgenstein about the limits of language Tractatus logico-philosophicus, 1918 Early Wittgenstein (Tractatus): the picture theory of language https://en.wikipedia.org/wiki/Picture_theory_of_language https://plato.stanford.edu/entries/wittgenstein/ https://plato.stanford.edu/entries/meaning/
Gilbert Ryle category-mistake The Concept of Mind, 1949 (one of the best books I've ever read!) against Carthesian dualism (body and mind as two separate entities) You can find the entire work as a free pdf on internet. https://en.wikipedia.org/wiki/The_Concept_of_Mind https://plato.stanford.edu/entries/ryle/
Occam Razor: not more entities than necessary https://en.wikipedia.org/wiki/Occam%27s_razor https://plato.stanford.edu/entries/simplicity/
documentation of the model (in non-technical language, to be shared bertween customer / people working in the domain and software developers)
Book "Living Documentation" by Cyrille Martraire, 2019 http://www.informit.com/store/living-documentation-continuous-knowledge-sharing-by-9780134689326 Q&A: https://www.infoq.com/articles/book-review-living-documentation/ Presentations (2016): https://www.youtube.com/watch?v=sLmEBpDdnB0 https://www.youtube.com/watch?v=Tw-wcps7WqU https://vimeo.com/131660202
Make your tests tell the story of your domain - Mads Opheim & Anne Landro Was a presentation on KanDDDinsky 2019 See https://vimeo.com/324159725 for their presentation on 2019 Booster conf.
Miscellaneous Alvaro Videla: Programming Languages are not Languages (blogpost Sept. 2018) https://medium.com/@old_sound/programming-languages-are-not-languages-c6f161a78c44
Christopher Alexander: A city is not a Tree (essay, 1965) Do not simply divide your domain into mutually exclusive parts (tree-structures) https://en.wikipedia.org/wiki/A_City_is_Not_a_Tree https://www.academia.edu/16545395/Christopher_Alexander_A_city_is_not_a_tree
Gödel's Incompleteness Theorems https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems https://infinityplusonemath.wordpress.com/2017/08/04/godels-incompleteness-theorems/
How to survive the Dutch weather (many different words for rain in Dutch) https://www.youtube.com/watch?v=Ys-KP8oPdvg
|