Programming languages 命名约定:寻找英语和域/工作流术语混合的替代方案

Programming languages 命名约定:寻找英语和域/工作流术语混合的替代方案,programming-languages,Programming Languages,虽然在我们公司,所有人都是非英语母语人士,但我们努力用英语编写文档、代码和注释,当然,除了与用户相关的内容外,几乎所有内容都是这样。只要业务术语是可翻译的,并且不太特定于该领域,这就可以了。但是,一旦商业术语变得太具体,要么没有合适的翻译,要么翻译听起来很愚蠢,毫无意义。 在编写代码时,这会导致糟糕的语言混合 你在这个话题上有什么经验?你是千方百计避免在代码中使用愚蠢的名字,还是仅仅接受它 我没有这方面的经验,因为我以英语为母语。然而,当领域复杂时,极限编程建议您使用程序员和客户都能接受的隐喻

虽然在我们公司,所有人都是非英语母语人士,但我们努力用英语编写文档、代码和注释,当然,除了与用户相关的内容外,几乎所有内容都是这样。只要业务术语是可翻译的,并且不太特定于该领域,这就可以了。但是,一旦商业术语变得太具体,要么没有合适的翻译,要么翻译听起来很愚蠢,毫无意义。 在编写代码时,这会导致糟糕的语言混合


你在这个话题上有什么经验?你是千方百计避免在代码中使用愚蠢的名字,还是仅仅接受它

我没有这方面的经验,因为我以英语为母语。然而,当领域复杂时,极限编程建议您使用程序员和客户都能接受的隐喻


这可能适用于您的情况。

我认为,当所有开发人员和用户都使用通用的非英语母语时,试图用英语保存所有内容不仅没有用,而且实际上是有害的。领域术语就是最明显的例子

IMO所有域术语应使用母语,文档和注释也应使用母语。这使得开发人员能够专注于代码的逻辑,而不是翻译问题。在代码中混合使用两种语言可能看起来很愚蠢,即使是在单个方法名称中,但在我看来,这并不是一个真正的问题,也比在没有人真正从中受益的情况下尽最大努力将所有内容都用英语要好


当然,这只适用于所描述的场景。如果您是一家大型国际公司的一个部门,或者计划在国际上拓展市场,或者您的母语不是很多人,那么这是另一回事。

我们公司也有同样的问题。我们试图用英语编写代码和示例,但我们经常发现无法解决的情况,即母语中的直接通用名称没有直接或未知的翻译或对等。因此,从我的角度来看,几乎不可能避免语言的混合(不管我的意愿如何,西班牙式英语会成为未来的语言吗?)

基本上这是两件事:

  • 一般英语知识不足
  • 并不是每个人都是完美主义者,都会花上几秒钟在互联网上了解如何正确地说某件事,所以首先想到的是代码
这些措施的效果是:

  • 以英语为母语的人无法理解评论(因为使用的单词不存在或句子是源语言的直译)
  • 错误的翻译充满了虚假的朋友或虚构的词语。一个典型的例子是使用“实际”一词来表示“当前”的意思,因为这在西班牙语中是“实际”的意思
解决这一问题的实际方法是尝试纠正这一问题,即攻击问题的根源:

  • 英语培训课程(包括应用技术英语)应该是公司的必备课程,这样每位员工都能达到最低的英语知识水平
  • 通过定义一个代码样式表,迫使不那么完美主义的人遵循一些编码规则,或者更好的是让一个QA部门来强制执行代码质量、注释语法和可读性

我支持:用英语编写代码,但不要翻译域术语;对于注释和文档,请使用最合适的语言(用户群/可维护性考虑:谁将阅读它,谁将更改它?)