On Sun, Jul 3, 2011 at 1:00 PM, Brian Marick <mar...@exampler.com> wrote:
> My point was that I'm running into interesting questions even with a small 
> program. The answers are not obvious to me. There's evidence I'm not alone, 
> so those to whom the answers *are* obvious would help the community by 
> describing them.

I don't think there are obvious answers to most questions around large
programs. If those answers were obvious, we wouldn't have shelves full
of books talking about how to tackle the problems of large scale
software development :)

FWIW, at World Singles, we have namespaces for high-level concerns -
config, data, interop, logging - and nested namespaces either for
implementation (indicating only intended to be used from the API
namespace, e.g., worldsingles.config.impl.* files are only used by
worldsingles.config.* files) or specialization / layering, much like
you describe in midje (e.g., we have worldsingles.data.crud for a
high-level CRUD API for persistence that is exposed to our non-Clojure
code and worldsingles.data.crud.core which implements it and is
intended to be used elsewhere in our Clojure code). I expect we'll add
namespaces for more of our business concerns as our use of Clojure
expands: worldsingles.membership, worldsingles.search and
worldsingles.commerce are probably the three most obvious candidates
right now.

We're in an unusual place, I suspect, since we're inherently polyglot
so our top-level namespaces contain code we expose to non-Clojure code
and nested namespaces contain code we use internally within our
Clojure code. That said, I wouldn't be surprised if we refactored
extensively as our Clojure codebase grows larger and larger.
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/
Railo Technologies, Inc. -- http://www.getrailo.com/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to