OOP背后的驱动点之一是代码重用。我很好奇这件事的实际后勤情况,以及其他人如何团队或单独处理它。例如,假设您已经完成了5个项目,在它们之间有大量的类,您认为这些类在其他项目中是有用的。
你是怎么储存的?它们只是在正常的项目存储库中吗?还是将相关的类划分出来,并将它们(如现在的副本)放到另一个唯一的源代码存储库中,其中只包含打算重用的代码片段?
如何找到或甚至知道有一段好的代码需要重用呢?如果你的独奏更容易,因为你记得你编码了类似的东西,但即使这样,它也变得有点牵强。
如果您正在以某种方式存储这些代码,那么您也可以通过标记或其他方式对它们进行索引和搜索。我担心它只是归结为一些部落的知识,你只知道,对于情况A,我需要解决方案B,我们有一个很好的代码,已经可以帮助这里。
有点冗长,但我希望你能明白我的目标。如果你想出更好的方法让问题变得更清楚,请注意:)
蒂娅!
发布于 2011-06-23 14:15:57
我不在项目之间共享“对象”,而是共享定义对象的类。
它的实现方式各不相同:有时我构建一个编译后的库,其中包含相互关联的共享类。有时,我会在项目之间手动复制文件,如果只是一个或两个文件,并且不太可能再次被重用--尽管如果我这样做了两次以上,我通常会开始怀疑是应该将这些类添加到现有的库中,还是创建一个新的库。
如何找到可重用的代码?我得知道这个项目。对于许多开发人员多年来一直在进行的大型项目来说,是的,在我开始创建新功能的情况下,它已经发生过一两次--只有它向我指出它已经存在了。现有功能的“可发现性”实际上取决于早期的开发人员,以及他们如何很好地记录了他们所做的事情。文档越好,以后就越不可能有人找不到预先存在的类。
发布于 2011-06-23 15:50:30
公司的可重用类就像任何其他供应商库一样,应该以同样的方式对待。唯一的区别是如何创建新版本。
如果正在使用该库的项目在那里发现了一个bug,或者该项目只需要一个有意义的新特性,那么该库的代码就可以在项目中本地更改。
稍后,当更改再次顺利运行时,可以通过将所有所需的更改应用到库的存储库来生成库的新版本。
此时,新版本应该发布给公司的所有开发人员,这样他们就可以决定是否更新任何使用旧版本的项目。
例如,在我的PHP项目中,该库作为Zend Framework库的同级存储在库/供应商目录中,并且它共享相同的命名约定,因此可以同时使用相同的自动加载程序。
发布于 2011-06-23 14:55:54
取决于共享代码。
如果这是一个通用的通用功能,它可以用于各种项目,例如如何处理文件上传或如何度量点之间的距离。或常见操作(如字符串操作)或公共数据结构(如并发异步队列)。那么,我认为最好的方法是把它作为一个不同的项目,并构建一个公共库。
在许多大型项目中都可以找到一些著名的Java示例,例如:
有很多这样的例子..。
另一方面,如果重用的代码更具体,就像在Servlet中那样,它可以进行身份验证,并与公司的适当协议进行接口。我建议对这5个项目进行模块化,以便它们依赖于相同的子项目,并且在您自己的开发环境中,您可以保留您想要的任何项目,并让它们相互引用(简单地使用最现代的IDE)。
因此,在第二种情况下,您应该使用java jars (我使用的是java jars,但是对于任何东西都是一样的):
+ project1.jar
+ project2.jar
+ project3.jar你会把它改为:
+ project-core.jar
|- project1.jar
|- project2.jar
|- project3.jarhttps://softwareengineering.stackexchange.com/questions/86477
复制相似问题