大声读出代码的标准?


12

有没有人为任何语言定义一种标准来大声朗读代码?我认为这对于视力受损的屏幕阅读器之类的软件很重要。当您与某人讨论代码,在小组中复习代码或讲课时,也会出现这种情况。

在C语言家族中,有许多单词的发音很“明显”。有的只是英文单词:forbreakcasedefault,等一些缩写,比如int,是明确。然后是char

我总是倾向于像第一个“木炭”音节那样说(并在脑海中听到)。第一次与发音像“汽车”的人谈论代码时,这让我很不高兴,这实际上更有意义,因为它实际上char是“字符”一词的缩写,因此很明显,它应该发音相同。但是即使知道这一点,炭烧煤对我来说更合适。

然后有类似的声明foo = bar ? *(++baz) : zardoz

有没有人生产过一份文件,规定了正确的阅读方式(以他们的观点)?使用特定语言还是一般代码?


9
大声朗读Perl ... <痛苦>
Rook

4
出于好奇,您为什么要大声阅读代码?我想我从未做到过
Vitor Py

1
这对于在上下班期间指定程序也很有用。幸运的是,作为一个Delphi程序,我只能表现出极高的优雅感。
彼得·特纳

2
@Peter:出于好奇,您如何发音:=
梅森惠勒

2
@Mason幸运的是,冒号等于
Peter Turner

Answers:


15

快速套装:在Coding Horror上阅读这篇精彩的文章

每当我通过电话讨论代码时,我都不会字面看。您必须将其“编译”为人类,并且如果在该行的另一端仍然存在混乱,则可以朝着更文字的方向发展。例如,我将您的示例读为

“如果bar为true,则增加baz指针并将该地址处的值分配给foo。否则将foo设置为zardoz。”

自90年代中期以来,我一直是一个全职的通勤者,所以实际上我与同事的所有交流都是通过电话或其他间接方式进行的。我们经常共享一个屏幕(终端)或VNC(X)会话。除了常规的友情之外,我们整天都在谈论代码,设计,计划等。

在谈论代码时,我们使用与正在处理的项目类型紧密相关的行话。一个新的小组成员要花很多时间才能完全发挥职能的(许多)原​​因之一是,因为他们每次加入新的部门/公司实际上都是在学习一种新的语言。

就像我在上面所说的那样,正如其他人所说的那样,我们试图以适合任何讨论的最高水平进行讨论。但是有时候,您真的必须对某人说:“输入此内容”

怎么说呢 好吧,我们可以像这样列举一下...

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

这就是“我们”怎么说这些字符的方式。要了解说“#”的整个范围,请查看Wiki页面上的“#”

因此存在太多可变性。它必须特定于您所使用的语言(就像我为人类交流用英语输入时一样)。

如果没有语言环境,您将不得不不断地将字符拼写转换为字符。因此,我认识的大多数人都会回到语言标准所称的事物上。

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)

在适当的上下文中,只需说“将X设置为...”即可隐含每个。甚至不让我开始读什么代码,即“字符串X等于字符串Y”。

如果您说“ hash bang bin bash”或“ shebang bash”,几乎每个人都会知道这意味着“#!/ bin / bash”。如果没有,他们会说“嗯?”,然后将其降低一个档次“在文件顶部:磅符号,感叹号,斜杠,bin,斜杠,bash,换行符”。如果他们仍然听不到,您可以再次降低它:“看到您前面的键盘吗?看到“ 3”键?按下Shift时顶部的那个标记是英镑符号。”

底线:


我同意。我几乎从来没有阅读过“逐字逐句”的代码,而只是解释它在做什么。

1
您的目标是解释发生了什么事还是让他们逐字记录下来?
工作

1
@Job-如果您实际上是在阅读代码,而不仅仅是解释模块,类,块,子等,那么您需要一定程度的特异性。但是我永远不会尝试用舌头打字。只要想想大声告诉某人的电子邮件地址或电话号码有多困难。如果确实要逐个拼写出来,那么它完全取决于您的听众。如果必须将波浪号称为“波浪状”,那就这样吧。
2011年

马克,我同意您所写的内容(意思通常是字面上的准确性),但这并没有真正解决我的问题,这实际上是关于就诸如所谓的a #或a之类的问题达成共识的过程!。您甚至都没有说过为什么要通过电话讨论代码。既然您的选票最多,您能再充实您的答案吗?
benzado 2011年

我已经接受了您的回答,因为除了花时间更新它之外,您还链接到Jeff Atwood的博客,该博客又链接到《新黑客字典》中的“ ASCII”条目,这几乎是一回事我在寻找。谢谢!
benzado 2011年

3

我从未遇到过任何大声说出语言语法的标准。我遇到过一些小片段,其中有人表达了自己的个人喜好,例如将“#!/ bin / sh”称为“哈希爆炸斜杠bin斜杠SH”,而不是“磅感叹号正斜杠BIN正斜杠SH”稍后可能会假设侦听器对结构不太熟悉。

大声读出不同语言的数量也存在很大差异。例如,Python之间的区别通常比较容易说出来,而Python与Perl之间的区别通常要求您说很多标点符号或将其从“ $ var [20]”转换为“数组var的第二十个元素”。

我自己的经验是,它是基于上下文的,这取决于我需要大声阅读代码的原因,收听者的知识水平和所使用的语言。

在代码审查的情况下,比起大声读出来,我更有可能解释一条语句,因为通读含义或思考过程通常比将原始代码读给侦听器更为重要。

当我试图让某人在编辑器中键入确切的C代码行时(例如,我看着初级程序员的肩膀,看看如何修复他们的代码行),我常常最终讲出一些代码在关键字和符号中,例如“ if space open-paren null double-equals p close-paren ...”,与更高级的开发人员进行相同的互换可能更像是“您需要在此处检查p是否为null ... ”


1

谈论代码是伪代码变得极为方便的那些时代之一。

如果有人开始按角色给我代码,那么我会告诉他们通过电子邮件将其发送给我,然后让他们知道我的想法。


0

简短答案

与标准发音指南最接近的东西似乎是《黑客词典》(又名“行话档案”)中“ ASCII”的条目。它包含一个源自“ Usenet ASCII发音指南的修订版2.3”的表,该表不再可以在网上轻松找到。1991年5月至6月,有一个相关的讨论主题“ 命名这个字符!comp.misc,该主题归功于Maarten Litmath维护原始文档。该线程指出,较新的文档中省略了“聪明的人”名称,例如“&”的“ Donald Duck”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.