Architecture

the architecture should serve its users, and hence must be adapted first to the skills and needs of the programmers actually working with it.

for small projects:

  • abstract messy details of subproblems (UI, export, ...)
  • prefer passing state around (rather than some form of global state)
  • prefer injecting functionality (rather than passing it around)
  • cling to existing guidelines (given by framework) & naming (like schema.org)
  • avoid dependencies for trivial functionalities (rather copy them into project)