首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码重用(OOP)的物流

代码重用(OOP)的物流
EN

Software Engineering用户
提问于 2011-06-23 14:12:36
回答 5查看 681关注 0票数 7

OOP背后的驱动点之一是代码重用。我很好奇这件事的实际后勤情况,以及其他人如何团队或单独处理它。例如,假设您已经完成了5个项目,在它们之间有大量的类,您认为这些类在其他项目中是有用的。

你是怎么储存的?它们只是在正常的项目存储库中吗?还是将相关的类划分出来,并将它们(如现在的副本)放到另一个唯一的源代码存储库中,其中只包含打算重用的代码片段?

如何找到或甚至知道有一段好的代码需要重用呢?如果你的独奏更容易,因为你记得你编码了类似的东西,但即使这样,它也变得有点牵强。

如果您正在以某种方式存储这些代码,那么您也可以通过标记或其他方式对它们进行索引和搜索。我担心它只是归结为一些部落的知识,你只知道,对于情况A,我需要解决方案B,我们有一个很好的代码,已经可以帮助这里。

有点冗长,但我希望你能明白我的目标。如果你想出更好的方法让问题变得更清楚,请注意:)

蒂娅!

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2011-06-23 14:15:57

我不在项目之间共享“对象”,而是共享定义对象的类。

它的实现方式各不相同:有时我构建一个编译后的库,其中包含相互关联的共享类。有时,我会在项目之间手动复制文件,如果只是一个或两个文件,并且不太可能再次被重用--尽管如果我这样做了两次以上,我通常会开始怀疑是应该将这些类添加到现有的库中,还是创建一个新的库。

如何找到可重用的代码?我得知道这个项目。对于许多开发人员多年来一直在进行的大型项目来说,是的,在我开始创建新功能的情况下,它已经发生过一两次--只有它向我指出它已经存在了。现有功能的“可发现性”实际上取决于早期的开发人员,以及他们如何很好地记录了他们所做的事情。文档越好,以后就越不可能有人找不到预先存在的类。

票数 11
EN

Software Engineering用户

发布于 2011-06-23 15:50:30

公司的可重用类就像任何其他供应商库一样,应该以同样的方式对待。唯一的区别是如何创建新版本。

如果正在使用该库的项目在那里发现了一个bug,或者该项目只需要一个有意义的新特性,那么该库的代码就可以在项目中本地更改。

稍后,当更改再次顺利运行时,可以通过将所有所需的更改应用到库的存储库来生成库的新版本。

此时,新版本应该发布给公司的所有开发人员,这样他们就可以决定是否更新任何使用旧版本的项目。

例如,在我的PHP项目中,该库作为Zend Framework库的同级存储在库/供应商目录中,并且它共享相同的命名约定,因此可以同时使用相同的自动加载程序。

票数 2
EN

Software Engineering用户

发布于 2011-06-23 14:55:54

取决于共享代码。

如果这是一个通用的通用功能,它可以用于各种项目,例如如何处理文件上传或如何度量点之间的距离。或常见操作(如字符串操作)或公共数据结构(如并发异步队列)。那么,我认为最好的方法是把它作为一个不同的项目,并构建一个公共库。

在许多大型项目中都可以找到一些著名的Java示例,例如:

  • 阿帕奇公域被许多不同的项目所使用。
  • 番石榴在谷歌的许多地方都有使用。
  • Twitter共用是twitter跨项目使用的工具。

有很多这样的例子..。

另一方面,如果重用的代码更具体,就像在Servlet中那样,它可以进行身份验证,并与公司的适当协议进行接口。我建议对这5个项目进行模块化,以便它们依赖于相同的子项目,并且在您自己的开发环境中,您可以保留您想要的任何项目,并让它们相互引用(简单地使用最现代的IDE)。

因此,在第二种情况下,您应该使用java jars (我使用的是java jars,但是对于任何东西都是一样的):

代码语言:javascript
复制
 + project1.jar
 + project2.jar
 + project3.jar

你会把它改为:

代码语言:javascript
复制
 + project-core.jar
   |- project1.jar
   |- project2.jar
   |- project3.jar
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/86477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档