Sat Apr 6 09:25:03 EDT 2019

Fine granularity and scaffolding context

In practice, it is very hard to isolate subsystems.  However it really
pays off to do so, because it removes the problem of "reloading context".

As I get older, I find that reloading context is becoming more of a
problem.  Either because I'm just doing more complex things, or
because I've become slower in (re-)absorbing arbitrary details.

My mind seems to have learned to forget about arbitrariness: it is
only kept in short-term storage.  Design principles _do_ seem to
survive a memory storage cycle.

What is the conclusion?  It is very important to structure the code
and maybe more the build system in a way that changes to small
components become easy.  Summarized:

- components should be small

- changing a component's code should have immediate effect

- context necessary to look at the component in isolation should
  either be small (e.g. functions), or at least built transparently
  without too much indirection.