¿Los comentarios en primera persona distraen y no son profesionales?

63

Acabo de encontrarme escribiendo el siguiente comentario en algún código (arcaico de Visual Basic 6.0) que estaba escribiendo:

If WindowState <> 1 Then
    'The form's not minimized, so we can resize it safely
    '...
End if

No estoy seguro de por qué inconscientemente uso "nosotros" en mis comentarios. Sospecho que es porque me imagino a alguien leyendo el código, como si realmente estuvieran "haciendo" todos los comandos en cada línea, en lugar de solo verlos suceder. Con esta mentalidad, podría haberlo usado I can resize it, ya que soy yo quien lo "hace" actualmente o you can resize it, como si estuviera hablando con quien lo "haga" en el futuro, pero dado que ambos casos probablemente sucede, yo uso "nosotros" como si estuviera guiando a otra persona a través de mi código.

Simplemente puedo reescribirlo it can be resizedy evitar el problema, pero ha despertado mi curiosidad: ¿es común usar a la primera persona como esta en los comentarios, o se considera que distrae y / o no es profesional?

Dan Rasmussen
fuente
1
¿Comentarios para el voto negativo? Esta es mi primera pregunta de Programmers.SE, y todavía estoy tratando de descubrir exactamente qué es lo que hace una buena pregunta de P.SE versus una buena pregunta de SO.
dlras2
2
No te rechacé, pero podría suponer que no les gustó la pregunta del título, ya que las respuestas a ella podrían ser fácilmente breves, habladoras y excesivamente dadas a una opinión sin respaldo. Reescribir eso para que se parezca más a su pregunta final podría ayudar.
DKnight
56
Me gusta el "nosotros". Es amigable e inclusivo de una manera saludable y campechana.
Jeremy
25
Creo que voy a comenzar a comentar todas las correcciones de errores en las que trabajo en tercera persona omnisciente, debería hacerme popular en la oficina ... "Poco sabía John que su adición mal diseñada siempre omitiría este código, dejando a los usuarios perplejos por el campo de visualización perpetuamente vacío ... "
DKnight
44
Es todo lo que puedo hacer para asegurarme de que mis comentarios no tengan errores tipográficos. ¿Ahora debo preocuparme por si se debe usar o no la voz pasiva? A continuación, tendré que asegurarme de no colgar ninguna preposición; imagino que es algo que mis colegas no pueden soportar. Y supongo que nunca se me permitirá usar un infinitivo dividido. Fragmentos de oraciones?
Michael Burr

Respuestas:

103

Los comentarios deben ser escritos para que los seres humanos los entiendan. Cuando los seres humanos se comunican, generalmente usamos "yo", "nosotros", "usted", etc.

Cuando alguien intenta comprender algún código, hay dos o más actores: la persona que lo lee y el autor original del código. Decir "nosotros" está bien. A menos que sea "profesional", quiere decir "robot".

whatsisname
fuente
3
+1 ya que escribir de esta manera lo alienta a considerar al lector potencial y eso realmente puede ayudarlo a ver los conceptos que podrían necesitar una mejor explicación.
Justin Ohms
64
// we approve of this answer:)
Jarrod Dixon
3
+1 y una amplificación: por el contrario, las construcciones de voz pasiva como "se puede cambiar el tamaño" se rechazan por escrito en general, ya que nos resulta difícil de entender. Si usa voz pasiva, obliga a su lector a inventar y recordar un tema para la oración.
msw
1
@msw: ¿no debería ser 'rechazamos las construcciones de voz pasiva como "se puede cambiar el tamaño" ... entonces?
tdammers
2
@msw, en ruso, por ejemplo, las construcciones de voz pasiva son más comunes y se entienden más fácilmente debido a algunas diferencias culturales. (¡Y no, no escribí esa oración en voz pasiva a propósito!)
P Shved
22

Sugeriría mantenerse alejado de usar 'I' porque automáticamente asume toda la responsabilidad del código. Si otras personas lo están leyendo, se vería mal porque está destinado a ser un esfuerzo de equipo en este caso. Soy indiferente sobre el uso de 'nosotros'. Sin embargo, puede parecer que incluye a otros lectores de manera no genuina.

Mi voto sigue siendo breve y conciso. Si el mensaje se puede transmitir de una manera menos detallada, ¿por qué elegir algo más? Entonces, con respecto a este ejemplo, escribiría:

