3 ms·
Introducing Modelling by Example
- quizotic 12y agoDoes anyone know what this means? Can you explain it to an old C++ hacker? Near the end, it looks like "ubiquitous language" (UL) is being used to generate API function signatures. Is that how UL connects the business reqs to the implementation?
- CiaranMcNulty 12y agoI'll try and summarise it. Ubiquitous Language is a term used in BDD and DDD and just means 'the shared language that you build with non-technical people'. It largely involves using business terms as much as possible, but often you have to try and agree some naming when talking to non-technical folk to resolve ambiguities. UL is not a technical concept, it's a way to focus on how you're expressing concepts in conversation. In BDD we use this shared language to have conversations with customers about requirements, in the form of examples. In DDD we use a shared language to have conversations with customers about business process and rules. This article is bringing those two approaches together. The stuff at the end is showing how the internal domain modelling (class naming, method naming, argument choice) can be taken directly from the conversation you had with the customer when you've had that conversation effectively. The significance is that the 'modelling' effort happens less in the developer's realm and more in the collaborative realm of customer communication. Disclaimer: I work with the author of the article, use these techniques, and profit from their adoption
- blowski 12y agoDon't feel bad. I use PHP and Behat, I've seen Konstantin (everzet) present these concepts a few times, and I don't understand what he's talking about either. That said, Behat is lovely, and thanks to everyone who works on it.
- spacemanmatt 12y agoI am getting shades of Literate Programming from this article. I thought that idea was laid to rest in the early 90s.
- akkartik 12y ago1. No, I don't think this is LP at all. LP is about controlling ordering and pretty rendering. This is more like Cobol in the support for parsing english. (/me ducks.) 2. Are you aware of any comprehensive rebuttals of LP? I'm working on one myself at the moment, so any pointers would be most appreciated.
- spacemanmatt 12y ago> 1. ... [snerk!] > 2. ... If LP has essentially yielded to what we now know as DSLs, I might just be ok with it. I am not aware of any comprehensive rebuttals of LP, except... where's the market?
- akkartik 12y agoLiterate CoffeeScript, Literate Haskell, Docco? There's still projects using CWeb, like the recently-on-HN http://c9x.me/edit http://c9x.me/edit. Anyway, I recently published my rebuttal: http://akkartik.name/post/literate-programming http://akkartik.name/post/literate-programming