1

目前,我有一组或多或少有条理的项目我正在工作或从事。有些经过重构、记录和单元测试,有些则没有。

当我想重用以前编写的代码时,我会花几分钟时间搜索我编写此代码的项目,而不是将此代码复制粘贴到新的项目中,如果需要,进行重构、记录和单元测试.

它很丑,因为它需要做额外的工作,记住写的内容和位置,以及(可能是最丑的)跨项目复制代码。在没有共同代码库的情况下与其他开发人员合作也是一个问题。

现在,我想创建一个代码库,但我对此一无所知,也从未在任何公司见过认真的代码库。

那么从哪里开始呢?是否有书籍或在线文档解释如何创建这样的代码库或描述现有或想象的代码库、它是如何工作的、它是如何维护的等等?

4

3 回答 3

0

使用版本控制服务,例如Google CodeGitHub。这样您的代码就可以在线备份,如果需要,您可以恢复到旧版本。

于 2010-07-08T13:08:46.723 回答
0

首先,认识到这是一项重大的工作,需要其他开发人员和管理人员的参与。在重组代码库时,您可能需要停止开发新功能,这几乎不是管理的选择。即使向他们提及它也可能很糟糕。“我们可以推迟到重组之后”然后是“我们不能在这件完成之前进行重组”,大任务和重组都在等待对方。这是管理功能的死锁,很难修复。

继续前进,您需要与您的团队坐下来,确定您的产品是什么,它们是如何构建的,重叠在哪里,以及产品如何从这种重复使用中受益。您需要仔细检查产品的构建结构,并对其进行重构以包含您的公共库(您将要构建的)。

展望未来,您需要隔离依赖项。不要让公地依赖一个项目。如果项目 (projB) 将来很有可能最终依赖它 (projA),请不要让一个项目 (projA) 依赖于另一个项目 (projB)。循环依赖导致哭泣和咬牙切齿。

于 2010-07-08T13:10:31.473 回答
0

我认为您指的是可重用的库。这有点依赖于语言,因为带有链接器和编译器的语言会删除不用于使可交付成果更小的代码,而即时编译或解释语言则不会,因此加载整个库会浪费资源。

总而言之,看看你的代码,实现通常执行的任务和使用的参数。添加一点更改空间并创建一个界面来隐藏所有功能。正确定义接口是最重要的部分。尽量避免函数调用的集合,而是在接口后面创建相关函数,然后为每个操作任务创建一个接口 - 您试图将工作拆分为操作。

接口解决方案将解耦(重构工作的)实现和使用接口的工作。这将有助于将公共代码与项目代码分开,从而以不同的速度开发它们。

尝试将有关特定作业或任务的所有相关信息分组到接口后面,这样接口就不会相互依赖。

关于接口的一些有用的链接。一些链接讨论了面向对象的语言,但原则和思想可以应用于任何其他类型的语言。

http://en.wikipedia.org/wiki/Interface_%28computer_science%29#Software_interfaces_in_object_orientation_languages

http://en.wikipedia.org/wiki/Interface_%28computer_science%29#Programming_against_software_interfaces

于 2010-07-08T13:34:26.850 回答