Subject: Embedded DSLs are built inside a "host" language such as Java or Ruby.

From: Lionel Mayes <[email-masked]>
Date: Tue, 27 Feb 2007 19:49:15 +0100

Before taking questions from the audience, Dave asked each participant
for their opening statement.

Overlooking these little handicaps, the solution is fairly
straightforward. Or, worse yet, can you tell a business person where in
the code base a specific piece of business logic is "buried"?

Eric has written an excellent book on domain-driven design. One might
find it curious that this method actually returns a CalendarInterval
instead of a number like java. Ads by GiggleInterface21 - the honest
consultants. keynote at the TheServerSide Java Symposium.

You can shorten the expression a little:return date. Even I could not
resist at the time and created InfoGate.

However, once we started talking we realized that there are a lot of
nuances and related topics to layering that are quite worthwhile
discussing. I am sure Satish has an opinion. Additionally, they can
provide a natural mapping of a problem space into the system model. I
coined this the Reverse Conway's Law: you design your organizational
structure so that the resulting system, which according to the law will
resemble this structure, comes out the way you like it.

And we were not disappointed.

This observation became apparent in the design of nUnit. New code that
is being checked into the system apparently has lower coverage than
existing code. But don't despair, we have not yet exhausted the creative
possibilities of the channel semantics.

Concurrency will bring new bugs.

The annotation should change when the code of the annotated items
change, not when the environment changes.

Second, because I would have a chance to learn a lot about Web 2. The
context to this work is to identify formal models of workflow services.
When another application needs to reference that data it sends a query
to the owning application and waits for the response before it continues
processing.

A whole track focused on DSLs and a separate track on abstractions for
concurrency. Eric has written an excellent book on domain-driven
design.

But pretending these boundaries do not exist makes it only worse!

For example, is a method allowed to look at the hours or minutes of a
Calendar that is passed in?

A Domain LanguageI recall that in the beginning writing this software
was no fun.

In the end it is the same old "hammer and nail" effect but the object
success may have caused a significant amount of inertia that makes for a
bigger hammer.

The key to these tools is the insight that the source window does not
simply contain a sequence of characters but an abstract syntax tree.

This includes the run-time environment, such as running processes or the
source code. The panel was the last agenda item on Friday so attendance
was a bit lower than most of the sessions.

Interestingly, TheServerSide just posted the video for my Where did All
My Beautiful Code Go? Verifying assumptions - I actually run coverage
tools most frequently to see whether my coverage matches my
expectations.

Most of the discussion centered on the role of design techniques and
modeling languages and the way we design software. It gives you a
consistent way to build loosely coupled systems, consisting of base
capabilities and a process on top.

In a loosely coupled interaction a source of data should not be required
to keep state at the convenience of its communication partners.

Instead the month of March is a range of days from March 1st to March
31st. Well, look through some large business apps and see how well
layered they are.

Maybe we should add something like that to our book. Think that
listening to layering is old news and everybody should know anyway?