I am working on a project/application that I feel is not very well organized, and parts of it intertwine in different ways. Everything works, but I can see things are not very modular.
Is it reasonable to split up an application into various libraries, even if they might not be reused by another application?
Just the mere thought of splitting it up into libraries reveals many problems with the current system. I feel it will encourage better design, and future reuse (There are talks of a new project that seems it could benefit from at least some of these libraries).
My concerns are
- How will it affect perfomance?
- How far should I go in splitting things up?
- If three libraries all depend on each other, is there a point in making them libraries? (perhaps it suggests a re-architecture of the modules)
My question seems to go against the wisdom of this answer, in that Dynamic libraries should never be created for a single app. Then the question becomes- how to ensure modularity in a large application?
EDIT: It seems I have used the term "shared library" too much, so I removed it to imply any kind of library (either static or dynamic). The essence of the question is whether to split stuff up into any type of libraries.