我很想知道人们如何组织他们的代码库,特别是在可重用组件方面。我在下面用面向对象的术语进行讨论,但我也对您如何组织其他类型语言的库感兴趣。

例如:

  • 您是否对所有内容都坚持使用类库项目,还是更喜欢将所有内容保留在一个项目中?
  • 您是否重用预构建的 DLL,或者是否在当前工作中包含以前项目中的各个类?如果是单独的课程,您是否在项目之间共享它们以确保所有课程都保持最新,或者您是否允许分支?
  • 您的可重复使用元素有多大?他们有多专注?他们的注意力如何集中?
  • 通过您的首选实践,您能达到什么程度的重用?

ETC。

编辑

我并不是在这里寻求具体的指导,我只是对人们的想法和实践感兴趣。我对不同项目之间(而不是单个项目内)代码的重用特别感兴趣。(不幸的是,这里使用“项目”具有误导性 - 我的意思是为客户进行的实际项目之间的重用,而不是 Visual Studio 意义上的项目。)

有帮助吗?

解决方案

一般可以通过以下方式引导 部署 考虑因素:

您将如何部署(即您将在生产机器上复制什么)?

如果您正在部署的是 包装好的 组件(即dll,jar,war,...),将“代码库”组织为集合是明智的 包装好的 文件集。
这样,您将直接使用 dll、jar、war 等进行开发。-- 将部署在生产平台上。
这个想法是:如果它可以与这些打包文件一起使用,则它仍然可以在生产中使用。


在不同项目之间而不是在单个项目内重用代码。

我认为“组件”方法中的重用更容易(就像问题“中讨论的那样”)GIT 中的供应商分支")

我们目前在 40 多个项目中取得了以下成果:

  • 技术重用 通过系统地将任何纯技术方面隔离到独立的框架中(通常是日志框架、异常框架、KPI - 关键绩效指标 - 框架等)。
    这些技术组件被重用到所有其他项目中。
  • 功能重用 通过设置一个明确的 应用性的 架构,以便将任何功能域(给定业务和功能规范)划分为定义良好的应用程序。例如,这通常涉及总线层,它也是公开任何其他项目重用的服务的绝佳候选者。

概括:
对于大型功能域,单个项目难以管理,良好的应用架构将导致自然的代码重用。

其他提示

我们遵循以下原则:

  • 发布-重用等效原则:再利用的颗粒就是释放的颗粒。
  • 常见的封闭原则:包中的类应该针对相同类型的更改关闭在一起。
  • 共同的重用原则:包中的类可以一起重用。
  • 非循环依赖原则:包依赖图中不允许出现循环。
  • 稳定依赖原则:取决于稳定的方向。
  • 稳定抽象原则:包应该既抽象又稳定。

您可以通过以下方式了解更多信息 这里 以及以上 这里.

这取决于你工作的平台。我是一名(自豪的)Java 开发人员,我们有很好的工具来组织我们的依赖项,例如 梅文 或者 常春藤

无论您决定做什么,良好的源代码控制对此都至关重要,因为它允许您以任何您喜欢的方式实施您的策略,而不会最终产生大量不相关的库副本。良好的分支支持至关重要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top