'The form is not minimized so it can be resized safely.
Jonathan Khoo
fuente
44
"Si el mensaje se puede transmitir de una manera menos detallada, ¿por qué elegir algo más?" Como alguien que ha tenido que golpearse la cabeza contra la pared tratando de implementar las bibliotecas mal documentadas de alguien, las bibliotecas de código abierto son notorias por esto, digo que preferiría tener demasiados comentarios que muy pocos. Sin embargo, creo que estoy de acuerdo contigo si te refieres a usar buenas oraciones con la puntuación correcta que tenga sentido.
Jonathan Henson
3
+1 por no asumir toda la responsabilidad en un entorno de equipo. Y aunque estoy de acuerdo en tratar de evitar los comentarios detallados, a veces el tiempo pasivo puede ser aún más difícil de leer (como señaló jkj) y no menos detallado, y prefiero evitar la ofuscación. =]
dlras2
2
@ Jonathan Henson: Muchos comentarios son buenos, pero solo si contienen mucha información útil. Si la misma cantidad de información se puede expresar de dos maneras equivalentes, la más corta es mejor.
tdammers
Mi consejo es evitar usar la voz pasiva. Es más difícil de entender, especialmente para los hablantes de inglés no nativos.
Ville Laurikari
18

Tomo uno de dos enfoques, generalmente lo que suena mejor.

Al explicar cosas como los requisitos o la justificación, voy con "nosotros" tal como lo tienes allí:

// We can't proceed unless the user has given us this information.

Si estoy explicando el proceso, tiendo a usar una voz imperativa (comando) (corríjame si ese es el término incorrecto):

// Get the foo from bar and make sure it follows our required format.

Este último puede acercarse peligrosamente a repetir el código, pero hay usos. Por lo tanto, no está utilizando I o we, sino que en realidad implica "usted".

Tesserex
fuente
Este es exactamente mi estilo también. Ambas formas que describe tienen su lugar.
zourtney
99
Este último también tiene "nuestro". Me parece interesante que las personas escriban naturalmente comentarios en primera persona del plural.
Reid
@Reid wow, sí, eso fue solo instinto, ni siquiera me di cuenta. Pero podría haber dicho fácilmente "el".
Tesserex
8

Creo que es solo una variación del estilo de escritura académico / técnico, que a menudo es impersonal. Usando la voz pasiva, usando el "real nosotros" ("uno" está muy anticuado).

Como regla general, no es específico quién lo usará de todos modos: el comentario es para beneficio de los mantenedores, no solo para el autor original.

Dicho esto, yo uso primera persona con bastante frecuencia en los comentarios - para explicar por qué he tomado decisiones particulares, y lo que yo estaba pensando.

Steve314
fuente
3
Personalmente no creo que "uno" esté anticuado. Sí, es de uso menos común, porque no es algo que uno usa de vez en cuando. Sin embargo, hay pocas posibilidades de que el uso de "uno" en el sentido de un comentario sea ilegible o disminuya la usabilidad.
Billy ONeal
7

Los comentarios deben decirle por qué se está haciendo algo, no qué se está haciendo. Si lo que se está haciendo no es obvio en el código, corríjalo, no solo agregue un comentario. La primera persona, la segunda persona, etc. no importan, lo que importa es comunicar la información necesaria.

Si debe narrar el código, prefiera los imperativos, p. Ej.

'ensure that the window is not minimized
If WindowState <> 1 Then
    'resize the window
    '...
End if

(Y no use constantes desnudas como "1" en el código)

Steven A. Lowe
fuente
3
+1 por preferir imperativo, no había pensado en eso. Además, sí, no debería haber usado el desnudo 1. Por lo general, soy bastante bueno con eso ... Déjame que publique una de las pocas veces que se me pasó por la cabeza en Internet.
dlras2
6

¿Tal vez nos estamos refiriendo a los pequeños dentro del programa que hacen que la magia suceda? :)

La voz pasiva en inglés es difícil de usar y suena mal. A la gente le gusta usar formularios de persona (yo, tú, nosotros, uno).

Ejemplo:

(Usted / nosotros / uno debe) usar un delegado para pasar eventos de cambio de tamaño de ventana a padre

Se debe usar un delegado para pasar eventos de cambio de tamaño de ventana a padre

Otro ejemplo (tenga en cuenta que a menudo puede omitir los formularios de persona en los comentarios):

(Nosotros) atrapamos una excepción. (Estaremos) mostrando un diálogo de error.

Se detectó una excepción y se mostrará un cuadro de diálogo de error.

PD. Reemplazar el pasivo con "usted" es tan común en el idioma inglés que también comenzó a filtrarse a otros idiomas. Suena extremadamente divertido, por ejemplo, en finlandés, donde existe la segunda forma singular de la persona (como el inglés "you").

