Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic 如何维护程序词汇表?_Language Agnostic_Vocabulary - Fatal编程技术网

Language agnostic 如何维护程序词汇表?

Language agnostic 如何维护程序词汇表?,language-agnostic,vocabulary,Language Agnostic,Vocabulary,在一个不太小的程序中,当实体不太少时,为了保持代码可读性、通用术语,以及以其他方式提高团队成员之间的相互理解,必须定义并维护程序词汇表 你(或你的公司)如何处理这项任务,你有什么纪律,你有什么安排 大多数规模合理的项目都应该有一份编程/编码标准文档,其中规定了应遵循的通用约定和命名准则 另一种帮助方法是通过代码检查。显然,评审员之间需要一些协调(文档也有助于这一点)。代码审查有助于使更环保的开发人员和高级开发人员保持在正轨上,并作为实施编码标准的途径。将软件包/模块划分为逻辑组,并使用描述性和简

在一个不太小的程序中,当实体不太少时,为了保持代码可读性、通用术语,以及以其他方式提高团队成员之间的相互理解,必须定义并维护程序词汇表


你(或你的公司)如何处理这项任务,你有什么纪律,你有什么安排

大多数规模合理的项目都应该有一份编程/编码标准文档,其中规定了应遵循的通用约定和命名准则


另一种帮助方法是通过代码检查。显然,评审员之间需要一些协调(文档也有助于这一点)。代码审查有助于使更环保的开发人员和高级开发人员保持在正轨上,并作为实施编码标准的途径。

将软件包/模块划分为逻辑组,并使用描述性和简洁的名称。避免使用泛型名称,除非它们真的是计数器等。为函数或功能组创建约定并遵守它们。

域驱动设计在这里很有趣,因为它鼓励程序员接受域词汇表。除此之外,还有一些设计约定,允许您使用众所周知的术语引用应用程序的某些部分,如服务、存储库、工厂等


结合领域词汇表并使用上面的技术约定可能是一个很好的解决方案。

我的团队将此类信息(约定/词汇表等)保存在wiki上。这使您可以轻松地了解最新信息并与他人分享。

@Ilya Ryzhenkov

恐怕大多数公司都没有这样的做法:)我在一家规模不小的公司工作,拥有数百万LOC代码库,他们根本没有任何文档(除了通用编码指南)

在我的一个项目中,我们维护了应用程序领域中常用术语的同义词库,并在代码审查期间使用它。我不时分析.NET XML文档的差异,以决定哪些实体\术语应该添加到同义词表中。唯一强制遵守同义词表的方法是编码指南

Wiki方法被证明是不适用的,因为没有人关心定期更新:)


我想知道你在JetBrains用什么方法?我在Reflector中查看了ReSharper的代码,对实体的数量和名称感到惊讶:)

问题是“如何”而不是“什么”,那么问题中可能会澄清什么?你问怎么做,Michael用标准文档说。William,那么你认为只要有一个“标准”文档就可以使程序词汇表保持可维护吗?在我的公司,conventions文档通常针对每个项目进行定制,以纳入客户带来的任何样式和DSL。我刚刚添加了代码审查方法。我想知道您如何使其保持最新?您是否有关于“当您将IFooElement更改为IFooEntity时,请更新页面a、b和c上的wiki”的规则?如果人们懒惰,这可能会有问题。这些有用的页面会随着人们的频繁使用而保持最新,如果发现问题/错误,则必须进行修复。不太有用的页面应该被删除或合并成一些有用的页面,以便更容易维护。在我创建约定之后,我将如何维护它们?