Standard per leggere il codice ad alta voce?

12

Qualcuno ha definito uno standard per leggere il codice ad alta voce, per qualsiasi lingua? Immagino che questo sia importante per software come lettori di schermo per ipovedenti. Questo genere di cose emerge anche quando stai discutendo di codice con qualcuno, rivedendolo in un gruppo o insegnando un corso.

Nella famiglia di lingue C, ci sono molte parole con pronunce "ovvie". Alcuni sono semplicemente parole inglesi: for , break , case , default , ecc. Alcune abbreviazioni, come int , non sono ambigue. E poi c'è char .

Tendo sempre a dirlo (e lo sento nella mia testa) come la prima sillaba di "carboncino". La prima volta che stavo parlando di codice con qualcuno che l'ha pronunciato come "auto" mi è sembrato sconvolgente, il che in realtà ha più senso perché char è in realtà un'abbreviazione della parola "personaggio", quindi chiaramente dovrebbe essere pronunciato il stesso. Ma anche sapendolo, char-as-in-carbon mi sembra più giusto.

E poi ci sono dichiarazioni come foo = bar ? *(++baz) : zardoz .

Qualcuno ha mai prodotto un documento che stabiliva il modo corretto (secondo loro) come leggere il codice ad alta voce? O per una lingua specifica o forse per il codice in generale?

    
posta benzado 05.07.2011 - 20:58
fonte

4 risposte

16

Tuta rapida: leggi questo fantastico articolo su Coding Horror

Ogni volta che sto discutendo di codice per telefono, non l'ho mai letto letteralmente. Devi "compilarlo" all'essere umano, e se c'è ancora confusione dall'altra parte della linea, puoi passare a una lettura più letterale. Ad esempio, leggerei il tuo esempio come

"If bar is true, increment the baz pointer and assign the value at that address to foo. Otherwise set foo to zardoz."

Sono stato un telelavoratore a tempo pieno dalla metà degli anni '90, quindi praticamente tutte le mie interazioni con i miei colleghi sono state al telefono o altri mezzi indiretti. Molto spesso condividiamo una sessione (terminale) o VNC (X). Oltre al normale cameratismo, passiamo tutto il giorno a parlare di codice, progettazione, pianificazione, ecc.

Quando parliamo di codice, usiamo il gergo che è profondamente legato al tipo di progetto in lavorazione. Una delle (molte) ragioni per cui un nuovo membro del gruppo impiega così tanto tempo a diventare pienamente funzionale è perché essenzialmente imparano una nuova lingua ogni volta che si uniscono a un nuovo dipartimento / azienda.

Come ho detto sopra, e come altri hanno detto, cerchiamo di parlare al livello più alto che sia appropriato per qualsiasi discussione. Ma a volte, devi solo dire a qualcuno: "Digita questo"

Come si dice? Bene, potremmo semplicemente dare un'enumerazione come ...

~  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)
...

Questo è solo il modo in cui "noi" diciamo questi personaggi. Per avere un'idea dell'intera gamma di dire "#" dai un'occhiata a la pagina wiki per #

Quindi c'è troppa variabilità. Deve essere specifico per la lingua in cui stai codificando (proprio come sto scrivendo in inglese per la nostra comunicazione umana).

Senza il contesto del linguaggio dovresti costantemente tornare all'identità di carattere per carattere. Quindi la maggior parte delle persone che conosco sono ricondotte a qualunque sia lo standard della lingua che chiama le cose.

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)

Ciascuno di questi sarebbe implicito semplicemente dicendo "Imposta X a ..." nel contesto appropriato. Non nemmeno fammi iniziare su quale codice viene letto come "è la stringa X uguale alla stringa Y".

Se dici "hash bang bin bash" o "shebang bash", quasi tutti sapranno che significa "#! / bin / bash". Se non lo fanno, diranno: "Eh?", E lo calpesti di una tacca "Nella parte superiore del file: segno cancelletto, punto esclamativo, barra, bin, barra, bash, newline". Se ancora non lo capiscono, lo fai ancora una volta: "Guarda quella tastiera di fronte a te? Guarda il tasto" 3 "? Quel segno in alto quando premi shift è un segno cancelletto, quello."

Bottom line:

  • non preoccuparti troppo, ti sbagli, tutti lo supereranno
  • è troppo specifico per esattamente quello che fai
  • porta sempre un asciugamano
  • leggi l'articolo su Coding Horror
risposta data 05.07.2011 - 21:41
fonte
3

Non ho mai incontrato standard per la sintassi del linguaggio parlante ad alta voce. Ho trovato piccoli frammenti in cui qualcuno ha espresso le proprie preferenze personali, ad esempio riferendosi a "#! / Bin / sh" come "Hash-bang slash bin slash SH" invece di "sterlina esclamativo forward-slash BIN forward-slash SH "il più tardi potrebbe assumere che l'ascoltatore abbia meno familiarità con il costrutto.

C'è anche una grande disparità nella quantità in cui diverse lingue sono leggibili ad alta voce. Prendiamo ad esempio le differenze tra Python che tende ad essere più facile da pronunciare a voce alta, diciamo Perl che richiede di dire molta punteggiatura o di tradurre da "$ var [20]" a "il ventesimo elemento di array var".

La mia esperienza personale è che è molto contestuale in base al motivo per cui ho bisogno di leggere il codice ad alta voce, il livello di conoscenza dell'ascoltatore e della lingua in questione.

Nel caso delle revisioni del codice sono più propenso a spiegare un'affermazione piuttosto che cercare di leggerla ad alta voce poiché di solito è più importante ottenere il significato o il processo di pensiero oltre che leggere il codice grezzo per l'ascoltatore ).

Quando cerco di convincere qualcuno a digitare una riga esatta di codice C in un editor (ad esempio, sto controllando la spalla di un programmatore junior e vedo come correggere una riga del loro codice), spesso finisco parlare di parole chiave e simboli come "se spazio aperto-paren null doppio-uguale a p close-paren ..." Lo stesso interscambio con uno sviluppatore più anziano potrebbe iniziare più come "è necessario controllare che p sia null qui ... "

    
risposta data 05.07.2011 - 22:56
fonte
1

Parlare di codice è una di quelle volte in cui lo pseudo-codice diventa estremamente a portata di mano.

Se qualcuno inizia a darmi del codice da parte del personaggio, allora gli dirò semplicemente di mandarmelo via e io gli farò sapere cosa ne penso.

    
risposta data 05.07.2011 - 23:00
fonte
0

Risposta breve

La cosa più vicina a una guida di pronuncia standard sembra essere la voce per "ASCII" nel dizionario del pirata informatico (aka Il file di gergo ). Contiene una tabella derivata dalla "revisione 2.3 della guida alla pronuncia ASCII di Usenet" che non è più facilmente individuabile online. C'è una discussione pertinente, " Assegna un nome a quel personaggio! " su comp.misc in Maggio-giugno del 1991, che attribuisce a Maarten Litmath il mantenimento del documento originale. Il thread rileva che nomi "più intelligenti" come "Paperino" per "&" sono stati omessi dal nuovo documento.

    
risposta data 06.07.2011 - 18:59
fonte

Leggi altre domande sui tag