Archive for the ‘Domain Driven Design’ Category

Qi4j™

Saturday, June 9th, 2012

Qi4j™

From the webpage:

What is Qi4j™?

The short answer is that Qi4j™ is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD.

Qi4j™ is an implementation of Composite Oriented Programming, using the standard Java 5 platform, without the use of any pre-processors or new language elements. Everything you know from Java 5 still applies and you can leverage both your experience and toolkits to become more productive with Composite Oriented Programming today.

Moreover, Qi4j™ enables Composite Oriented Programming on the Java platform, including both Java and Scala as primary languages as well as many of the plethora of languages running on the JVM as bridged languages.

Introducing Qi4j™

Qi Qi4j™ is pronounced “chee for jay”. This website is out of scope to explain the many facets and history of Qi, so we refer the interested to read the lengthy article at Wikipedia. For us, Qi is the force/energy within the body, in this case the Java platform. Something that makes Java so much better, if it is found and channeled into a greater good.

We strongly recommend the background article found in the introduction.

Covering Qi4j in part because Emil Eifrem covers it in his “kicking ass” slides on Neo4j.

But also because I like domain oriented design.

Software should fit a domain and not have domains tormented to fit software.

That does create problems with what to standardize and what to enable to be unique. Not everyone can afford one-off software.

My suggestion would be to standardize the interchange of data to enable competition between unique capabilities of software, so long as it write back to a standard format.

From entries at the website it appears that Qi4j is emerging from a period of dormancy. Now would be a good time to contribute to the project.

Large-scale Pure OO at the Irish Government

Thursday, October 20th, 2011

Large-scale Pure OO at the Irish Government by Richard Pawson.

From the website:

Richard Pawson discusses a case study of a large pure OO project for the Irish government, presenting the challenges met, the reason for choosing pure OO, and lessons learned implementing it.

This is an important presentation mostly because of Pawson’s reliance on Domain Driven Design (Evans) and the benefits that were derived from that approach. I think you will find a lot of synergy with extracting from users the “facts” about their domains. Highly entertaining presentation.

Pawson’s “naked object” approach has both Java and .Net implementations:

Naked Objects – .Net at Codeplex

Apache Isis – Java at Apache Incubator

Perhaps not quite right for web-based or casual users, but for power-users of topic maps, this might have some promise. Thoughts?

Pawson talks about reuse of naked objects. How would you compose (impose?) a subject identifier for a “naked object?”