Что считается лучшей практикой, решающей, как определить набор JAR для проекта (например, графический интерфейс Swing)? Есть много возможных группировок:
JAR за слой (презентация, бизнес, данные)
JAR на (значительную?) Панель графического интерфейса. Для существенной системы это приводит к большому количеству JAR, но JAR (должны быть) более пригодны для повторного использования - мелкозернистая гранулярность
JAR за «проект» (в смысле проекта IDE); "common.jar", "resources.jar", "gui.jar" и т. д.
Я опытный разработчик; Я знаю механизм создания JAR-файлов, я просто ищу мудрость для лучшей практики.
Лично мне нравится идея JAR для каждого компонента (например, панели), поскольку я безумно увлечен инкапсуляцией и святым Граалем повторного использования в разных проектах. Однако я обеспокоен тем, что на практическом уровне производительности JVM будет бороться с загрузкой классов в течение десятков, а может быть, и сотен маленьких JAR. Каждый JAR будет содержать; код панели графического интерфейса, необходимые ресурсы (т.е. не централизованные), чтобы каждая панель могла стоять отдельно.
Когда я говорю «святой Грааль повторного использования», я говорю это больше, потому что он демонстрирует четко отделенный, инкапсулированный дизайн, а не обязательно ожидает его повторного использования в другом месте. Я считаю себя "нормально умным" человеком; Я считаю, что спагетти переплетенной чепухи, с которой мне приходилось сталкиваться в течение моей карьеры, замедляет меня в 10-100 раз. Четко отделенный дизайн позволяет мне иметь дело с одной концепцией за раз, одним слоем, одним классом.
Есть ли у кого-нибудь мудрость, которой можно поделиться?