Espacio entre la línea-carácter (s) de comentario y el comienzo del comentario real


Me doy cuenta de que esta regla puede diferir de los estándares de codificación de una empresa a otra, pero en general, ¿cuál es el preferido?

  1. Con un espacio después de la línea-comment:

    int foo = Bar(quux + 1); // compensate for quux being off by 1
    
    foo = Bar(quux + 1) # compensate for quux being off by 1
    
  2. No hay espacio después de la línea comentario:

    int foo = Bar(quux + 1); //compensate for quux being off by 1
    
    foo = Bar(quux + 1) #compensate for quux being off by 1
    

No he podido encontrar nada en línea con respecto a este aspecto del estilo de codificación. Mi conjetura es que incluir un espacio es el estilo preferido para todos los idiomas, pero me gustaría algo de "evidencia sólida" para confirma o niega esto.


Hasta ahora parece que todo el mundo tiene evidencia anecdótica de que se prefiere usar un espacio. ¿Puede alguien señalarme en la dirección de algún estándar de codificación oficial o publicado que aborde directamente el tema del formato de comentarios y si se debe usar un espacio?
Author: jozxyqk, 2009-09-23

8 answers

La guía oficial de estilo de Python, PEP 8 , es muy clara sobre este tema:

Cada línea de un bloque el comentario comienza con un # y un solo espacio (a menos que esté indentado texto dentro del comentario).

Y:

En línea los comentarios deben estar separados por al menos dos espacios de la declaración. Deben comenzar con un # y un solo espacio.

Esto confirma la evidencia anecdótica de todos, pero creo que esta es la primera respuesta para citar "algunos estándares de codificación oficiales o publicados de otra manera" según lo solicitado;-).

 20
Author: Alex Martelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-05 00:27:36

He desarrollado software en muchos idiomas durante unos 10 años en proyectos grandes y pequeños. Todavía no he visto a nadie intencionalmente no usar un espacio. En el esquema de las cosas, realmente no importa mucho (después de todo, todos sabemos que son comentarios y podemos leerlos), pero creo que la versión sin espacio se parece al código comentado y requiere un milisegundo adicional de potencia cerebral para confirmar que es un comentario: -)

 27
Author: SingleShot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-23 16:19:55

En los últimos 24 años, he desarrollado y mantenido código profesionalmente en C, C++, Pascal, BASIC, Java, Perl, Objective C, Bourne shell, bash, csh, tcsh y assembly para 68K, PowerPC y x86. Durante este tiempo, he notado algunas cosas...

  1. Los comentarios con espacios iniciales son al menos 1000 veces más comunes que los comentarios sin espacios. La falta de espacios iniciales en los comentarios son a menudo errores tipográficos debido a la escritura apresurada.

  2. No recuerdo haber visto comentarios en código de ejemplo en un libro profesional o manual sin el espacio.

  3. Los únicos desarrolladores profesionales que he conocido que omiten rutinariamente el espacio principal en los comentarios crecieron usando un sistema de escritura ideográfica no occidental que no usa espacios.

  4. Nunca he visto un estilo oficial de codificación de la compañía que le diga a la gente que omita el espacio principal en los comentarios.

Así que en general, yo diría que la evidencia abrumadora es que un espacio después de la se prefiere el comentario de línea.

 19
Author: Bob Murphy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-30 05:14:21

Acabo de encontrar la regla SA1005 de StyleCop , que dice:

Una violación de esta regla ocurre cuando un el comentario de una sola línea no comienza con un solo espacio. Por ejemplo:

private void Method1()
{
  //A single-line comment.
  //   A single-line comment.
}

Los comentarios deben comenzar con un solo espacio después de las barras inclinadas:

private void Method1()
{
  // A single-line comment.
  // A single-line comment.
}

Dado que StyleCop es de una manera u otra un producto de Microsoft, yo diría que esto califica como un estándar de codificación oficial con respecto a los espacios en línea-comentarios.

 5
Author: Mark Rushakoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-24 19:49:57

Sobre todo evito tener comentarios al final de una línea de código, porque entonces los comentarios cuelgan al final y no son tan fáciles de analizar al escanear. Sin embargo, cuando tengo una buena razón, me gusta usar dos espacios para separar el código y los comentarios (luego un espacio después del marcador de comentarios). Solo hace que sea más fácil para el ojo...

Considere:

    int top;  // Index of the top of the stack.

Versus:

    int top; // Index of the top of the stack.

Subjetivamente, parece que dos espacios solo hacen que sea más fácil dividir lo que es código y lo que es ni.

 2
Author: Peter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-30 05:58:57

Bueno, he encontrado el estándar (según Wikipedia) para comentar en Java. Se supone que esto es "consistente con los estándares Javadoc de Sun Microsystems":

/**
 * Registers the text to display in a tool tip.   The text
 * displays when the cursor lingers over the component.
 * @param text  the string to display.  If the text is null, 
 *              the tool tip is turned off for this component.
 */

Así que estoy empezando a pensar que el estándar es un espacio. Además, todos los otros ejemplos tienen un espacio.

 2
Author: bennybdbc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-05 18:51:16

La Guía de estilos de Google C++ requiere dos espacios https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py#L3014 es decir, int foo = 1337 // bar

 0
Author: TimZaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-22 12:26:06

La Guía de estilo de Google Java Formateo sección requiere poner un espacio en ambos lados de un comentario:

4.6.2 Espacio en blanco horizontal

Más allá de lo requerido por el lenguaje u otras reglas de estilo, y aparte de literales, comentarios y Javadoc, un solo espacio ASCII también aparece solo en los siguientes lugares.

...

  1. A ambos lados de la barra doble (//) que comienza un comentario de fin de línea. Aqui, se permiten varios espacios, pero no son necesarios.
 0
Author: mkobit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-24 18:55:58