关于语言不可知:非母语人士的程序员字典/词典

Programmers dictionary/lexicon for non native speakers

我不会讲英语,英语也不是很好。我有自己的想法。我没有在一个共同的代码库上与其他人一起工作。我没有朋友编程。我不与其他程序员一起工作(至少没有人关心这些事情)。

我想这可能解释了我在寻找好的明确的类名方面的一些问题。我试着找到一些"程序员词典",里面有一些常用词及其含义。当阅读其他代码时,我必须经常查找单词,因为许多人使用缩写,这就构成了一个额外的挑战。

我有限的词汇"迫使"我使用不好的类名,如xxmanager、xxprovider、xxwhatever。选择变量和方法名的问题通常比较少。

其他非英国人:你是怎么处理的?你学习英语这么好,这不是问题吗?或者你读过这么多代码命名是自然的吗?或者和说英语的人讨论了很多?找到好的网站、文章或其他出版物了吗?因为我从来没有读过关于用我自己的语言编程的任何东西,所以我在试图找到我的语言中的单词时经常遇到更多的问题…

附言:我发现的所有其他帖子都是关于混合母语和英语的…我知道这可能有点离题,可能会被关闭。

编辑:我使用的答案和其他资料中的一些资源:

  • 行话/新黑客词典
  • 常用设计模式
  • 谷歌翻译
  • 词典


行话文件将有助于人们在行业中提供更模糊的参考资料。http://catb.org/jargon/html/go01.html

除此之外,很难为变量/类等找到好的名称。通常情况下,这比实际解决问题更困难。下面是一些人们喜欢使用的常用设计模式名称的一个很好的资源:http://en.wikipedia.org/wiki/design_pattern_uu28computer_science%29

实例:ABC工厂木桥


如果你找不到你要找的"程序员词典",就启动一本。发布一个新问题:"对于英语作为第二语言的程序员来说,这本词典缺少哪些条目?"用你已经发现的10或20个单词/定义来填充它。一旦海报提出了足够的补充,就把它移到wiki的某个地方,并继续接受贡献。你最终可能会创造出一个有价值的资源。


Other non English people out here:

How have you managed to cope with this?

好的代码命名很重要。使用英语是首选,但如果你不太了解英语,结果可能适得其反。

我有个朋友刚刚猜到了正确的名字,结果很糟糕。工业工程

1
2
String employiiNeim; // employeeName
int  eich;           // age

英语的问题是,它的发音不像书面语(法语有这个小调…其他语言,如西班牙语、德语、荷兰语和其他语言,对单词中的每个字母进行打字和发音。

当您正在编码的是业务规则或业务模型时,这就变得特别相关。在这种情况下,最好使用您的母语。

1
2
String nombreEmpleado;
int edad;

好多了,尤其是和别人一起工作的时候。

Have you studied English so well it's not a problem?

是的,没有别的办法,而且很多练习。

你可以像学习编程语言那样学习英语。你可以请一位老师,去教室上课,每天学习一小时。或者(我所做的)你可以抓住一些你感兴趣的东西,试着去理解它。例如,您有一个描述您所关心的事情的小文档,您在StackOverflow上阅读博客或阅读内容,您翻译您喜欢的歌曲等。

这些都是学习形式。别无选择,总有一天你会醒来说:"……我懂功夫",然后说:"我懂英语"

Or have you read so much code naming comes natural?

也有帮助,但是如果你不理解代码的含义,你…好吧,不会有任何进展的。

您将学习编程语言,这将帮助您更好地理解英语,但不会帮助您学习它。那是因为当我们编程时,我们学习的是编程语言而不是母语。

Or discussed a lot with English speakers?

呃……不。如果你有这样的机会,它将改善你的听和说,但不一定是你的写作。

提高英语词汇和语法的最有效方法是阅读(母语阅读也能提高自己的语言btw)

所以,我想说,尽可能多地阅读。在获得更多自信的同时使用你的母语,继续学习。

英语将随时间而来。


可能是一个非正统的建议,但我建议更深入地学习英语(我也是一个非母语者)。

尽可能多地接触英语!看电影,读英文小说,听技术播客。

记住,如果你真的想加深你的英语知识,你可能不会学到很多看"变形金刚"。另一方面,潜入尤利西斯可能也不是一个好策略。

如果你有冒险精神,你可以随时订阅《纽约客》杂志。它会对你起作用的-是的,这是火焰诱饵。P


如果你担心它在命名你自己的对象方面,只要想想你的母语是什么,你想做什么,然后去得到一本英语翻译字典,并使用英语版本。


用你上面的问题这样优秀的散文来记录你的代码会有很长的路要走!

如果您坚持使用您所使用的语言、平台和体系结构特有的通用设计模式,那么其他工程师应该很容易理解您的术语。


这是我遇到的一个问题,即使是作为一个母语为英语的人。作为一个程序员,我经常发现我需要为一个类、变量、函数等找到一个描述性的词。我经常发现自己通过解释我的想法来询问朋友或同事他们会用什么措辞,仔细地排除我自己认为是类/函数/变量名的一个可能选择的任何词,以免抑制他们的认知。生性

在我看来,51区的英语语言和使用网站建议是一个很好的地方,可以提出这样的问题:"你将如何称呼一个类(或事物),这个类、这个类和那个类,以及属性x、y和z?"


它将随时间和经验而来。最重要的是,试图(如@mike a所说)记录事情,直到代码变得更清晰,并试图保持一致。


用你的母语怎么样?当然(像我这样的奥地利人)有些信是不允许的——但谁在乎有没有M呢?Rder或Moerder(谋杀)(类名:)

或者像我一样使用dict.cc之类的字典。我知道——想想这个类是怎么做的——它管理游戏会话(例如),所以它将成为GameSessionManager。

缩写(至少对我来说)是一个问题——但我从其他代码中学到的东西——以活动为母语的人使用不同的缩写。如果这个类被称为gamessessionmgr或gamessessionmgr,则没有什么区别。

你不是在写书,也不是在写拼写、语法和…计数。

你写代码——如果你遵循"你的特殊规则"——你和其他人(一段时间后)将能够理解你的代码和类名。