Cómo garantizar un único estándar de codificación en .NET con soporte de herramientas

14

Probablemente, la situación básica es familiar para todos. Ha acordado ciertos estándares de codificación en su equipo y ahora es el momento de asegurarse de que todos los sigan.

Algunos lo hacen a través de una gran programación en pares, otros mantienen una lista de estándares de codificación y hacen una revisión manual. Otros incluso usan la herramienta de análisis de código estático de Visual Studio para asegurarse de que se cumplan los estándares de codificación.

¿Cuáles son sus mejores prácticas para garantizar los estándares de codificación? ¿Qué herramientas utilizas? ¿Hay algunas herramientas esenciales que todo desarrollador debería conocer? ¿Cómo integra la estandarización de su código en sus herramientas de desarrollo?

Stefan Papp
fuente

Respuestas:

15

StyleCop (ahora también StyleCop for Resharper) se usa comúnmente para aplicar reglas de estilo de codificación dentro de las bases de código C #.

Se puede integrar en su compilación de CI y causar fallas de compilación si se han introducido infracciones.

Oded
fuente
¿Alguna información más sobre cómo usarlo? Me gustaría ejecutar una comprobación de estilo antes de cada confirmación. Entonces necesito cli para ello. Hay alguna. No pude encontrar ninguna información relevante.
FreeLightman el
1
Esto podría ayudar blog.submain.com/stylecop-detailed-guide
z-boss
@R. - si solo uno pudiera personalizar las reglas de StyleCop. Oh, espera ...
Falleció el
@R. - También puedes escribir tus propias reglas.
Oded
6

Primero, asegúrese de tener un servidor de compilación adecuado que compile continuamente su código. TFS o Jenkins / Hudson + Msbuild son buenas opciones. En este servidor de compilación, por supuesto, ejecuta pruebas y también puede ejecutar análisis de código estático y verificadores de sintaxis.

Recomiendo usar FxCop o Gendarme para el análisis de código estático. Ambos se pueden usar uno al lado del otro.

Una clave importante para el éxito: no los implemente con un conjunto de reglas masivo y espere que funcione bien. Tendrás millones de advertencias y a nadie le importará.

Las reglas generales son:

  • Siempre tenga cero advertencias. Reduzca el conjunto de controles inicialmente si es necesario, luego agregue algunos controles nuevos cada sprint y corríjalos. Asegúrese de que cada verificación realizada tenga un valor real para usted y sea consistente con sus estándares.

  • Si tiene reglas específicas de dominio que debe cumplir, no tenga miedo de implementar sus propias reglas.

Para la verificación de sintaxis, use StyleCop o StyleCop para Resharper si está usando Resharper (que también recomiendo).

Anders Forsgren
fuente
2

StyleCop y FxCop son mis herramientas livianas que recuerdan los estilos de código a mis desarrolladores. Resharper también es bueno, pero hace que VS sea muy lento.

yo recomiendo FxCop debido a su rica biblioteca de reglas, con excelente documentación, clasificaciones, ejemplos y muchas otras características.

También hay disponible la extensión StyleCop Fixer para Visual Studio, que ayuda a corregir errores comunes.

La métrica del código también se ve afectada a veces por los estilos de código. Puede controlar la mantenibilidad de los códigos con esta herramienta.

Reza Owliaei
fuente
2

Me gustaría enfatizar que el análisis automático de código ya mencionado (FxCop, StyleCopy, compilaciones de CI, etc.) funcione primero, en lugar de las revisiones manuales. Las comprobaciones automáticas recogerán muchas más cosas de las que es probable que lo haga una revisión manual, y normalmente son mucho más rigurosas, consistentes y se documentan por sí mismas. Las revisiones manuales pueden ser buenas para decisiones de diseño de más alto nivel, etc., pero en mi experiencia pueden ser muy subjetivas y al azar.

Polyfun
fuente
0

NDepend se puede usar para aplicar varios estándares de codificación en una base de código .NET. Tiene alrededor de 200 reglas de código predeterminadas que se pueden examinar aquí . También es fácil personalizar las reglas existentes o crear sus propias reglas ya que con NDepend una regla es solo una consulta C # LINQ .

Descargo de responsabilidad: trabajo para NDepend

Patrick Smacchia - NDepend dev
fuente