What is considered best practice determining how to define a JAR set for a project (e.g. Swing GUI)? There are many possible groupings:
JAR for each layer (presentation, business, data) GUI toolbar (significant?). For a large system, this leads to a large number of JARs, but the JARs (should be) more reused - fine-grained JARs for the "project" (in the sense of the IDE project); "common.jar", "resources.jar", "gui.jar", etc.
I am an experienced developer; I know the mechanics of creating a JAR, I'm just looking for wisdom in best practice.
Personally, I like the idea of ββa JAR for each component (for example, a panel), since I'm insane in encapsulation, and the holy grail of reuse on projects. However, I am concerned that at a practical level of performance, the JVM will struggle with loading classes in dozens, maybe hundreds of small JARs. Each JAR will contain; GUI panel code, necessary resources (i.e. not centralized), so each panel can stand alone.
When I say the holy grail of reuse, I say this more because it demonstrates a purely decoupled encapsulated design, and does not necessarily expect to be reused elsewhere. I consider myself a βnormally smartβ person; I believe that the spaghetti of intertwined nonsense that I had to deal with during my career slows me down 10-100 times. Clearly decoupled design allows me to deal with one concept at a time, one layer, one class.
Does anyone have the wisdom to share?
source share