¿Cómo se resuelve la discrepancia entre & # 8220; StyleCop C # style & # 8221; y & # 8220; Directrices de diseño del marco C # style & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/426622

Pregunta

Después de pasar por el Apéndice A, "C # Convenciones de estilo de codificación" del gran libro "Marco de diseño de directrices" (2a edición de noviembre de 2008), estoy bastante confundido en cuanto a qué estilo de codificación utiliza Microsoft internamente / recomienda.

La entrada del blog Una breve historia De estilo C # afirma:

  

De hecho, las diferencias entre el estilo StyleCop " y el estilo "Directrices de diseño de marco" son relativamente menores

Según lo veo, las diferencias son bastante pronunciadas. StyleCop dice que la llave de apertura debe estar en una línea separada, las Directrices de diseño del marco dicen que debe estar después de la declaración de apertura. StyleCop dice que todas las palabras clave deben ir seguidas de un espacio, las Directrices de diseño del marco dicen 'deshacerse de todos los espacios' (incluso alrededor de operadores binarios).

Encuentro esta regla del libro de Pautas de diseño de marcos especialmente irónica (página 366, sexta regla desde arriba):

  

No use espacios antes de las declaraciones de control de flujo

Right: while(x==y)
Wrong: while (x == y)

Esto indica explícitamente que el estilo StyleCop es incorrecto (espacio después de la palabra clave while, espacios antes y después del operador binario de igualdad).

Al final, el código formateado con el estilo StyleCop tiene una "sensación" bastante diferente. del formato formateado con el estilo de Pautas de diseño de marco. Siguiendo el estilo de las Pautas de diseño del marco, uno tendría que deshabilitar un montón de reglas (Y no hay reglas que verifiquen la adherencia al estilo de las Pautas de diseño del marco ...).

¿Podría alguien (¿conocedores de MSFT quizás?) arrojar algo de luz sobre esta divergencia?

¿Cómo está lidiando su equipo con esto? Siguiendo StyleCop? Pautas de diseño del marco? ¿Ignorando el estilo por completo? ¿Horneando tu propio estilo?

¿Fue útil?

Solución

En un blog que leí sobre esto (parece que no puedo encontrar la url) se dijo: las pautas del marco se basan y evolucionaron a partir de la guía de C ++ (todos son desarrolladores experimentados de C ++), mientras que las pautas que stylecop proporciona son nuevas guías de C # más modernas ... Ambos están bien, tome una decisión usted mismo ... Yo personalmente uso los StyleCop

Otros consejos

Este artículo del equipo de stylecop explica exactamente lo que estás preguntando, creo. http://blogs.msdn.com /sourceanalysis/archive/2008/05/25/a-difference-of-style.aspx

Y para responder la segunda parte de su pregunta, nuestro equipo acaba de comenzar a usar StyleCop usando todas las reglas (algunas personas eligen y eligen cuáles usar). Lo único que no me gusta es el tiempo extra que lleva, pero usar una herramienta como StyleCopForResharper lo hace mucho más rápido. Solía ??molestarme mucho cuando la gente escribía un código que se veía diferente al que yo hubiera escrito, pero ahora que usamos StyleCop, el código de todos parece idéntico. No más morderse los labios sobre las cosas molestas que la gente hace

Usamos StyleCop para todo nuestro código, y aparte de algunos inconvenientes menores, creo que la mayoría de sus estándares conducen al código más legible. Muchos de sus estándares han sido ampliamente discutidos dentro de Microsoft, y han recibido comentarios de la comunidad, y aunque no se espera que todos estén de acuerdo con todo, probablemente sea el mejor 'estándar' que existe (particularmente porque permite validación y corrección automática con StyleCop para el complemento ReSharper).

Si hay algo con lo que no está de acuerdo, Jason Allor, que mantiene la herramienta, está bastante abierto a sugerencias sobre ciertas cosas, por ejemplo, con las propiedades automáticas StyleCop originalmente insistió en ...

public int Prop
{
    get;
    set;
}

... pero planteamos una solicitud de cambio para permitir propiedades de una sola línea (es decir, todo en una línea) ya que no es menos legible y ocupa menos espacio. Hizo este cambio en pocos días.

Tomas una decisión. Si le gustan algunas partes de una y algunas partes de la otra, escriba su propia guía de estilo. Si te gusta más que el otro, elígelo.

Lo esencial es elegir un estilo; no hay forma de evaluar uno sobre otro de una manera cuantitativa rigurosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top