问题标签 [repository-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
913 浏览

version-control - 具有共享库的多个项目/解决方案的源代码控制

我目前正在开展一个项目,将许多 Excel VBA 驱动的工作簿转换为 VSTO 解决方案。所有的工作簿都会共享一些类库和第三方程序集,实际上大部分工作都是在类库中完成的。我目前的文件夹结构是这样布局的。

每个工作簿都是自己的解决方案,工作簿解决方案只是引用文件夹结构中的程序集。我的问题是您将如何布置源代码控制?你会在基地启动存储库吗?或者您会为每个工作簿解决方案创建一个存储库吗?你会重新排列文件夹吗?

现在我们已经完成了最初的开发,我们即将有一群外部开发人员加入到项目中来帮助我们转换其余的工作簿,我真的很喜欢他们能够从基础中签出的想法目录并准备好所有依赖项。我还担心在一个源代码控制存储库下拥有 20 多个解决方案/项目会带来其他问题。

对于加入该项目的人来说,我希望一切都尽可能简单,但我不想牺牲长期可用性。在我看来,我一直在来回走动,一个存储库或每个解决方案一个存储库更简单?

我会很感激你的见解和见解,因为我刚出来。

附加信息:目前,我个人使用的是 Mercurial,但该项目可能会转移到 StarTeam,除非我能为其他东西提出一些令人信服的论据。

0 投票
1 回答
992 浏览

c# - 如何使用存储库设计模式更新创建和修改的字段?

我目前正在开发我的第一个asp.net mvc 应用程序。我正在尝试从我看到的所有示例项目中汲取灵感,并尝试使用存储库设计模式

我有一个名为 IUserRepository 的接口,如下所示:

我的 IUser 界面有一堆属性和 CreatedBy、CreatedDate、ModifiedBy 和 ModifiedDate 的属性。

我的 UserRepository 如下所示:

在我当前的 Web 应用程序中,当我的用户登录时,我将我的客户业务主体存储在当前线程上,当我的业务对象更新时,我只使用当前业务主体的 Identity 属性上的 Name 属性,它工作得很好。

那么我的问题是什么?我应该在我的存储库的 Add 或 Update 方法中做同样的事情,还是实际上将 IUser 引用传递给当前 User 并从那里获取 UserId 会更好?

感谢任何输入!

0 投票
4 回答
410 浏览

c# - 何时将某些实体分成不同的存储库?

我通常会尝试将所有相关实体保存在同一个存储库中。以下是两者之间有关系的实体(标有缩进):

  • 用户
    • 用户偏好

因此,进入用户存储库是有意义的。但是,用户通常与许多不同的实体相关联,在下面的示例中您会怎么做?

  • 用户

    • 用户偏好
    • 命令
  • 命令

    • 产品

订单与产品和用户都有关系,但您不会将所有 4 个实体的功能都放在同一个存储库中。当您与用户实体打交道并收集订单信息时,您会做什么?您可能需要有关产品的额外信息,并且 ORM 通常会提供延迟加载的能力。但是,如果您的产品实体与用户实体位于单独的存储库中,那么这肯定会导致存储库之间发生冲突吗?

0 投票
3 回答
8094 浏览

version-control - Mercurial 与多个项目

我的 SVN 存储库中有几个具有不同发布周期的项目。版本是使用 SVN 中的经典标签结构创建的。当版本中存在要修复的错误时,会从标签创建分支,修复错误,然后从那里合并到主干中。

现在,出于多种原因,我想通过中央推送站点从 SVN 切换到 mercurial。

问题:在 mercurial 中,组织多个项目之间共享少量代码的最佳方式是什么?我应该为每个项目创建多个推送站点吗?

请在答案中包含有关如何使用您首选的存储库设计版本重新创建我的发布标签、错误修复分支的描述。

编辑:我想安装尽可能少的扩展。

编辑2:

鉴于此 SVN 布局:

(感谢@bendin!:))

使用多个 hg 推送存储库会更好吗

为树枝。标签被折叠到适当的分支中。

或者您更愿意在本例中使用两个推送存储库

具有命名的分支,因此在一个 repo 中有多个头。

我看到的多头存储库的优势是我不必在多个存储库中寻找标签。我看到的缺点是 hg 书似乎不鼓励多头回购。你会/做什么?

0 投票
1 回答
163 浏览

continuous-integration - 具有相同基本仓库的两个“配置”时的存储库结构?

所以我的存储库有点结构问题。我希望你们能给我一些关于如何继续前进的指示。

设置;

我有一个大型网络项目,集成了几个开源解决方案。我在 Bazaar 存储库中拥有所有内容。

问题;

我现在想要这个站点的两个或更多“配置”,这意味着数据库和 css/模板必须不同。我如何正确地分支这个?我不希望我的“基础网络项目”在两个或更多存储库中。

将另一个配置数据库放在另一个 repo 中很好,但是当我从基本 repo 中移出 .css 时会出现问题。

快速搜索“.css”可以找到大约 200 个文件。我可以清理它,但是每当我更新我的开源目录时,我都会遇到集成地狱。

主意;

我目前的想法是拥有一个没有css 文件的 basesite-repo,以及另一个带有数据库的 config-repo,用于 basesite-repo 和所有 200 个 .css 文件。

每当我想签出站点并进行设置时,这都可以正常工作,在同一目录中进行两次签出。应该工作吧?

但是,当我在本地站点(意思是 base+config)上工作时,我该如何解决呢?在同一个目录中有两个分支?我预见到发布错误修复将是一件痛苦的事情......如果它甚至支持(?)

