¿Normas para leer el código en voz alta?

12

¿Alguien ha definido un estándar para leer el código en voz alta, para cualquier idioma? Me imagino que esto es importante para un software como lectores de pantalla para personas con problemas de visión. Este tipo de cosas también surgen cuando estás discutiendo el código con alguien, revisándolo en un grupo o enseñando una clase.

En la familia de idiomas C, hay muchas palabras con pronunciaciones "obvias". Algunas son simplemente palabras en inglés: for , break , case , default , etc. Algunas abreviaturas, como int , son inequívocas. Y luego está char .

Siempre tiendo a decirlo (y lo escucho en mi cabeza) como la primera sílaba de "carbón". Me sorprendió la primera vez que hablaba de código con alguien que lo pronunciaba como "auto", lo que en realidad tiene más sentido porque char es realmente una abreviatura de la palabra "carácter", por lo que claramente debería ser pronunciada mismo. Pero incluso sabiendo eso, el char-as-in-coal se siente más correcto para mí.

Y luego hay declaraciones como foo = bar ? *(++baz) : zardoz .

¿Alguien ha producido un documento que dicte la forma correcta (en su opinión) de cómo leer el código en voz alta? ¿Ya sea para un idioma específico o quizás un código en general?

    
pregunta benzado 05.07.2011 - 20:58

4 respuestas

16

Cobertura rápida: lea este gran artículo en Coding Horror

Siempre que estoy discutiendo el código por teléfono, nunca lo leo literalmente. Tienes que "compilarlo" en humanos, y si todavía hay confusión en el otro extremo de la línea, puedes avanzar hacia una lectura más literal. Por ejemplo, leí tu ejemplo como

  

"Si la barra es verdadera, incremente el puntero baz y asigne el valor a esa dirección   a foo De lo contrario, establece foo en zardoz ".

He sido teletrabajador a tiempo completo desde mediados de los 90, por lo que prácticamente todas mis interacciones con mis colegas han sido por teléfono u otros medios indirectos. Muy a menudo estamos compartiendo una sesión de pantalla (terminal) o VNC (X). Además de la camaradería habitual, pasamos todo el día hablando de código, diseño, planificación, etc.

Cuando hablamos de código, utilizamos una jerga que está profundamente relacionada con el tipo de proyecto que se está trabajando. Una de las (muchas) razones por las que un nuevo miembro del grupo se vuelve completamente funcional es porque esencialmente están aprendiendo un nuevo idioma cada vez que se unen a un nuevo departamento / empresa.

Como dije anteriormente, y como han dicho otros, tratamos de hablar a un nivel tan alto como sea apropiado para cualquier discusión. Pero a veces, solo tienes que decirle a alguien: "Escribe esto"

¿Cómo lo dices? Bueno, podríamos simplemente dar una enumeración como ...

~  tilde
'  backtick
'  single quote
"  quote (or double quote)
/  slash, \ is backslash
#  pound or hash
!  bang (or exclamation mark)
@  at
$  dollar
%  percent or mod
^  caret or xor
&  and or bitwise and
&& and or logical and
|  pipe or 'or' or bitwise or
|| 'or'
*  value of, times, glob, multiplied by
() parens, open paren, close paren
{} braces, curlies, open stash, close stash
[] brackets, square brackets, at & sub (for subscript) (for C-ish arrays)
...

Así es como "nosotros" decimos estos personajes. Para tener una idea de todo el rango de decir "#", eche un vistazo a la página wiki para #

Así que hay demasiada variabilidad. Tiene que ser específico para el idioma en el que estás codificando (del mismo modo que escribo esto en inglés para nuestra comunicación humana).

Sin el contexto del lenguaje, tendrías que volver constantemente a la ortografía carácter por carácter. Así que la mayoría de las personas que conozco recurren a lo que sea que el estándar del idioma llama cosas.

SELECT COUNT(*) INTO x FROM ...   (SQL)
X IS Y + 1                        (Prolog)
(setq x 40)                       (Emacs lisp)
/def x 40                         (PostScript)
x = 40                            (C)
$x = 40                           (Perl)

Cada uno de estos estaría implícito simplemente diciendo "Establecer X en ..." dentro del contexto apropiado. No incluso empiece a leer qué código se lee como "es la cadena X igual a la cadena Y".

Si dices "hash bang bin bash" o "shebang bash", casi todos sabrán que eso significa "#! / bin / bash". Si no lo hacen, dirán "¿Eh?", Y lo rebajarán un poco "En la parte superior del archivo: signo de libra, signo de exclamación, barra diagonal, barra, barra, bash, nueva línea". Si aún no lo entienden, vuelve a bajar el paso: "¿Ves ese teclado que tienes delante? ¿Ves la tecla" 3 "? Esa marca en la parte superior cuando presionas la tecla shift es un signo de libra, eso". / p>

Línea inferior:

respondido por el unpythonic 05.07.2011 - 21:41
3

Nunca me he topado con ningún estándar para hablar la sintaxis del lenguaje en voz alta. He encontrado pequeños fragmentos de código en los que alguien ha expresado su preferencia personal, por ejemplo, refiriéndose a "#! / Bin / sh" como "Hash-bang slash bin slash SH" en lugar de "pound exclamación forward-slash BIN forward-slash SH "el último podría asumir que el oyente está menos familiarizado con el constructo.

También existe una gran disparidad en cuanto a la cantidad de idiomas que se pueden leer en voz alta. Tomemos, por ejemplo, las diferencias entre Python, que tienden a ser más fáciles de hablar en voz alta frente a decir Perl, que requiere que digas mucha puntuación o traduzcas de "$ var [20]" a "el vigésimo elemento de array var".

Mi propia experiencia es que es muy contextual en función de la razón por la que necesito leer el código en voz alta, el nivel de conocimiento del oyente y el idioma en cuestión.

En el caso de las revisiones de código, es más probable que explique una afirmación que intente leerla en voz alta, ya que generalmente es más importante transmitir el significado o el proceso de reflexión que solo leer el código en bruto a los oyentes (s). ).

Cuando intento que alguien escriba una línea exacta de código C en un editor (por ejemplo, estoy mirando por encima del hombro de un programador junior y veo cómo corregir una línea de su código), a menudo termino Hablar código en palabras clave y símbolos como "si espacio abierto-paren nulo es igual a p cerca-paren ..." Ese mismo intercambio con un desarrollador más avanzado podría comenzar más como "necesita verificar que p sea nulo aquí ... "

    
respondido por el John Gaines Jr. 05.07.2011 - 22:56
1

Hablar sobre el código es uno de esos momentos en que el pseudocódigo se vuelve extremadamente a la mano.

Si alguien comienza a darme el código por el personaje, entonces le pediré que me lo envíe por correo electrónico y le haré saber lo que pienso.

    
respondido por el user29981 05.07.2011 - 23:00
0

Respuesta corta

Lo más cercano a una guía de pronunciación estándar parece ser la entrada para "ASCII" en el Diccionario de hackers (también conocido como The Jargon File ). Contiene una tabla derivada de la "revisión 2.3 de la guía de pronunciación ASCII de Usenet" que ya no es fácil de encontrar en línea. Hay un hilo de discusión relevante, " ¡Nombre ese carácter! " en comp.misc in Mayo-junio de 1991, que acredita a Maarten Litmath por mantener el documento original. El hilo señala que los nombres "más inteligentes" como "Donald Duck" para "&" se omitieron en el documento más reciente.

    
respondido por el benzado 06.07.2011 - 18:59

Lea otras preguntas en las etiquetas