On Mon, Jul 6, 2020 at 11:04 PM Peter Firmstone <peter.firmst...@zeus.net.au> wrote: > > Perhaps we could agglomerate the modules, in the case below however, > this would make river-platform depend on river-lib, which depends on > river-dl, due to other dependencies and we don't really want that either. > One benefit of smaller modules is the ability to focus on a smaller > amount of code for developers to digest how a module works without > needing to understand code in other modules. The benefit of the larger > module is the ability to absorb the circular dependencies without having > to untangle them, but this tends towards a monolith again.
I like the idea of fairly fine-grained modules, as long as the module structure matches the actual code structure. That is, if we have high cohesion within a module, and low coupling across modules, then modules are good. IF the code is such that we have a lot of innate coupling across modules, then chunking it up into modules is sort of an artificial dividing line and may not accomplish much in practice. Beyond saying that, I'll defer to you guys who have been working on this for a long time, and understand the semantics of this code better than I do. :-) Phil