c# tfs tfs2010 checkin

c# - Política de registro de TFS-Mejores prácticas



tfs2010 checkin (3)

¿Existen prácticas recomendadas para hacer cumplir una política de registro de TFS? ¿Hay buenas guías sobre cómo implementar varios tipos de políticas, así como sus ventajas y desventajas?

Las cosas que me gustaría hacer en particular son garantizar que se compile el código (tenga en cuenta que la compilación puede demorar hasta cinco minutos) y que se siguen los bits obvios de los estándares de codificación (deben existir etiquetas de resumen, se deben seguir las convenciones de denominación, etc.).


Creo que la premisa de esta pregunta es algo errónea. Creo que una buena pregunta de esta naturaleza debería ser algo como: mi equipo tiene un problema con la estabilidad del código, los conjuntos de cambios en conflicto, los desarrolladores que no están ejecutando las pruebas, la cobertura deficiente u otros informes de métricas a la administración y nos gustaría usar TFS para ayudar a resolver esos (esos) problemas. Sí, me doy cuenta de que el OP declaró que asegurar la compilación se considera un objetivo, pero eso es parte de un servidor de compilación automatizado.

Cuestionaría cualquier característica que agregue fricción al ciclo de trabajo de un desarrollador sin un propósito claramente articulado. Aunque nunca los he usado, los registros cerrados suenan como una característica en busca de un problema. Si la estabilidad de su base de código afecta la productividad del desarrollador y no puede arreglarlo cambiando la composición de su software, la estructura de su equipo de desarrollo o una mejor estrategia de ramificación, entonces supongo que es una solución. Trabajé en una gran tienda en un proyecto global en el que ClearCase era la herramienta obligatoria y me encontré con ese tipo de fallas inducidas por la empresa, pero el equipo en el que trabajé no fue allí de manera tranquila o voluntaria.

La política ideal es no tener uno. Deje que los desarrolladores trabajen sin inhibiciones y con la menor fricción posible. Las revisiones de código hacen mucho más que un conjunto de reglas impuestas por un servidor sin alma alguna vez. Un equipo que admita las pruebas y que esté bien estructurado hará más por la estabilidad de lo que lograría un check-in cerrado. Las herramientas que admiten sucursales y los registros locales facilitan que los desarrolladores prueben cosas nuevas sin temor a romper la construcción, lo que ayudará a mitigar el tipo de deuda técnica que mata a los grandes proyectos.


Debe consultar el capítulo 8 de "Patrones y prácticas: desarrollo en equipo con Visual Studio Team Foundation Server"

http://tfsguide.codeplex.com/


TFS 2010 (y 2008 pero no he usado 2008) permite un registro cerrado, lo que obliga a una compilación antes de que se registre la compilación.

Activar esto es un proceso (razonablemente) sencillo, consulte, por ejemplo, estas guías: http://blogs.msdn.com/b/patcarna/archive/2009/06/29/an-introduction-to-gated-check-in.aspx http://intovsts.net/2010/04/18/the-gated-check-in-build-in-tfs2010/

Hay un paso antes de todo esto que se requiere para que todo esto suceda. Eso es una configuración de servidor de compilación TFS. Esto puede ser un proceso complejo según la infraestructura, etc. Aquí hay una guía de MSDN: http://msdn.microsoft.com/en-us/library/ms181712.aspx

Las ventajas son que el código en el repositorio puede ser razonablemente estable. Para un equipo grande esto puede ahorrar MUCHO tiempo.

Hay muchos inconvenientes que vale la pena considerar para este beneficio. En primer lugar, la instalación y el mantenimiento de un servidor de compilación adicional. Esto incluye la asignación de espacio en disco, parches, etc. En segundo lugar, el tiempo adicional requerido para que cada persona ingrese un archivo. Esperar a que una compilación tenga éxito antes de que se ingrese el código (y esté disponible para que otros lo obtengan) puede ser un tiempo. En tercer lugar, cuando (no si) el servidor de compilación no está disponible, debe existir un plan de contingencia para que los desarrolladores puedan continuar con su trabajo.

Hay una gran cantidad de procesos adicionales necesarios para cosechar las recompensas de los registros cerrados. Sin embargo, si este proceso se rige correctamente, puede llevar a un ciclo de desarrollo mucho más suave.

Aunque no utilizamos los controles cerrados, sí utilizamos un servidor de compilación TFS para la integración continua para hacer compilaciones programadas. Esto minimiza la dependencia minuto a minuto en el servidor de compilación al tiempo que garantiza (con una efectividad razonable) que después de que se rompe una compilación, se nos notifica y puede rectificarla lo antes posible. Este método permite a los desarrolladores comprender la integración del código y cómo evitar que se rompa el código en el repositorio.