我要求有关此问题的最佳实践。我认为,这仅在客户公司严格属于国家/地区语言而不是英语时才是问题。
如果客户有很多主要是非常特定于域的(例如,德语)表达式,并且混合了一些较小的特定于域的命名。我们的代码注释的语言,类/方法/变量名是英语。您会翻译所有域名专用名称吗?
unexpected T_PAAMAYIM_NEKUDOTAYIM
。我一生中见过几次,我毫不怀疑应该使用英语。
我要求有关此问题的最佳实践。我认为,这仅在客户公司严格属于国家/地区语言而不是英语时才是问题。
如果客户有很多主要是非常特定于域的(例如,德语)表达式,并且混合了一些较小的特定于域的命名。我们的代码注释的语言,类/方法/变量名是英语。您会翻译所有域名专用名称吗?
unexpected T_PAAMAYIM_NEKUDOTAYIM
。我一生中见过几次,我毫不怀疑应该使用英语。
Answers:
我在德国工作,喜欢英语。
有时候,例如特定领域的事情,例如创建“ DATEV”(德国发票/计费软件)模块,我确实使用德语名称。某些德语单词无法正确翻译,例如“ Referenzbuchungsnummer”(ReferenceBookingNum?)或“ Sachkontenlaenge”(..?)。我也确实认为特定领域的事情将以维护恐惧而告终。也许您会记得ReferenceBookingNum与“ Referenzbuchungsnummer”有关,但是您的同事呢?如果存在文档,他们必须研究有关命名的内部文档。如果没有适当的名称,他们将不会非常熟悉该模块。如果所有其他开发人员也都是德国人,那将是不必要的复杂性。但是“ CakeFactory”听起来比“ KeksFabrik”更好;)
因此,这取决于。
我是挪威人,在一家挪威公司工作,我用英文命名我的对象。当然,某些单词或概念可能没有英文对应物,在这种情况下,人们可能会争辩说,可能会使用母语单词来代替不好的替换或没有含义的直译。当然,这些问题很多可能是因为我们中有些人应该有更好的词汇量,所以我通常问一个同事我是否想不出一个好的英文名字:)
我们的一些工作人员不是挪威人,因此用英语写对他们有好处。能够从欧洲大部分地区聘请程序员对经济有利,因此我的公司也从中受益。
顺便说一句:我记得我曾经读过Hermes的源代码(ebXML b2b实现),如果他们用普通话写作和发表评论,我将很难。
Of course some words or concepts might not have a English counterpart
-我总是很好奇编程时,几乎就像您可能知道一种不会说英语的设计模式。你有一个简单的例子吗?
我认为,由于英语是IT领域的通用语,因此将源代码限制为另一种语言会给其发展带来人为障碍。首先,您要限制可以说一种特定语言的人才库。您在堆栈交换中而不是在本地站点上询问的原因相同。
另外,您也不知道捐款来自何处,去向何处。如果您使用网站中的样本该怎么办?如果产品可以扩展到另一个国家的客户使用该怎么办?如果您需要聘请承包商/外包服务吗?为什么要限制一个游泳池,却不能从世界各地获得最大的健康呢?
可以假定对于某些领域特定的结构是可以的,这些结构不容易映射到其他语言,或者维护了现有的代码库。
通常,以单一语言编写的源代码更容易阅读。对于大多数编程语言来说,这意味着您应该用英语编写。
就是说,领域概念存在一个主要问题,这些领域概念很难轻易翻译成英文。一个典型的例子是社会为个人提供的唯一标识符-在美国,最接近的概念是社会保险号,但这并不是准确的映射。名称和电话号码通常映射得很好。
我认为,通常在不容易将准确的映射提供给英语(只有那些)的情况下,必须保留域术语,而其余的保持为英语。它将产生不寻常的标识符,例如KommuneImpl,但对于知道该域的人来说应该立即有意义。
开源和国际社区项目的通用语言是英语。例如,Stack Exchange网站的语言是英语。为了获得最大的可访问性,所有代码和对象名称都应使用英语。
大多数国际软件公司都要求代码以英语编写。它是最大的共同点,因此使用英语作为创造连贯性的手段是很有意义的。
许多区域软件公司都使用其母语编写。并非所有人都遵循这种方法,但是从他们的角度来看很有意义-他们对所有开发人员都使用通用语言。
应该使用团队的编码语言来命名对象。
优先考虑的是开发人员能够就对象和项目需求进行交流。如果团队使用法语编写,则业务对象应使用法语命名。如果它们用英语编码,则用英语命名对象。
您的问题增加了难度,因为客户说的不是您团队的编码语言,而是母语。 您仍应使用团队的编码语言来命名对象。
当业务分析师或开发人员需要与客户就特定业务对象进行沟通时,可能需要将对象名称从编码语言转换为客户语言。根据我的经验,很少与客户讨论特定的代码对象,因此实际上并不需要翻译回客户语言。
命名规则的唯一例外是,当对象没有其他足够简洁的术语来捕获对象的意图时。海事组织,这确实很少见,但有可能发生。但是实际上,口头语言表达特定概念是一样的。“ 外观 ”最初是一个法语术语,但为了表达该概念已被英语改编,是一种常见的设计模式。“ Schadenfreude ”是借用术语的另一个很好的例子,尽管我认为它没有相应的模式。