¿Es este espacio incómodo algún tipo de estilo?

9

Al leer otro código de programador, usa un formato que nunca he visto. P.EJ

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

Lo admito ... este código me enoja. Es difícil lograr este estilo. Hay que luchar contra el formato predeterminado proporcionado por el estudio visual IDE.

Podría tragarme esta píldora un poco más fácil si supiera que hay una buena razón para este estilo. ¿Este estilo proviene de algún otro lenguaje de programación / IDE?

P.Brian.Mackey
fuente
55
Eso es simplemente extraño. En mis 18 años de desarrollo, nunca he visto esa convención.
17 de 26 de
55
Si tuviera que adivinar, diría que el programador es un converso de Python que está un poco molesto por necesitar llaves y está acostumbrado a sangrar todas las sub-fichas de sintaxis.
Telastyn
21
CTRL K + CTRL D!
RYFN
2
@Zeus - ¡Oh, Dios mío, eso me va a ahorrar mucho tiempo resolviendo este formato poco convencional! Deberías obtener algunos puntos de respuesta para eso.
P.Brian.Mackey
1
Ese acceso directo de reformateo (Ctrl K + Ctrl D) también funciona en archivos HTML y otros formatos en Visual Studio.
Oded

Respuestas:

19

Sí: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

El estilo Whitesmiths, también llamado estilo Wishart en menor medida, es menos común hoy ... Fue utilizado originalmente en la documentación para el primer compilador comercial de C, el compilador Whitesmiths . También fue popular en los primeros días de Windows, ya que se usó en tres influyentes libros de programación de Windows, Programmer's Guide to Windows de Durant, Carlson & Yao, Programming Windows by Petzold y Windows 3.0 Power Programming Techniques de Norton & Yao. .

Este estilo coloca la llave asociada con una instrucción de control en la siguiente línea, sangrada. Las declaraciones dentro de las llaves están sangradas al mismo nivel que las llaves ...

Las ventajas de este estilo son similares a las del estilo Allman en que los bloques están claramente separados de las declaraciones de control. Sin embargo, con el estilo Whitesmiths, el bloque todavía está conectado visualmente a su declaración de control en lugar de verse como un bloque de código no relacionado rodeado de espacios en blanco. Otra ventaja es que la alineación de las llaves con el bloque enfatiza el hecho de que todo el bloque es conceptualmente (así como programáticamente) una sola declaración compuesta. Además, sangrar las llaves enfatiza que están subordinadas a la declaración de control.

Una desventaja sugerida de este estilo es que la llave final ya no se alinea con la declaración a la que pertenece conceptualmente. Sin embargo, la llave de cierre pertenece a la llave de apertura y no a la declaración de control ...

Sin embargo, es una que nunca he visto practicada, gracias a la UIP.

Eclipse tiene un estilo de código Whitesmith integrado para c ++ ... puede que te jodan Java, ya que se supone que todos deben usar el mismo estilo en ese idioma.

Edward extraño
fuente
44
¿Qué significa "agradecer a la UIP"? Google no me lo dirá ...
amara
44
Invisible Pink Unicorn. en.wikipedia.org/wiki/Invisible_Pink_Unicorn
Scott C Wilson
El estilo de Whitesmiths no incluye pestañas al final de una línea. Las pestañas en cualquier lugar, excepto al comienzo de una línea, son malvadas y necesitan ser asesinadas con fuego.
tdammers
6

Si bien el estilo de codificación de su colega es extraño, feo y difícil de leer:

  1. Si no tiene estándares de codificación, su formato es tan válido como cualquiera.

  2. si reformatea su código cada vez que toca un archivo escrito por ellos, le resultará muy difícil rastrear los cambios: si realiza una diferencia utilizando su VCS, muchas, si no todas, las líneas de código habrán cambiado.

Es por eso que debe tener estándares de codificación, hace que sea más fácil para todos saber lo que deberían estar haciendo y más fácil justificar el reformateo si no se han apegado a él.

Si todavía trabajan en su empresa, ¿ha intentado hablar con ellos al respecto?

mward
fuente
Esta persona se fue hace mucho tiempo por mi tiempo. Ahora, seguimos las pautas de diseño de Microsoft Framework.
P.Brian.Mackey
99
En ese caso, recomiendo registrar el reformateo del código como un registro separado (por ejemplo, Ctrl K + Ctrl D) antes de hacer cambios (para hacer que ese cambio específico sea más fácil de rastrear).
Brian