我的想法结构如何;

在过去的十年中,这个问题一定已经解决了好几次。但我仍然很迷茫,所以任何指导将不胜感激。

0 投票
3 回答
9489 浏览

asp.net - 存储库模式最佳实践

所以我在一个应用程序中实现存储库模式,在我对模式的理解中遇到了两个“问题”:

  1. 查询 - 我已经阅读了使用存储库时不应使用 IQueryable 的响应。但是,很明显,您希望在每次调用方法时都不会返回完整的对象列表。是否应该实施?如果我有一个名为 List 的 IEnumerable 方法,那么 IQueryable 的一般“最佳实践”是什么?它应该/不应该有哪些参数?

  2. 标量值 - 返回单个标量值而不必返回整个记录的最佳方式是什么(使用存储库模式)?从性能的角度来看,在整行上只返回一个标量值不是更有效吗?

0 投票
5 回答
458 浏览

c++ - 处理多个颠覆项目之间的关系

在我的公司,我们使用一个 SVN 存储库来保存我们的 C++ 代码。代码库由公共部分(基础设施和应用程序)和客户端项目(作为插件开发)组成。

存储库布局如下所示:

  • 基础设施
  • 应用程序1
  • 应用程序2
  • 应用程序3
  • project-for-client-1
    • App1-插件
    • App2-插件
    • 配置
  • 客户项目 2
    • App1-插件
    • App2-插件
    • 配置

客户项目的典型发布包括项目数据和它使用的每个项目(例如基础设施)。

每个目录的实际布局是 -

  • 基础设施
    • 分支机构
    • 标签
    • 树干
  • 客户项目 2
    • 分支机构
    • 标签
    • 树干

其他项目也是如此。

上面的布局有几个问题:

  1. 很难为客户项目启动一个全新的开发环境,因为必须检查所有涉及的项目(例如:Infrastructure、App1、App2、project-for-client-1)。
  2. 出于与上述相同的原因,很难在客户端项目中标记发布。
  3. 如果客户项目需要更改一些通用代码(例如基础设施),我们有时会使用分支。很难跟踪项目中使用了哪些分支。

SVN 有什么办法可以解决以上问题吗?我曾想过在客户项目中使用 svn:externals,但在阅读了这篇文章后,我明白这可能不是正确的选择。

0 投票
6 回答
3052 浏览

svn - svn:开发过程早期的模块组织

好的,我了解具有单个项目的存储库的主干/标签/分支。

现在假设我有一个主项目和一些较小的辅助模块/插件/工具/脚本等。在早期阶段有很多重命名、重组等,其中一些因无处可去而早逝. 在组织相当稳定之前,将特定模块插入主干对我来说是没有意义的。(此时根据 svn 设计,复制到主干是“便宜的”)

在其开发过程的早期放置小型模块(例如“FooModule”)的最佳位置是哪里?

  • /分支机构/发展/FooModule ?
  • /开发/FooModule ?
  • /沙盒/模块/FooModule ?

有没有人以类似的方式组织颠覆存储库的经验?什么对你有用?

0 投票
6 回答
2665 浏览

svn - SVN 存储库结构

我正准备建立一个 SVN 存储库,并且想知道是否有人有一个很好的 repo 结构示例。我目前在想:

开发
.. 应用程序
.... App1
...... 主干
...... 分支
...... 标签
.. 数据库
.. 第三方

虽然这个结构可能可以容纳我们需要的一切,但我想让它更细化一些。有什么想法吗?

0 投票
3 回答
233 浏览

maven-2 - 我应该如何布置我的存储库?

我正在将一个应用程序从它与一堆其他东西共享的 svn 存储库中移出到它自己的全新存储库中。所以,我有机会重新开始布局。

该应用程序本身有两个组件 - 一个相当标准的 Java webapp,它与数据库通信,以及一个后端组件,也是 Java,它轮询数据库,并根据它发现的内容启动长时间运行的处理任务 - 本质上是数据库被用作队列。代码分为三个包:

  1. org.blah.common- 在 Web 应用程序和后端之间共享的代码,例如 DAO
  2. org.blah.webapp- 网络应用程序;这取决于org.blah.common,并构建到.war文件中。
  3. org.blah.backend- 后端流程;这取决于org.blah.common,并构建为包含 jar 和一些脚本的 tar 文件。

我还想将其他一些 tomcat 和 apache 配置也放入 svn。

现在,所有三个包都在一个src目录下的 svn 中,并且有一个具有不同目标的 ant 脚本来构建不同的部分。这一切都有点杂乱无章——svn:ignore 属性变得相当大,而且一个目录中的脚本与src.

我被maven 标准目录布局所吸引,但我以前没有使用过它。我想出了这个:

请注意,现在,我不打算迁移到 maven - 我将调整现有的 ant 脚本,因为它们可以工作。不过,我想保留在未来某个时候迁移到 maven(或类似 buildr,使用 maven 布局的东西)的选项。

所以:

  • 这似乎是布置存储库的合理方式吗?有什么东西会让我走得更远吗?
  • 这对于刚接触该应用程序的人来说会很明显吗?
  • 这是否与 Maven 兼容,我应该决定使用它吗?(我知道理论上,你可以让 maven 使用任何布局,但我相信他们推荐一个标准是有原因的。)
  • IDE 会对此有任何问题吗?(根据我使用的计算机,我使用 intellij 或 eclipse。我团队中的其他人——他们对此没有意见——使用 netbeans。)