我们应该在Java / C#中使用国际标识符吗?
Cand Java几乎允许在类名,方法名,局部变量等中使用任何字符。使用非ASCII字符,测试不良编辑器和分析工具的边界以及是否使某些人难以阅读还是一种不好的做法?美国的自大是唯一的反对者吗?
解决方案
回答
我要说的是,这完全取决于谁在代码库上工作。
如果我们有一小部分开发人员,他们都共享一种通用语言,并且我们不打算让任何不使用该语言的人来编写代码,那么请继续使用所需的任何字符。
如果我们需要由不同文化和语言的人来编写代码,那么最好坚持使用英语,因为它是世界上每个人的共同点。
回答
问题的一部分是Java /语言及其库基于英语单词,例如" if"和" toString()"。我个人不想在阅读代码时在非英语和英语之间切换。
但是,如果数据库,UI,业务逻辑(包括隐喻)已经使用某种非英语语言,则无需将每个方法名称和变量都翻译成英语。
回答
这取决于:
- 团队是否符合要求我们使用ASCII的任何现有标准?
- 代码是否会被不讲母语的人切实地重用或者阅读?
- 我们是否设想了一种情况,需要在线寻求帮助,因此无法按原样复制粘贴代码示例?
- 我们确定整个工具套件都支持代码编码吗?
如果我们对以上任何一项回答"是",请仅保留ASCII。如果没有,请自担风险。
回答
我会坚持使用英语,这是因为我们通常不知道谁在使用该代码,并且在构建/测试/错误跟踪进度中使用的某些第三方工具可能会出现问题。打字???在非德语键盘上使用PITA只是一个PITA,我只是相信从事软件开发的任何人都应该说英语,但这也许只是我作为非英语母语者的傲慢。
我们所谓的"美国傲慢"并不是程序是否使用国际变量名,而是程序认为" W?hrung"和" Wahrung"是同一个词时。
回答
如果我们超越了其他准备工作,那么我们就会有一个额外的要求(恕我直言,这一点更为重要),其中一个是很难键入的符号。
在我的常规使用中键盘上,我唯一知道键入字母的方法是?是按住alt,然后在数字小键盘上按0227,或者复制并粘贴。
这将是快速打字的巨大障碍。如果我们不被迫这样做,那么我们不想使用这种琐碎的东西来降低编码速度。国际键盘可以缓解这种情况,但是如果我们必须在没有国际键盘的笔记本电脑上进行编码,该怎么办?
回答
我曾经在一个开发团队中工作过,该团队愉快地用任何命名约定(以及与此有关的任何其他编码)将他们的屁股擦掉了。信不信由你,不得不应付代码中的?和?是我辞职的一个重要因素。尽管我是芬兰人,但我更喜欢使用美式键盘设置来编写代码,因为在芬兰语键盘中书写大括号和方括号是一件很麻烦的事(尝试向右alt并为curl尝试7和0)。
所以我说坚持使用ascii字符。
回答
如果企业不是讲英语的,并且我们认为域驱动设计有其优点,那么还有另一个方面:作为开发人员,我们如何使用与我们的企业相同的域语言而没有任何翻译开销?
这不仅意味着英语和挪威语之间的翻译,而且还包括不同单词之间的翻译。对于实体类和服务,我们应该使用与业务完全相同的词语。
我发现更容易屈服并使用我的母语。既然我的代码使用相同的词,那么与我的领域专家进行对话就更容易了。一段时间后,我们就习惯了,就像我们习惯了没有匈牙利符号的编码一样。
回答
这是我使用非ASCII标识符的示例,因为我发现它比用英语名称替换希腊字母更具可读性。即使我没有键盘,也没有键盘(我依靠复制粘贴)。
但是,这些都是局部变量。我会将非ASCII标识符保留在公共接口之外。
回答
我会坚持使用ASCII字符,因为如果开发团队中的任何人正在使用仅支持ASCII的SDK,或者我们想使代码开源,则可能会出现很多问题。就个人而言,即使我们不打算让任何不讲该语言的人参与项目,我也不会这样做,因为我们正在经营一家企业,而在我看来,经营一家企业的人希望他的企业发展,在当今时代意味着超越国界。我的观点是英语是领域的语言,即使我们用其他语言命名变量,也几乎没有意义在编程中使用任何非ASCII字符。如果我们要处理的数据是UTF8,则应由语言来处理:我的iPhone程序(涉及大量电话和服务器之间的用户数据)具有完整的UTF8支持,但源代码中没有UTF8. 。似乎打开如此大的蠕虫几乎没有任何益处。