Trabajo en una empresa donde tenemos muchas habilidades diferentes en el equipo de desarrollo.
Hacemos todo lo siguiente (generalmente orientado a la web):
- .NET (MVC, Umbraco, ASP.NET, Surface)
- Java (Spring, Hibernate, Android)
- PHP (Zend, encendedor de código)
- Actionscript 3
- AIRE
- C objetivo
- HTML / Javascript (obviamente)
Estamos tratando de racionalizar nuestro proceso de desarrollo.
Actualmente tenemos un servidor TeamCity que construye e implementa proyectos .NET con msbuild / msdeploy / nant.
Lo que quiero es algo así como Maven que nos dará una estructura de plantilla de proyecto estándar que funcione para la mayoría de los proyectos para permitir que personas de diferentes equipos se muevan fácilmente entre proyectos.
Actualmente, esto funciona en una plataforma porque tendemos a hacer cosas de manera estándar para esa plataforma (siempre y cuando ciertas personas hayan estado involucradas), sin embargo, quiero usar algo como Maven para estandarizar cómo se diseña y construye un proyecto.
¿Alguien ha intentado algo como esto antes? ¿Experiencias? ¿Libros?
Respuestas:
En cuanto a .NET, hay tres proyectos para portar Maven. Vea esta respuesta en stackoverflow.com. También este artículo wiki podría ser útil.
En cuanto a los otros idiomas, sugiero aplicar la misma estructura que admite Maven (todas las fuentes a continuación
src/language/main
, etc.) y luego escribir complementos de Maven para construirlos o al menos escribir plantillas genéricas "Makefile" que admitan esta estructura de forma inmediata.fuente
Actualmente empleamos varios lenguajes en nuestro proyecto: C ++, Java, Ruby, Perl, OCaml, Shell, PHP y JavaScript. Y no tenemos ningún problema para soportarlos a todos. Porque cada componente tiene su propia estructura y diseño de directorio . La compilación está pegada con simples Makefiles recursivos procesados por GNU make. A veces llaman a otros sistemas de compilación, si es necesario (por ejemplo, invocan la Ant de Java para compilar el código Java). Si estos sistemas de compilación están vinculados a un diseño específico, no hay problema, porque cada componente tiene su propio diseño, y podría ajustarse para cumplir con los requisitos del sistema de compilación.
La idea clave era mantener cada componente separado de los demás. Dentro de su directorio, simplemente almacenamos los archivos, ya que pensamos que sería útil para este componente en particular. No tenemos grandes blobs como
src/
directorios que contienen, por ejemplo, todo el código para un idioma. De esta manera, no tuvimos ningún problema con la edición de código en diferentes componentes.fuente