当我们在应用程序中引入新功能时,我们可能会生成工件,例如可以在我们的应用程序的其他区域中重用的有用方法或类。这些工件不一定记录为功能要求,因为它们通常是我们实现选择的副作用。由于我们经常在团队中开发,因此分享这些代码以防止返工和重复非常重要。
示例:
您发现什么是分享这些工件的最有效方式?
您如何传达您在创建时所做出的假设?
您如何确保正确消费?
我对文档,代码图,会议(?)方面的最佳实践和经过验证的技术感兴趣,以确保代码能够被正确重用。
这个问题非常类似于:Finding Reusable code但我对更积极主动而不是被动的方法感兴趣。
答案 0 :(得分:3)
我们的团队拥有许多有用的库,我们在整个开发过程中使用这些库。这些库以“开源”方法保存在公共存储库中。有一个人负责监督每个库(或多个库),开发人员可以提交补丁。
然后将库发布/构建到一个公共位置(我们部署到Web服务器),然后人们可以下载它们并在他们想要的任何项目中使用它们。到目前为止,它运作良好。我们唯一需要注意的是,如果API发生变化,我们必须确保每个人都意识到这一点。我们通过版本号和库wiki上的信息来完成此任务。
编辑另外,我们发布了为我们的库生成的文档(Javadoc,Crystal Report等等),以便开发人员可以利用这些文档。
答案 1 :(得分:2)
我们是.Net团队,所以这对我们有用......
我们为我们认为常用的函数创建了自己的类库。比如计算一个Luhn Mod 3校验位,创建一个正则表达式来验证一个适合 n 字符的数据库字段的地址等等。这个技巧是能够识别可能的代码被重用并在那里得到它。并保持井井有条。
答案 2 :(得分:2)
在完全缺乏经验的情况下,理想的情况可能是在团队之间创建一个共享版本控制系统。然后在几次初步的组织/意识会议之后,将共享的仓库视为人们可以贡献的开源项目。所以,看几个案例:
您编写了一些要共享的代码:这需要在软件仓库中为代码创建一个新区域,添加一些基本文档,测试,代码清理等等......但是如果它被认为是“公共的”,就有动力做正确的事。
你想使用代码并且质量很好:听起来像一个好的库,但有一些限制。您可以添加更多文档,测试和其他功能,等等。
您想使用代码,但这是垃圾:您需要与原始开发人员聊天。然后对代码进行重大修改,但它仍然比重新发明轮子略好。当你完成后,两个团队都会受益。
诀窍是让所有公众知识。因此,您需要每个团队的冠军,以促使人们重用和贡献。这就是你从第一轮会议中得到的结果。假设开源模型是一种经过验证的实践,如果你有冠军,就没有理由不行。
答案 3 :(得分:1)
用断言测试你的先决条件。
除此之外,请考虑一些单元测试来检查您的代码是否足够强大以处理不常见或无意的情况。
对于其他人,请确保每个人都真正理解代码的作用,至少在黑盒级别上。与人们进行简短的会议,并在人们不得不开始使用新手代码时进行一对编程。
答案 4 :(得分:1)
我们是一个Java开发团队,同样适用于我们。我们在SVN中以各种标题创建了公用事业项目,例如: XML解析,矢量处理和可重用代码被检入这些实用程序库,并在其他项目中重用。
答案 5 :(得分:0)
查看一本关于编程语言最佳实践的书。应用它们,看看哪些有效并相应地进行调整。基本上一个好的,干净和简洁的界面/ api有很长的路要走。还要编写大量单元测试来涵盖不同类型的功能。另外,请查看您的语言/平台中的内置库,或查看库的良好示例,并查看其接口的方式。
答案 6 :(得分:0)
使用SOLID并保持代码清洁。检查:http://www.lostechies.com/content/pablo_ebook.aspx
如果您看到可能实施的内容,请向团队询问。始终牢记您对以前项目的了解,如果您知道项目x具有该功能,那么从那里开始;)
重用非常重要并且避免重复,特别是当您在同一产品/甚至子系统中时。重要的是要始终寻找它,但不要让这妨碍项目的进展。