Configurando un gran sistema de software en Delphi

Tenemos un paquete de software que tiene aproximadamente 16 años. Ha pasado por casi todas las versiones de Delphi (además de .NET). Con los años, las cosas se han vuelto muy confusas cuando se trata de referencias cruzadas y mantenerapropiad configuración para paquetes adicionales (como bibliotecas de terceros). Me preguntaba si hay algunapráctica estánda cuando se trata de mantener grandes proyectos (y grupos de proyectos) como este organizados.

Para explicar la configuración actual ...

Este es un sistema de múltiples aplicaciones. Es decir, hay 12 proyectos ejecutables (y algunos proyectos de servicio y DLL) involucrados. También mantenemos cosas en SourceSafe y varios desarrolladores trabajan en el mismo código en diferentes computadoras. Todos estos proyectos están más o menos volcados en una carpeta central. La carpeta "Root" contieneE proyecto EXE principal (junto con unas 20 carpetas, todas con unidades y formularios) y casi parece una jerarquía interminable de carpetas y archivos. Este proyecto solo tiene medio millón de líneas de código involucradas.

Entonces, todas las aplicaciones adicionales no están necesariamente separadas adecuadamente de este gran proyecto. Cada uno de estos proyectos tiene su propia carpeta basada en la raíz del proyecto principal.

Las dos preocupaciones principales mías son:

¿Cómo configurar correctamente los archivos DCU para que no se mezclen con los proyectos? Las DCU NO deben colocarse en SourceSafe (y cualquier archivo similar, para el caso) o de lo contrario, cualquier archivo compilado del proyecto. Visual SourceSafe hace que los archivos sean de solo lectura cuando no están desprotegidos, y en este caso no se pueden escribir archivos DCU (y archivos EXE y más). Entonces, ¿cómo separar adecuadamente cualquiera de esos archivos en una ubicación remota para evitar cualquier mezcla con el código fuente? ¿Cómo configurar correctamente paquetes y bibliotecas? Tenemos lo siguiente:QuickReports 5.05NativeJpg library V302 - Otra biblioteca de informes anónimosNuestro propio paquete de componentes, que requiere QuickReports, NativeJpg y la otra biblioteca anónima

Las 4 bibliotecas se almacenan en lugares completamente diferentes de cada computadora y necesitan cierta centralización. El mayor dolor de configurar la computadora de cada nuevo desarrollador es localizarlos desde la computadora del desarrollador líder y copiarlos en el mismo lugar en la otra computadora (y asegurarse de que la ruta de la biblioteca sea correcta, etc.).

También necesitamos mantener entornos completamente separados para diferentes versiones de Delphi en la misma computadora. Esto significa una copia de los proyectos en cada computadora, una copia de paquetes y bibliotecas en cada computadora, una copia de los proyectos y paquetes y bibliotecas en SourceSafe, etc. Cada computadora debe tener una configuración idéntica. Ya utilizamos variables de entorno para dirigir nuestros proyectos hacia dónde buscar ciertos archivos de proyecto (y bibliotecas).

Otra nueva preocupación: XE2 presenta capacidades de 64 bits. No planeamos compilar 64 bitstodaví, pero ciertamente lo haremos en el futuro. ¿Cómo diferenciar correctamente 32 bits de 64 bits en todos estos proyectos?

Lo que realmente estoy pidiendo es una referencia a un buen tutorial sobre cómo optimizar dicho entorno y mantenerlo organizado de la mejor manera. No espero que nadie se tome el tiempo y responda todo esto en la pregunta. Los proyectos tienen más de 15 años, han contado con más de 200 desarrolladores de todo el mundo y tienen MUCHAS referencias cruzadas entre proyectos. Por ejemplo, un proyecto puede usar una unidad de otro proyecto, y viceversa. Personalmente no me gusta este concepto, pero tampoco lo diseñé para empezar. Me dieron la tarea de organizar este sistema y documentar a fondo cómo configurar Delphi en una nueva computadora para que los nuevos desarrolladores trabajen en nuestros proyectos. Mientras miro nuestros proyectos (ya que no soy necesariamente un desarrollador del sistema, pero estoy siendo arrastrado al desarrollo), veo mucha confusión sobre cómo está organizado el código.

¿Asumo que posiblemente Embarcadero tiene algunas pautas y estándares para establecer dicho entorno?

Respuestas a la pregunta(14)

Su respuesta a la pregunta