I'm trying to find a more general way to describe why HelpersInsteadOfWrappers works fairly well in certain unpredictable and chaotic domains, and thus the topic MyraidDisposibleMiniAbstractions?. Here's more detail on each feature:
- Myraid - A library of lots of little tools or toolettes.
- Disposible - You date them, not marry them. Using any one toolette is not a make-or-break decision and you can swap it with something else (or fix it) without too much fuss or muss.
- Mini - No toolette is too big as a rule of thumb. If it's too big, then split it up. It may take practice to find good splitting seams, which is finding practical sub-concepts within concepts. StepwiseRefinement is one, but not the only approach.
- Abstractions - They simplify or automate common or repeating tasks
Generally the library grows organically based on actual needs. It may not even be a formal library, but rather a bunch of routines, modules, or classes that are working in existing apps. Perhaps a catalog database or spreadsheet can track their function and whereabouts.
The linkage between them is generally via convention instead of formal gateways. I find dynamic languages friendlier to this idea, but your mileage and preferences may vary.
--top