Pregunta

Mi intención en esta cuestión no es ser pedante, pero en lugar de explorar un eje pasa por alto de un tema importante ( el uso de espacios en blanco ). Gran parte del debate y la atención se ha puesto en el uso de los espacios en blanco horizontal, después de una sangría condicional, un espacio entre un caso y el paréntesis, etc. De hecho, el tema se considera que es tan importante y polémico que, no sólo las hacen algunas empresas tienen reglas y normas para ello, pero algunas compañías incluso tienen reglas que lo prohíba de discusión.

¿Por qué es, teniendo en cuenta el estado de los espacios en blanco horizontal, que la discusión de los espacios en blanco vertical es un tema tan muerto? ¿Por qué es el x más importante que el y ? Hace unos días me di cuenta de que cuando la lectura del código, que, sin pensarlo, a menudo ajustar agrupaciones verticales de declaraciones. Tener código de otros pueblos leer ahora, con la vista puesta en el espacio en blanco vertical, me di cuenta de varios patrones, por lo que pido stackoverflow:

  • ¿Qué reglas duras y blandas Cómo se aplica a los espacios en blanco vertical?
  • ¿Hay usos de espacios en blanco verticales que generalmente se consideran muy mala o muy buena práctica?
  • ¿Has encontrado código de lectura con "correcta" espacios en blanco verticales ayudó en la comprensión de que?
  • ¿Hay alguien que no sea tipógrafos y me importa?
¿Fue útil?

Solución

Miro espacio vertical en el código de la manera en que veo los párrafos de prosa escrita. Del mismo modo que un párrafo está destinado a agrupar frases que tienen un punto o una idea común, las líneas que están relacionados deben agruparse.

El objetivo general es mejorar la legibilidad del código. Del mismo modo que un artículo sin ningún párrafos sería difícil de leer, por lo que es de código sin ningún espacio vertical. Y al igual que con la prosa, hay un equilibrio entre la composición de los párrafos que son demasiado cortos o demasiado largos. Pero al final, que en su mayoría se reduce a estilo y preferencias personales.

Otros consejos

Creo que una de las cosas más importantes es agrupar un paso lógico en conjunto, como por ejemplo:

foo.setBar(1);
foo.setBar2(2);
foo.writeToDatabase();

bar.setBar(1)
bar.setBaz(2);
bar.writeToDatabase();

De este modo, el código es más fácil de leer, y es más descriptivo, al menos para mí.

Si un grupo de instrucciones es lógicamente relacionada, le doy una línea en blanco antes y después. Esta separación ayuda si necesito refactorearlo a cabo en una función más adelante.

En cuanto a las líneas en blanco dobles:. Si algo distinta es que, realmente debería considerar la posibilidad de que una función

Si un comentario es aplicable a varias líneas de código, entonces puse un espacio en blanco después de la última de esas líneas, a menos que no hay otra sintaxis para romper las cosas (como el final de un bloque).

En cualquier lugar que estoy haciendo "algo" que tiene varias líneas de código, seguido inmediatamente por "algo más", entonces voy bien abstracta en funciones separadas o también los comentarios lugar [*]. Así líneas de código, generalmente, terminan agrupados en bloques cortos, excepto cuando el control de flujo hace que sea (en mi opinión) explica por sí mismo.

Yo me importa un poco de espacio en blanco, pero en realidad es los comentarios que me importa más. Si unas pocas líneas de código en conjunto hacen alguna cosa específica, y no lo han llevado a cabo como una función, entonces me gustaría ver una descripción Inglés de lo que lo es. De esa manera puedo ver que los "pasos" de la función realmente se suman al resultado correcto, entonces mira a ver que cada paso hace lo que pretende hacer.

En las clases, a veces me pongo un espacio en blanco entre los métodos / funciones miembro, ya veces no lo hacen. En C ++ puse espacio en blanco antes especificadores de acceso.

pongo un espacio en blanco entre las clases, (a veces no para las clases internas anónimas en Java) y entre las funciones fuera de las clases.

Aparte de eso, mi código es bastante densa verticalmente. No se suele utilizar múltiples líneas en blanco, incluso cuando la separación de secciones de un archivo de cabecera y similares. Yo prefiero blankline-commentline-blankline en lugar de blankline-blankline, incluso si el commentline termina siendo algo completamente banal como "funciones de ayuda". No me gusta estilos que tienen un enorme espacio en blanco vertical entre las funciones - si están tan separados que no quiere verlos tanto en la pantalla al mismo tiempo, yo diría que o bien se les pusiera en diversos archivos o llenar el vacío con Doxygen / comentarios Javadoc.

[*] En la versión que el registro. Me suelo escribir código más o menos sin comentarios, a continuación, compilar, ejecutar pruebas rápidas, comentar que, ejecutar pruebas apropiadas, cometerlo. Que a menudo cambia un poco, ya veces mucho. Por ejemplo, si estoy de codificación de un algoritmo que se define con precisión de antemano, o para una especificación en la puesta en práctica es "evidente", podría escribir los comentarios en primer lugar y luego el código.

Se ha sabido durante décadas que la capacidad de un programador para entender el código está generalmente limitado por la cantidad de la misma que puede ver a la vez. (Véase, por ejemplo Weinberg, "Psicología de la Programación", un viejo, pero-de sorpresas.) En los viejos tiempos de los listados de papel, los programadores agarrar tablas de gran tamaño y se extendió varias páginas de anuncios. Hoy en día, espacio en pantalla es algo mejor que los días de 24x80, pero todavía tienden a minimizar el uso de espacio en blanco vertical, ya que una gran cantidad de líneas en blanco ocupan espacio en la pantalla que podría ser yo mostrando código real.

Desde luego, importa y tienden a código de grupo adecuada (al menos para los ojos) con líneas en blanco en su caso. A menudo esto significa muchas líneas en blanco pero en general considero que el código sea más legible que con todo lo apiñados. Al igual que los espacios alrededor de operadores son una cosa muy agradable también lo son las líneas en blanco alrededor de los estados agrupados lógicamente.

Más de una sola línea en blanco a la vez se ve un poco fuera de lugar, sin embargo.

Me resulta difícil de leer si el código está espaciado irregular verticalmente. Yo incluso ir tan lejos como para eliminar los frenos no es necesario, o si se trata de bloques cortos, tales como condiciones ni Fors, lo coloca en la misma línea.

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