你如何组织你的代码库?
-
21-08-2019 - |
题
我很想知道人们如何组织他们的代码库,特别是在可重用组件方面。我在下面用面向对象的术语进行讨论,但我也对您如何组织其他类型语言的库感兴趣。
例如:
- 您是否对所有内容都坚持使用类库项目,还是更喜欢将所有内容保留在一个项目中?
- 您是否重用预构建的 DLL,或者是否在当前工作中包含以前项目中的各个类?如果是单独的课程,您是否在项目之间共享它们以确保所有课程都保持最新,或者您是否允许分支?
- 您的可重复使用元素有多大?他们有多专注?他们的注意力如何集中?
- 通过您的首选实践,您能达到什么程度的重用?
ETC。
编辑
我并不是在这里寻求具体的指导,我只是对人们的想法和实践感兴趣。我对不同项目之间(而不是单个项目内)代码的重用特别感兴趣。(不幸的是,这里使用“项目”具有误导性 - 我的意思是为客户进行的实际项目之间的重用,而不是 Visual Studio 意义上的项目。)
解决方案
一般可以通过以下方式引导 部署 考虑因素:
您将如何部署(即您将在生产机器上复制什么)?
如果您正在部署的是 包装好的 组件(即dll,jar,war,...),将“代码库”组织为集合是明智的 包装好的 文件集。
这样,您将直接使用 dll、jar、war 等进行开发。-- 将部署在生产平台上。
这个想法是:如果它可以与这些打包文件一起使用,则它仍然可以在生产中使用。
在不同项目之间而不是在单个项目内重用代码。
我认为“组件”方法中的重用更容易(就像问题“中讨论的那样”)GIT 中的供应商分支")
我们目前在 40 多个项目中取得了以下成果:
- 技术重用 通过系统地将任何纯技术方面隔离到独立的框架中(通常是日志框架、异常框架、KPI - 关键绩效指标 - 框架等)。
这些技术组件被重用到所有其他项目中。 - 功能重用 通过设置一个明确的 应用性的 架构,以便将任何功能域(给定业务和功能规范)划分为定义良好的应用程序。例如,这通常涉及总线层,它也是公开任何其他项目重用的服务的绝佳候选者。
概括:
对于大型功能域,单个项目难以管理,良好的应用架构将导致自然的代码重用。
其他提示
无论您决定做什么,良好的源代码控制对此都至关重要,因为它允许您以任何您喜欢的方式实施您的策略,而不会最终产生大量不相关的库副本。良好的分支支持至关重要。
不隶属于 StackOverflow