程序员词典/词典非母语人士

时间:2010-06-24 21:18:08

标签: language-agnostic coding-style naming-conventions naming

我不是说英语的人,而且我不是很擅长英语。我是自我思考的。我没有和其他人一起使用共同的代码库。我没有任何编程的朋友。我不与其他程序员合作(至少没有人关心这些事情)。

我想这可能解释了我在找到好的明确的类名时遇到的一些问题。我试图找到某种“程序员字典”,其中包含经常使用的单词及其含义。在阅读其他代码时,我必须经常查找单词,并且尽管许多人使用缩写,这也会带来额外的挑战。

我非常有限的词汇“强迫”我使用像xxManager,xxProvider,xxWhatever这样的坏类名。选择变量和方法名称通常不会有问题。

其他非英语人士:你是如何成功应对的?你学好英语这不是问题吗?或者你读过如此多的代码命名是否自然?还是和说英语的人讨论过很多?找到任何好的网站,文章或其他出版物?因为我从来没有读过任何关于使用我自己的语言进行编程的内容,所以我经常在尝试用我的语言找到这些单词时遇到更多问题......

PS:我发现的所有其他帖子都是关于混合母语和英语......我理解这可能有点偏离主题,可能会被关闭。

编辑:答案中的一些资源以及我使用的其他内容:

9 个答案:

答案 0 :(得分:3)

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

除此之外......为你的变量/类/等找到好名字 hard 。通常,它比实际解决问题更难。对于人们喜欢使用的一些常见设计模式名称,这是一个很好的资源:http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29

示例:
AbcFactory
XyzBridge

答案 1 :(得分:2)

  

其他非英语人士:

     

你是如何成功应对的?

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

我有一个朋友,他只是猜到了正确的名字,结果太可怕了。即

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

英语的问题是,发音不是这样的(法语有这个小的... ehrm特征)其他语言,如西班牙语,德语,荷兰语和其他语言,键入并发音单词中的每个字母。

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

String nombreEmpleado;
int edad;

更好的方式,特别是当你与他人合作时。

  

你学好英语这不是问题吗?

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

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

所有这些都是学习形式。没有别的办法,有一天你不会醒来说:“......我知道功夫”我的意思是说: ......“我懂英语”

  

或者你读了这么多代码命名是否自然?

也有帮助,但是如果你不明白代码意味着什么,那么......你将不会取得任何进展。

您将学习编程语言,这将有助于您更好地理解英语,但不会帮助您学习它。那是因为当我们为learn the programming language not the native language.

编程时
  

或者与说英语的人讨论过很多次?

Eerhh..nope。如果你有机会继续前进,它会改善你的听力和口语,但不一定是你的写作。

提高英语词汇和语法的最有效方法是阅读(用您的母语阅读也会提高您自己的语言顺便提升)

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

英语会随着时间而来。

答案 2 :(得分:2)

如果找不到您正在寻找的“程序员词典”,请启动它。发布一个新问题:“这个英语作为第二语言程序员字典?”缺少哪些条目,并用10或20个单词/定义对它进行播种。一旦海报建议添加足够的内容,将其移动到某个地方的wiki并继续接受贡献。您最终可能会创建一个有价值的资源。

答案 3 :(得分:1)

使用优秀的散文记录您的代码,就像上面的问题一样,将会有很长的路要走!

如果你坚持使用与你合作的语言,平台和架构特有的常见设计模式,其他工程师应该很容易理解你的命名法。

答案 4 :(得分:1)

如果您在命名自己的对象时担心它,只需想想您想要做什么的本地词,然后去获取英语翻译词典,并使用英语版本。

答案 5 :(得分:1)

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

让自己尽可能多的英语!观看电影,阅读英文小说,收听技术播客。

请注意,如果你真的想加深对英语的了解,你可能不会去学习很多关于“变形金刚”的知识。另一方面,潜入尤利西斯可能也不是一个好策略。

如果您有冒险精神,可以随时订阅“纽约客”杂志。它会对你做的事 - 是的,这是火焰。 :P

答案 6 :(得分:0)

如何使用您的母语? 当然(就像我作为奥地利人一样)可能不会允许一些信件 - 但是如果班级名称中有Mörder或Moerder(谋杀),谁会关心:)

或者(像我一样)使用像dict.cc或其他类似的字典。 我这样做 - 想想课程的作用 - 它管理游戏会话(例如),所以它将成为GameSessionManager。

缩写(至少对我而言)是一个问题 - 但我从其他代码中学到了什么 - 活动母语人士使用不同的缩写。 如果该类被称为GameSessionMgr或GameSessionMngr没有区别。

你不会写书或某种“英语诗”,拼写,语法和......都很重要。

您编写代码 - 如果您遵循“您的特殊规则” - 您和其他人将(在一段时间后)能够理解您的代码和类名。

答案 7 :(得分:0)

它将带来时间和经验。最重要的是尝试(比如@Mike A所说)文档内容,直到代码变得更清晰并尝试保持一致。

答案 8 :(得分:0)

这是我遇到的一个问题,即使是母语为英语的人也是如此。作为程序员,我经常发现我需要为类,变量,函数等找到一个描述性的单词。我经常发现自己通过解释我的想法向朋友或同事询问他们会使用什么样的单词,小心地排除我自己的任何单词被认为是类/功能/变量名称的可能选择,以免妨碍他们的创造力。

在我看来,在Area51上的English Language & Usage网站提案是一个很好的地方,可以提出这样的问题:“你会称之为一个类(或东西)做什么,这个和那个,并且有属性x,y和z?