7

我与印度的几位开发人员一起工作,我们最大的困难之一是他们对变量的命名。一开始我很沮丧,不明白为什么他们不能正确命名事物(是懒惰吗?)但是,我意识到他们可能不习惯命名变量,因为他们阅读的所有代码都在英语,他们读到的英语单词对他们来说几乎没有意义。现在看起来很明显,但是如果您不能充分理解英语,就不可能很好地命名变量。

您将如何与外语团队成员一起努力实现更好的命名实践?

抱歉,如果这有点主观,我已将其标记为社区 wiki。

谢谢!

4

8 回答 8

12

改变对团队成员的要求——他们必须对书面英语有足够的理解。

编辑:针对 Bill K 的评论,在我看来,处理沟通不畅问题的成本并未计入节省的计算中。不,我从未与海外开发人员合作过,但我确实与 2 位非英语母语人士合作,有时与他们的交流会慢一些,尽管他们都在美国生活了 20 年。

另外,我没想到我的答案是最有用的。只是想说明一点。如果您不雇用某人在您的办公室工作,那么您为什么要雇用他们从地球的另一端为您工作?即使您通过代理机构,您也间接地雇用了每个为您的代码工作的开发人员。

我的经验是,在开发人才方面,廉价可能会非常昂贵。

于 2009-06-25T21:55:27.580 回答
7

您可以将“变量命名”作为每次代码审查的主题。这将是一个易于讨论的事实上的议程项目。您可以将讨论用作衡量他们是否了解他们正在努力实现的目标的标准。

于 2009-06-25T21:56:21.587 回答
4

如果每个人都说同一种语言,并且您不会将代码出售给另一家公司,那么可以用他们的母语编写代码。

如果每个成员都说不同的语言,则代码应该是英语。尝试制作应用程序中最常用单词的字典,每个人都可以查看。必要时选择英语水平更高的人进行翻译。

当某些词看起来错误时,您总是可以重构。

于 2009-06-25T21:56:03.117 回答
3

大多数开发人员应该对技术英语有合理的理解(毕竟,大多数语言的 API 都是用英语编写的)。因此,英语似乎是一个不错的选择。变量通常不会有非常困难的名称,例如 xCounter、isXYZ 等。如果它们很难命名,那么我会认为这是一个确定的标志,即声明该变量的抽象级别不是正确的那一个。

有人可能会建议本地化变量名。我发现这真的很困难,尤其是现在,代码通常由位于其他大陆的人、在海外收购的公司等获取。

总得给点东西☺</p>

于 2009-06-25T21:55:03.587 回答
2

我不打算批评,但我有一个真正的问题......如果他们的英语不够流利来命名变量,他们如何流利到足以理解基于英语的业务领域模型,更不用说设计了并构建解决该领域实际问题的软件产品?

于 2009-06-25T22:07:46.260 回答
1

在那边找到一位您正在与之合作的开发人员,他会一些英语并让他们都由他运行变量名称?

于 2009-06-25T21:51:30.380 回答
1

也许让他们用他们的母语描述性地命名变量,然后使用翻译器将它们转换为英语?甚至可以添加标记并运行预编译器来进行自动翻译?只是一个想法。

于 2009-06-25T21:54:43.947 回答
1

我不确定具体问题,即变量名不是描述性的,或者他们使用的变量名不是英文,变量命名风格不一致等。无论哪种方式,您都可以尝试建立详细的编码标准,也许使用代码审计或审查以执行它们。例如:

  • 不允许使用“temp”作为局部变量的名称
  • 变量必须命名,以便变量的用途显而易见
  • 始终使用一致的样式来命名变量(例如 Camel Case)

关键是发布这些规则并在整个组织中强制执行。

于 2009-06-25T22:24:26.723 回答