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