2011-02-17 14 views
5

A menudo soy cauteloso de crear proyectos múltiples en Eclipse. Vamos a echar un escenario:Cuándo crear proyectos múltiples en Eclipse?

  • Hay un proyecto J2EE principal, que tiene toda la lógica de negocio, render interfaz gráfica de usuario, etc.
  • entonces hay una mayor proyecto de apoyo, que básicamente sólo tiene la hibernación POJO y Hibernate configuración relacionada cosas

Esto significa que el contenedor del proyecto Hibernate deberá colocarse en el proyecto principal para probarlo, cada vez que haya un cambio.

¿Cuáles son las desventajas?

  • más pequeña de cambio en la clase, que necesita para construir el frasco de nuevo y transferir al servidor
  • No se puede transferir directamente sólo los archivos de clase, usted tiene que construir de nuevo la jarra completa
  • En el modo de depuración remota, las ediciones no reemplazará caliente los archivos de clase de proyecto Hibernate, dolor grande para transferir frasco y reiniciar el servidor todo el tiempo

¿Cuáles son las ventajas?

  • Si tuviera que dividir mi proyecto J2EE en 2 proyectos para separar preocupación mañana, puedo copiar directamente la parte DB, es decir, Hibernate frasco y comenzar a utilizar los proyectos de división

Así que ahora mi pregunta:

  • ¿Existe una línea guía sobre cuándo crear un nuevo proyecto en lugar de un nuevo paquete?
  • En los casos anteriores, ¿sería una buena idea combinar ambos en un proyecto para resolver 3 desventajas y contener una ventaja?
  • ¿Cuál es el estándar de la industria? ¿Mejores prácticas?

Respuesta

4

Cuanto más separes tus proyectos, mejor.

Tan pronto como pueda establecer una separación de dependencia clara, muévala a su propio proyecto. A medida que crezca, esto le permitirá reutilizar el código más fácilmente en otros proyectos.

+0

¿No crees que mientras más separes, más problemas tendrá el desarrollador para seguir lanzando las jarras, especialmente en Java? – pavanlimo

+1

Definitivamente no, porque los desarrolladores no deberían estar lanzándolos. Deben integrarse en un sistema de compilación e implementación (hay buenos gratuitos, como Hudson o Cruise Control, o proprierity como AnthillPro o Build Forge, y otros). En este punto, las jarras administran las jarras y los desarrolladores solo se preocupan por cómo debe funcionar el código. – corsiKa

+2

El problema es que cada vez que se cambia un contenedor, el servidor debe reiniciarse, lo que es infinito, es aburrido y consume mucho tiempo. El reemplazo de código caliente es un salvador para los chicos de Java, pero no funciona en el caso de los frascos. Herramientas como Hudson et al. son buenos para el proyecto en general, pero no pueden usarse para pruebas de desarrollo rápido. No parece bueno cuando haces un cambio de 1 línea y esperas más de 3 minutos para compilar e implementar tus cambios para una prueba de desarrollo rápido. – pavanlimo

3

En su caso, si tiene capas diferentes, es recomendable colocar las capas en diferentes proyectos. Esto proporciona un poco más de motivación para mantener las capas separadas, hablar a través de las interfaces y evitar las dependencias circulares entre las capas (los proyectos no pueden depender entre sí!)

A menudo presento un proyecto especializado que contiene todas las bibliotecas y recursos para el toda la aplicación. Tal vez otro que solo se usa para compilar y desplegar la aplicación (los scripts de construcción ant/maven, la definición del producto en el caso de las aplicaciones RCP). Y finalmente, piense en definir todos los casos de prueba en proyectos separados. La prueba a veces necesita bibliotecas especiales y archivos de recursos (configuraciones de logger, volcados de bases de datos con datos de prueba) y esos archivos no deben mezclarse con los archivos de configuración y libs de las aplicaciones.

Cuestiones relacionadas