He estado comenzando una aplicación cliente-servidor. Al principio, naturalmente, creé dos proyectos en Eclipse, dos repositorios de control de fuente, etc. Pero rápidamente veo que hay un poco de código compartido entre los dos que probablemente se beneficiaría al compartir (en el mismo proyecto o en una biblioteca compartida)) en lugar de copiar.¿Debería escribirse el código cliente-servidor en un "proyecto" o dos?
Además, he estado aprendiendo y probando el desarrollo basado en pruebas, y me parece que sería más fácil probarlo en base a componentes reales del cliente en lugar de tener que configurar una gran cantidad de código solo para simular algo, cuando el código es, probablemente, en su mayoría en el cliente. En este caso, parece tener el cliente y el servidor juntos, en un proyecto, separados por paquetes raíz (org.myapp.client. * Y org.myapp.server. , quizás org.myapp.shared. también).
Mi mayor preocupación en la fusión del cliente y servidor, sin embargo, es de seguridad; ¿Cómo me aseguro de que las partes del código del servidor no lleguen a la computadora de un usuario? Cuando Eclipse empaqueta un JAR, tengo que elegir los bits específicos del servidor y espero no perder ninguno, ¿verdad?
Así que especialmente si está escribiendo aplicaciones cliente-servidor usted mismo (y especialmente en Java, aunque esto puede convertirse en una pregunta independiente del idioma si desea compartir su experiencia con esto en otros idiomas), ¿qué tipo de separación ¿se guarda entre su cliente y el código del servidor? ¿Están en diferentes paquetes/espacios de nombres o binarios completamente diferentes utilizando bibliotecas compartidas, o algo completamente diferente? ¿Cómo se prueba el código y se envía por separado?
No conocía los módulos de Maven hasta ahora. Voy a intentarlo y realmente se ve prometedor. ¡Gracias por la sugerencia! Es de esperar que Hudson juegue bien con el diseño del módulo también; ¿Tienes alguna experiencia con Hudson y proyectos de múltiples módulos? – Ricket
No. Todavía no he usado Hudson con un proyecto de varios módulos. Sospecho que funcionará bien, pero eso es todo lo que he conseguido. –
Además, puede configurar los submódulos Cliente y Servidor para que dependan e incluyan el módulo Común, por lo que solo debe entregar dos artefactos. –