jkj
fuente
Creo que lingüísticamente esto no es correcto. El primero es el imperativo, no tiene un tema. "Por favor cierra la puerta." Si bien significa aproximadamente lo mismo que "por favor, ¿puedes cerrar la puerta?" Es una forma gramatical distinta, no una abreviatura. En el segundo ejemplo, también podría decir "(Ha) detectado una excepción. (Será) mostrando un diálogo de error".
Inca
3

Si está hablando de la ejecución del programa, no se trata de "nosotros", "usted" o "yo". El antropomorfismo puede estar tan extendido como para pasar desapercibido, pero es un hábito peligroso (Advertencia de PDF. Advertencia de Dijkstra):

Creo que el antropomorfismo es lo peor de todo. Ahora he visto programas "tratando de hacer cosas", "queriendo hacer cosas", "creyendo que las cosas son verdaderas", "sabiendo cosas", etc. No seas tan ingenuo como para creer que este uso del lenguaje es inofensivo. Invita al programador a identificarse con la ejecución del programa y casi le impone el uso de la semántica operativa.

jaybee
fuente
2
Dijkstra Advertencia! Si solo más cosas tuvieran uno :(
Tom Anderson
No creo que escribir comentarios en plural en primera persona sea un antropomorfismo. Creo que implica: "Ahora le ordenamos a la computadora que ...", como si el programador que escribe el comentario guíe al lector a través de su código.
Blujay
2

No creo que ni la primera persona ni el "real nosotros" parezcamos poco profesionales o que nos distraigan. Creo que deberíamos hacer un esfuerzo para escribir comentarios en inglés en E-Prime , el subconjunto de inglés que no posee el verbo "ser".

Si usa demasiado "to be" en los comentarios, obtendrá declaraciones confusas como:

// X is 10
// X is the user data of the newly-authenticated user
// X is a BigInt

Bueno, tal vez no todo de una vez, pero la cuestión de la igualdad realmente puede hacer que los comentarios no sean claros.

Creo que los requisitos de escritura en E-Prime ayudan a aclarar esos requisitos, ya que el escritor debe indicar un actor junto con la acción.

Bruce Ediger
fuente
Noción interesante ¿Cómo expresaría las nociones de "X debe ser al menos 5" o "Y no debe ser mayor que 23"?
supercat
@supercat - "El valor de X debe tener una magnitud de 5 o mayor". "El valor de Y no debe exceder 23". Igualdad, lógica o aritmética, tampoco debe usar el verbo "ser". "X debe contener 5", o "X se evalúa a 5" o "X tiene el valor 5" o algo así. Si te encuentras con un comentario particularmente poco claro, busca los verbos "ser". Apuesto a que el comentario poco claro usa verbos pero "ser" verbos. También tenga en cuenta que escribí la respuesta anterior en E-Prime.
Bruce Ediger
El segundo está bien; el primero no tanto, ya que -6 tiene una magnitud de 5 o mayor.
supercat
@supercat: muy bien. "X debe tener un valor entero con signo de 5 o mayor". En los Estados Unidos, llamaríamos a su "magnitud" "valor absoluto", lo que refuerza mi punto de describir el valor de una variable, no la variable como valor, que surge de la es-de-igualdad.
Bruce Ediger
2

El estilo correcto para comentar es la tercera persona impersonal; " El formulario no está minimizado, por lo que puede redimensionarse de forma segura ".

  • Soy ingenuo
  • Eres grosero.
  • Somos demasiado formales (y reales).

Cada oración se puede reformular de esta manera (ver arriba) y es la única forma profesional de escribir.

revs usuario23157
fuente
11
-1 porque: no hay una forma correcta, encuentro su resumen de I / You / We un poco fuera de contacto y no entiendo la última parte. Aparte: cuando digo "nosotros" en mis comentarios, no estoy tratando de hablar como un rey, te estoy hablando a ti, el tipo que lee mi código, y te guía a través de mis pensamientos uno al lado del otro.
doppelgreener
2

Depende del comentario.

Por lo general, escribo comentarios de la manera sugerida por The Mouth of a Cow . También siempre escribo comentarios generadores de documentación (Doxygen, JavaDoc) de esta manera.

Sin embargo, muchas veces descuidan el uso del control de versiones para identificar quién escribió / tocó líneas en los archivos fuente. Hay momentos en que decir "yo" es apropiado, especialmente cuando es bastante fácil rastrear el "yo" a la persona que escribió el código. Si usted, como individuo, tomó una decisión, le recomiendo usar "I" (junto con el control de versiones) para identificar y rastrear decisiones en línea con el código.

Thomas Owens
fuente
+1 para Doxygen y JavaDoc. Estoy de acuerdo en que la documentación es distinta de los comentarios (aunque algunos comentarios generan documentación) y hago todo lo posible para mantener dicha documentación un paso más formal que mi comentario.
dlras2
1

Mi buen padre (mhrip) preguntaba: "¿No tienes cosas más importantes con las que preocuparte?"

Sin embargo, personalmente, me gusta el "nosotros". Y también me pregunto por qué escribimos en documentos anteriores, ni siquiera en código, considerando que soy el único empleado en mi empresa.

Sin embargo, yo y yo estamos de acuerdo en que de esta manera nos sentimos menos solos :)

