Aunque ningún método en particular puede estar desprovista de inconvenientes, aquí es lo que usamos
carpeta para el núcleo de la aplicación o modelo. Esto incluye las subcarpetas para las bibliotecas de terceros utilizadas y las carpetas para las clases de modelo especializado . Por ejemplo, habría una carpeta para el manejo del servicio web.
Carpeta para un módulo importante que incluiría subcarpetas para cada pantalla que contiene los archivos de clase, puntas y recursos (esto puede incluir más sub-carpetas de acuerdo a la necesidad).
carpeta para el segundo módulo mayor y así sucesivamente ..
Este modelo nos sirve un propósito importante. Nuestro núcleo de aplicaciones contiene cosas como el registro, el cifrado/descifrado de datos, etc. Por lo tanto, es muy poco probable que se modifique para muchas aplicaciones que desarrollamos. Del mismo modo, habría algunas aplicaciones que necesitarían la funcionalidad del módulo principal uno y agregar algunas otras cosas. Por lo tanto, estos tres grupos de carpetas se mantienen como repositorios separados en la subversión.
Ahora cuando comenzamos un nuevo proyecto, creamos un nuevo repositorio para el proyecto y lo vinculamos con el repositorio central de la aplicación y otros repositorios de módulos principales según la necesidad. Por lo tanto, cualquier cambio realizado en el núcleo de la aplicación por parte de un equipo de proyecto se refleja también en otros proyectos. Lo mismo con otros módulos principales. Esto también nos ayuda a lograr una modularidad completa.
Por supuesto que habría desventajas en este esquema, pero este esquema nos ha venido bien desde hace muchos años :)