2008-11-13 34 views
15

Me gusta el análisis de código estático StyleCop y la aplicación de reglas. Sin embargo, falta mucho en varios departamentos clave.¿Alternativa a StyleCop para Visual Studio?

  • Agregar nuevas reglas no es oficialmente compatible y por lo que oigo es bastante difícil.
  • ¡La "fijación" automática de violaciones de reglas triviales sería agradable! Tal vez no con nombres variables, pero con el orden de los métodos (estáticos, etc.) esto sería un gran ahorro de tiempo.
  • El enfoque de Microsofts "talla única" para StyleCop es un poco restrictivo. Me gustaría tener un conjunto personalizado de reglas para nuestros estándares internos.

¿Hay un producto comercial por ahí?

alt text http://blogs.interakting.co.uk/images/blogs_interakting_co_uk/dominicz/WindowsLiveWriter/MicrosoftStyleCopSourcecodeanalysisforfo_D8EF/styleCopErrors_6.gif

+0

Hay un proyecto llamado StyleFix que intentará corregir algunos de los errores de forma automática. Está poco documentado y solo funciona en VS2008. Tomé la fuente y la modifiqué para integrar StyleCop directamente en el programa y hacer las correcciones. (Y compilado en VS2005) –

+0

CodeIt.Right, CodeMaid para nombrar dos. – nawfal

Respuesta

12

Adición de reglas es, o va a ser, officially supported:

Según lo prometido, sino que también será la liberación documentación de SDK para StyleCop explicando cómo al autor encargo reglas y cómo integrar la herramienta en entornos de compilación personalizados. La documentación del SDK se encuentra actualmente en la revisión final y esperamos lanzarla muy pronto . - JasonAll

En cuanto a nuestro estilo "interno", que tiene muy cerca mediante la desactivación de un puñado de reglas StyleCop:

  • cabeceras de los archivos (SA1633-SA-1640)
  • código de pedido (SA1200-SA1202)
  • Exigir "este" (SA1101)

Usted puede hacer esto a nivel mundial mediante la modificación del Conjunto tings.StyleCop file en el directorio de instalación, aunque he tomado el enfoque de poner uno en la raíz de nuestro árbol fuente en cada proyecto.

El efecto final es mucho lo que queremos.Hay un puñado de opciones "internas" que sería bueno marcar, pero incluso sin ellas, StyleCop nos está brindando un gran valor.

+0

Esas son las mismas reglas que actualmente tengo desactivadas también. En general, realmente me gusta. Sería bueno si Microsoft hizo StyleCop un poco más pulido. La integración permanente en Visual Studio tiene sentido para mí con algo como esto. – mmcdole

+0

Lo único que realmente me frustra es la falta de soporte de línea de comandos, lo que dificulta la integración de StyleCop en mis compilaciones. Terminé escribiendo mi propio front end (http://www.nichesoftware.co.nz/content/stylecop-cmd) – Bevan

2

A menudo escribo pruebas unitarias para reflejar mis tipos y verificar las violaciones de mis reglas personalizadas.

He aquí un ejemplo de verificar que ciertos tipos son inmutables: http://blogs.msdn.com/kevinpilchbisson/archive/2007/11/20/enforcing-immutability-in-code.aspx

Aquí hay otro, para las reglas sobre el nombramiento de prueba de unidad: http://jbazuzicode.blogspot.com/2008/11/keeping-test-fixture-and-class-names.html

EDIT: El segundo enlace parece estar perdido a las arenas del tiempo .

+0

Su segundo enlace está roto. – Erik

6

StyleCop for ReSharper podría ayudar (que había necesidad de comprar ReSharper, pero el plug-in es gratis):

StyleCop para ReSharper es ahora cuentan con completa en lo que se ha alcanzado la paridad de funciones con StyleCop 4.3 .

Hay 148 reglas de StyleCop.

  • 38 de éstos debe fijarse de forma manual (normalmente debido a que tiene que escribir un texto descriptivo o cambiar el nombre de las variables).
  • De las 110 reglas restantes, 58 están corregidas por R # Code Cleanup (modo silencioso ).
  • De los 52 que quedan ahora tenemos reglas de limpieza de código que arreglan todos los automáticamente.

También proporcionamos 106 soluciones rápidas que proporcionan en arreglos de menú lugar de contexto para violaciónes de las 110 reglas que se pueden fijar de forma automática

También enviamos una "amigable ReSharper Código del estilo Sharing StyleCop Archivo de configuración "que configura ReSharper para formatear automáticamente el código de una manera amigable con StyleCop.

3

Una alternativa o un buen complemento a StyleCop sería utilizar la herramienta comercial NDepend. Con esta herramienta uno puede escribir Regla de código sobre consultas LINQ(namely CQLinq). responsabilidad: yo soy uno de los desarrolladores de la herramienta

Más de 200 code rules son propuestos por defecto, estos incluyen diseño, arquitectura, la calidad del código, código de evolución, convenciones de nomenclatura, código muerto, el uso .NET Fx ...

CQLinq se dedicó a escribir las reglas de código que pueden ser verified live in Visual Studio, o que puede ser verified during build process and reported in an HTML/javascript report.

La fuerza de CQLinq sobre StyleCop o incluso FxCop, es que es sencillo escribir una regla de código de, y obtener de inmediato resultados. Se proponen instalaciones para buscar elementos de código coincidentes. Concretamente, esto se parece a lo siguiente:

CQLinq code rule