usuario18254
fuente
1

¿Soy el único que escribe "nosotros" y piensa "yo y la computadora" (o "mi equipo y la computadora")? "Nosotros" vamos a manejar la solicitud que nos dio el exterior, lo que significa que "necesitamos" leer la solicitud, abrir algunas ventanas, hacer algunos cálculos, en función de "nuestros" requisitos comerciales. Esto también ayuda a ver el código como parte de tu lado, no como el enemigo :-)

Jan Fabry
fuente
0

Para comentarios breves, a veces escribo en segunda persona, como si estuviera instruyendo a otra persona, casi como un mensaje dirigido al siguiente desarrollador para leer el comentario. Como

//You can get a session_id from SYSSession.getSessionID() if you need one

Comentarios más largos (como un encabezado de función largo o varias líneas de descripción del algoritmo) Trato de mantenerme neutral, sin primera persona, segunda persona o tercera persona.

FrustratedWithFormsDesigner
fuente
El inglés pasivo rara vez suena bien: "Se puede obtener un session_id de SYSSession.getSessionID () si es necesario"
jkj
0

Agregaste este comentario porque el código no era lo suficientemente claro. Generalmente encuentro que expresar la intención a través de métodos bien definidos evita el uso de comentarios. Por ejemplo, esa línea de podría haberse movido a un método llamado CanThisFormBeResized.

Un método bien nombrado, por pequeño que sea, supera un comentario, porque es fácil que los comentarios y el código no estén sincronizados.

Entonces, si la mayoría de los comentarios se pueden expresar en código, eso deja muy pocas razones para los comentarios

  • Si su comentario es su opinión, comience con "I"
  • Si cree que su comentario debería ser una opinión compartida (por ejemplo, una mejor práctica), comience con "nosotros"
  • Si su comentario está dirigido a un código dudoso escrito por un poco ingenioso, deseche el comentario y camine y golpee el código confuso de un colega, luego diríjalo cara a cara con ellos.
Steve Dunn
fuente
1
Lo siento, pero en realidad no soy fanático de este estilo. Especialmente porque este código se usa una vez, en un solo lugar, y ya es lo único en el método de cambio de tamaño. Prefiero un comentario breve y bien redactado a una mayor complejidad mediante la refactorización, especialmente cuando se trabaja con el depurador VB6. Como un aparte, CanThisFormBeResizedprobablemente debería ser ThisFormCanBeResizedsi se va a usar como If ThisFormCanBeResized Then.
dlras2
1
Eso es preferencia. Tomo un método booleano privado como function() { return this.windowState != 1 }sobre cualquier comentario. +1 de mi parte
keppla
1
@ Dan, ¿qué pasa si alguien más viene más tarde: por qué hacer que busquen y vuelvan a descifrar la lógica para determinar si se puede minimizar una ventana? Es posible que ni siquiera vean su pequeña línea de código con un comentario y agreguen la suya. Ahora tiene 2 lugares que deben cambiarse si la lógica cambia y 2 lugares donde los comentarios podrían no estar sincronizados con el código. ¿Por qué un método de 1 línea bien nombrado (que no cambia de estado) agrega complejidad? Es la refactorización más simple y más limpia que existe.
Steve Dunn el
0

Como regla general yo sugeriría utilizar la primera persona, es decir, I.

¿Por qué? No por la naturaleza posesiva del yo, sino porque cuando las personas hablan desde cualquier otra perspectiva, tienden a usar demasiadas palabras o hacen oraciones demasiado complejas, y se pierden al tratar de explicar las cosas. La primera persona tiende a ser siempre más fácil de leer.

Stephen Bailey
fuente
0

Personalmente escribiría (en C #):

if (WindowState != WindowState.Minimised)
{
     ResizeWindowSafely();
}

O algo por el estilo, por lo que no necesita los comentarios.

Dot Net Pro UK
fuente
ResizeWindowSafelyimplicaría que se puede llamar si no sabe si cambiar el tamaño o no, y por lo tanto necesitaría incluirse if (WindowState != WindowState.Minimised).
dlras2