[plt-scheme] Organizing Code
On Mar 7, 2006, at 7:47 PM, Kevin A. Smith wrote:
> I'm looking for a bit of wisdom from the seasonsed Schemers community.
> How do you organize code for large(ish) projects? The project design
> I'm considering has the following properties:
Others have responded properly but why don't we turn this around and
ask which of these things you don't get from the PLT Scheme module
system (http://www.htus.org/Book/Staging/how-to-use-modules/)? --
Matthias, Seasoned Schemer
> * Modular design with many specialized modules and a "glue" layer
> comprising the main app.
>
> * Each module provides public code used by the rest of the
> application. This code may be functions, Swindle/CLOS methods, or
> Swindle/CLOS classes.
>
> * Each module will also have private code used internally and not
> meant for public consumption.
>
> * I'd like to have the flexibility for modules to span multiple source
> files. This is not a hard requirement but a very nice to have.
>
> I'm coming from a Java/C++ background and am struggling a bit in
> finding the Scheme-y way to do this. I'm most used to the packaging
> structures in Java where multiple files participate in a single
> "logical" package. Classes and methods can be public, package-private,
> or private. Is there anything similar to this in Scheme, specifically
> PLT Scheme? Modules do not seem to fit the bill as they cannot span
> multiple files and the current version of package.ss is broken.
>
> I readily admit that my ingrained Java coding habits are most likely
> blinding me to either obvious or alternative solutions. I am not so
> much concerned with how the packaging structure works, just that there
> is a packaging structure and common practices surrounding it.
>
> Thanks,
> Kevin
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme