7 comments

[ 2.7 ms ] story [ 27.4 ms ] thread
Does 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?
I'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

Don'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.

I am getting shades of Literate Programming from this article. I thought that idea was laid to rest in the early 90s.
1. 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.

> 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?