Gestión de código arquitectónico reutilizable

Nuestro código está en Java y Javascript (bibliotecas AJAX). Tenemos envoltorios / código reutilizable alnetworkingedor de las bibliotecas existentes para realizar tareas mundanas como, conexiones db, gestión de sesiones, logging, configuration de hibernación, estructura base, algún código multiusuario reutilizable, etc. Desde el final de JavaScript, tenemos inicializadores de página, componentes de layout de interfaz de usuario , objects js personalizados y algo de nuestra propia lógica.

Tenemos varios proyectos donde este código puede ser reutilizado, pero al mismo time, este código está evolucionando junto con la aplicación. Entonces, si encontramos una forma común de hacerlo, podemos moverlo al código de marco y permitir que otros proyectos también se beneficien de él. Si / cuando encontramos una falla en el código base, podemos arreglarlo en un lugar y comprometernos y todos los demás proyectos recogerán el cambio (en lugar de que todos hagan los cambios localmente).

Si solo se trata de files java, podemos mantenerlo como un proyecto separado e includelo como un module dependiente en eclipse / maven y tenerlo incluido como jar, cuando sea necesario. Esta parte es fácil de manejar, pero ahora también tenemos javascript reutilizable en el código, que no puede ser exactamente jar (ed). Queremos algunas sugerencias sobre cómo se debe diseñar el código, para que podamos reutilizarlo a través de maven (time de implementación) y a través de eclipse (time de desarrollo), sin pasar por demasiados aros.

Antes de escribir esto, me encontré con algunos artículos sobre stackoverflow, que hablan sobre códigos reutilizables y metodologías que son geniales, pero no cómo administrarlas usando svn, maven, eclipse, etc.

Vincularlos, para reference.

  • Arquitectura de algún código reutilizable
  • ¿Cómo haces código reutilizable? -> Este es un gran artículo desde un punto de vista teórico, pero no hay consejos sobre gestión.
  • ¿Cómo puedo indexar y poner a disposition un código reutilizable?

En algunos de nuestros proyectos anteriores, mantuvimos files ant, que copyrían los files desde las ubicaciones base hasta la guerra final, para que todo esté disponible. Pero a medida que el proyecto crecía, incluso para un simple control, tuvimos que rebuild toda la guerra y desplegar para probar en la máquina de desarrollo. Lo cual le quitó 5 minutos cada vez.

Entonces, la pregunta es, ¿hay algún patrón de repository, ideas de layout de proyecto eclipse, styles de empaquetado, que puedan ayudarnos a resolver este problema?

Sugeriría usar un marco web java orientado a componentes para tales tareas. Wicket viene a la mente inmediatamente. (Pero JSF, Tapestry, etc. funcionarán igual de bien)

En wicket, todo es un componente y los componentes se pueden empaquetar con comportamientos (que pueden include javascript, css, etc.)

Entonces tendrías un proyecto de commons en el que mantienes java y código javascript reutilizables.

Los beneficios son obvios, es más o less exactamente lo que ha estado pidiendo. Los inconvenientes, por otro lado, son principalmente que el contenido de javascript y css se encuentra dentro de sus jarrones y será servido por el server de aplicaciones en lugar de un server web estático o CDN.

Sean