C#和Java几乎允许在类名,方法名,局部变量等中使用任何字符.使用非ASCII字符,测试不良编辑器和分析工具的界限并使某些人难以阅读是不好的做法,还是美国的傲慢是反对的唯一论据?
我会坚持使用英语,只是因为你通常不知道是谁在使用该代码,并且因为构建/测试/错误跟踪进度中使用的某些第三方工具可能存在问题.在非德语键盘上打字äöüß只是一个PITA,我只是相信任何参与软件开发的人都应该说英语,但也许这只是我作为一个非英语母语人士的傲慢.
你所谓的"美国傲慢"不是你的程序是否使用国际变量名,而是当你的程序认为"Währung"和"Wahrung"是相同的词时.
我要说这完全取决于谁在代码库上工作.
如果您有一小组开发人员都共享一种共同语言,并且您从未计划需要任何不会使用该语言的人来处理代码,那么请继续使用您想要的任何字符.
如果你需要让不同文化和语言的人在代码上工作,那么最好坚持使用英语,因为它是世界上几乎所有人的共同点.
如果您的业务是非英语用户,并且您认为Domain Driven Design对此有所帮助,那么还有另一个方面:作为开发人员,我们如何使用与我们的业务相同的域语言而无需任何翻译开销?
这不仅意味着语言之间的翻译,比如英语和挪威语,也包括不同语言之间的翻译.对于我们的实体类和服务,我们应该使用与业务完全相同的单词.
我发现更容易让步并使用我的母语.既然我的代码使用了相同的单词,那么与我的域专家进行对话就更容易了.过了一段时间,你习惯了它,就像你习惯于没有匈牙利符号的代码一样.
我曾经在一个开发团队工作,他们愉快地用任何命名(以及任何其他编码)惯例来擦除他们的驴子.信不信由你,不得不应对代码中的ä和ö是我辞职的一个因素.虽然我是芬兰语,但我更喜欢使用美式键盘设置编写代码,因为在芬兰语键盘中使用卷曲和方括号是很痛苦的(尝试使用正确的alt和7和0作为curlies).
所以我说坚持使用ascii字符.