5

通常,当我们将新功能引入应用程序时,我们可能会产生工件,例如可以在应用程序的其他领域重用的有用方法或类。这些工件不一定记录为功能需求,因为它们通常是我们实施选择的副作用。由于我们经常在团队中开发,因此共享这些代码以防止返工和重复非常重要。

例子:

  • 实用方法和类
  • 一个基类
  • 一个接口
  • 一个 GUI 控件

您发现共享这些工件的最有效方式是什么?

你如何传达你在创建它们时所做的假设?

您如何确保正确食用它们?

我对围绕文档、代码图、会议(?)的最佳实践和经过验证的技术感兴趣,以确保正确重用代码。

这个问题非常类似于:Finding Reusable code but I'm感兴趣的是一种比被动方法更主动的方法。

4

7 回答 7

3

我们的团队在整个开发过程中使用了许多有用的库。这些库以某种“开源”方法保存在一个公共存储库中。每个库(或多个库)都有一个人监督,开发人员可以提交补丁。

然后将库发布/构建到一个公共位置(我们部署到 Web 服务器),然后人们可以下载它们并在他们想要的任何项目中使用它们。到目前为止,它运作良好。我们唯一需要注意的是,如果有 API 更改,我们必须确保我们确保每个人都意识到这一点。我们通过版本号和图书馆 wiki 上的信息来做到这一点。

Edit: In addition, we publish the generated docs for our libraries (Javadoc, Crystal Report, whatever) so that developers can utilize those.

于 2009-09-25T15:41:56.993 回答
2

我们是一个 .Net 团队,所以这对我们有用......

我们为我们认为常用的函数创建了自己的类库。诸如计算 Luhn Mod 3 校验位,创建正则表达式来验证地址,该地址将适合包含n 个字符的数据库字段等。诀窍是能够识别可能被重用的代码并将其输入那里。并保持井井有条。

于 2009-09-25T03:44:30.337 回答
2

从完全缺乏这方面的经验来看,理想的情况可能是在团队之间创建一个共享的版本控制系统。然后在一些初步的组织/意识会议之后,将共享库视为人们可以贡献的开源项目。所以,看几个案例:

  1. 您编写了一些要共享的代码:这需要在代码库中为代码创建一个新区域,添加一些基本文档、测试、代码清理等……但如果它被认为是“公共的”,就会有动力去做。

  2. 你想使用代码并且它的质量很好:听起来像一个很好的库,但是有一些限制。您添加了更多的文档、测试和额外的功能,等等。

  3. 您想使用代码,但它很垃圾:您需要与原始开发人员聊天。然后对代码进行一次重大的返工,但它仍然比重新发明轮子要好一些。当你完成时,两个团队都会受益。

诀窍是让所有这些都成为公共知识。所以你需要每个团队的拥护者来推动人们重用和贡献。这就是你从第一轮会议中得到的。假设开源模型是一种行之有效的实践,如果你有拥护者,它没有理由不能工作。

于 2009-09-25T04:02:12.087 回答
1

用断言测试你的先决条件。

除此之外,考虑一些单元测试来检查您的代码是否足够健壮以处理不常见或意外情况。

其余的,确保每个人都真正理解代码的作用,至少在黑盒级别。一旦人们必须开始使用对他们来说是新的代码,就可以与白板进行一次简短的会议并进行一些结对编程。

于 2009-09-25T03:42:43.070 回答
1

我们是一个 Java 开发团队,这同样适用于我们。我们在我们的 SVN 中创建了各种标题下的实用程序项目,例如 XML 解析、矢量处理,并且可重用代码被检入这些实用程序库并在其他项目中重用。

于 2009-09-25T03:47:16.353 回答
0

查看有关编程语言最佳实践的书。应用它们,看看什么有效并相应地进行调整。基本上,一个好的、干净和简洁的界面/api 有很长的路要走。还要编写大量单元测试来涵盖不同类型的功能。还可以查看您的语言/平台中的内置库,或者寻找好的库示例,看看它们的接口如何。

于 2009-09-25T03:52:34.817 回答
0

使用 SOLID 并保持代码干净。检查:http ://www.lostechies.com/content/pablo_ebook.aspx

如果您看到有可能实施的内容,请咨询团队。始终牢记您对以前项目的了解,如果您知道项目 x 具有该功能,请从那里开始;)

重用很重要,并且避免重复,特别是当您使用相同的产品/甚至子系统时。始终寻找它很重要,但不要让它妨碍项目的进展。

于 2009-09-25T04:03:13.333 回答