> I believe these are the top things we could do to realize an API. They
> all feed into each other, too, so no task is too small. Plus, we would
> need to do most of this anyway if we are to start peeling things off
> into separate packages.

I believe the scope of the mentioned things is too broad.  In my
opinion, these are nice to have kind of things rather than top
priority.  I'd suggest to focus.  What is the problem that you're trying
to solve?  Making the API, right?  Which of the mentioned things stop
that from happening?

> * clean up long lines

Not really a blocker.

> * break functions into smaller pieces when appropriate

Ditto.

> * combine related bits of code into modules

Only if it's essential for making the API.

> * make a deeper module-dependency tree with better isolation between
>   disparate branches

Same.

> * clean up types (remove IO, Handler, and Entity from top-level types,
>   whenever possible)

I'd start from here because it's already a problem.  For instance, DB
cannot be used in some parts of the testsuite.  It's essential for the
API for the same reason.  After you change the types, they'll indicate
what needs to be changed to build the project.  A small change that
makes a huge impact: a good first step.

> * create Yesod subsites for components like the wiki, the discussion
>   system, the notification system

Again, depends on whether it's essential or not.

To summarize: think of what you need from the API and what is the
shortest (and cleanest) way to make it happen instead of changing
everything just to build the perfect API.
_______________________________________________
Dev mailing list
[email protected]
http://lists.snowdrift.coop/mailman/listinfo/dev

Reply via email to