问题标签 [project-structure]

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 投票
5 回答
20300 浏览

maven-2 - 如何在 Maven 中使用或滥用工件分类器?

我们目前正在尝试将使用 ant 构建的非常(非常)大的项目移植到 maven(同时也迁移到 svn)。正在探索重塑项目结构以最适合 Maven 范式的所有可能性。

现在更具体地说,我遇到了分类器,并想知道如何利用它们来发挥自己的优势,同时避免使用“分类器反模式”。

谢谢

来自:http ://maven.apache.org/pom.html

分类器:你可能偶尔会在坐标上找到第五个元素,那就是分类器。我们稍后会访问分类器,但现在知道这些类型的项目显示为 groupId:artifactId:packaging:classifier:version 就足够了。

分类器允许区分从相同 POM 构建但内容不同的工件。它是一些可选且任意的字符串——如果存在的话——被附加到工件名称之后,紧跟在版本号之后。作为这个元素的动机,例如,考虑一个项目,它提供了一个针对 JRE 1.5 的工件,但同时也提供了一个仍然支持 JRE 1.4 的工件。第一个工件可以配备分类器 jdk15,第二个工件配备 jdk14,以便客户端可以选择使用哪一个。

分类器的另一个常见用例是需要将辅助工件附加到项目的主要工件。如果您浏览 Maven 中央存储库,您会注意到分类器源和 javadoc 用于部署项目源代码和 API 文档以及打包的类文件。

0 投票
1 回答
4303 浏览

python - 使用 SQLAlchemy 和 wxPython 的桌面应用程序的项目结构

我想使用 SQLAlchemy 和 wxPython 创建一个桌面应用程序,但我想以类似于 django 项目的方式构建项目,使用类似 django 应用程序的包(相关模型、视图和测试在同一个包中)和设置和根目录下的主模块。

我想知道这是否是一个好的结构,以及如何最大限度地减少包之间的耦合。

0 投票
1 回答
1259 浏览

c# - .NET 连接到 git 的项目结构和构建系统

这是一个关于 .NET/git 和构建系统的项目结构的问题,所以我会尽量保持简短:

设置:

  • .NET(C# 和 VB.NET)
  • git(以前的 svn,我们没有使用外部)

我尝试了以下项目结构:

  • [应用名称]
    • .git
    • [NameOfApp - 直接在下面的解决方案文件]
      • [项目1]
      • [项目2]
    • [配置]
    • [标准]:开发人员的一些标准配置(当一个人第一次
      初始化他的仓库时复制它们,但他/她可以更改它们)
    • [脚本]:一些脚本,也是构建系统的脚本
    • [依赖项]
      • [依赖1]:是一个子模块
        • [主文件夹]
          • [解决方案-文件]
            • [项目]
        • [依赖项]
          • [子依赖1]
          • [子依赖2]
            • [依赖2]:另一个子模块
            • [另一种解决方案]:在子模块中,有时我在构建过程中会遇到一些问题。由构建脚本调用。

我正在为我们所有的项目寻找一个好的结构,到目前为止,上述结构仅用于一个项目。

所以我的问题:

  • 看起来这对您来说是一个有效的设置?我知道这是一个难题,但是您是否有类似的设置或类似设置的问题。
  • 你会使用 git 子模块还是有更好的东西?有人说它们是邪恶的,可能会引起问题。仅供参考,我的子模块是许多项目使用的项目。依赖项有时会保存解决方案文件,所以我的项目文件夹不够整洁。然后在我的 mainapp 中引用其中的项目。我不知道子树是否足够,我也听说过 repo (for android),也许这是一个解决方案?或者还有其他用于管理依赖项的工具吗?
  • 有时我的依赖项也有依赖项。因此,当我进行递归克隆时,我会得到一个带有子依赖项的奇怪结构(参见上面的结构)。有时我必须向我的主应用程序添加子依赖项,因为我想在那里更改某些内容并且依赖项需要重建。那么如何保持子依赖或子子依赖呢?
  • 如果您有开源依赖项(例如来自 github),您是否直接使用 dll?还是你 fork 并添加一个 git 子模块?
  • 您是将所有项目添加为项目引用还是直接引用 dll(例如,为您的子或子子依赖项将其分解一点,而不总是重建整个项目树)?
  • 您更喜欢哪种构建系统?

我知道这些不是一个“正确”答案的问题,但也许你可以帮助我一点并分享一些想法。

谢谢, Cyber​​1000

0 投票
3 回答
467 浏览

git - 维护两个安装在必须相互隔离的不同服务器上 90% 相同的代码库?

我们为客户端创建了一个 webapp,将它部署到它自己的服务器上,现在它已经上线了。我们的业务人员刚刚安排了一笔交易,我们可以使用相同的应用程序,但它必须在不同的服务器上,并且必须重新命名外观和感觉。因此,应用程序之间的唯一区别是 CSS 和数据库。我负责维护这两个装置。

目前,我将 Git 存储库中的代码部署到运行 Ubuntu 服务器的 Linode。我怎样才能设置站点的第二个副本,并且仍然尽可能保持一切干燥?

我宁愿不必对 90% 的共享代码进行错误修复,然后记住我所做的并将更改复制到第二个 repo。

0 投票
4 回答
51888 浏览

ruby - 如何建立一个基本的 Ruby 项目?

我想创建一个包含 10 ~ 20 个类/文件的小型 Rub​​y 项目。我需要一些宝石,我想使用 RSpec 作为测试框架。

我以后可能想构建一个 gem,但这并不确定。

是否有一些方法或指南向我展示如何设置项目的基本结构?

我的问题是:

  • 我将所有自定义错误/异常放在哪里?
  • 是否有一些命名目录的约定,如 lib、bin、src 等?
  • 我在哪里放置测试数据或文档?
  • 我在哪里需要我的所有文件,以便我可以在我的项目中访问它们?

我知道我可以从头开始做所有事情,但我想要一些指导。那里有一些我可以复制的好宝石,但我不确定我真正需要什么以及我可以删除什么。

我查看了http://gembundler.com/,但在设置 Bundler 后它停止了。

0 投票
1 回答
103 浏览

eclipse - 编译Eclipse java applet 和android 项目时用到哪些文件?

如果我将与代码无关的文件(例如 photoshop 源文件、概念图、另一个文件夹中的代码增量)放在 Eclipse 项目中,这些文件会在编译后添加到生成的文件中吗?

提前致谢。

0 投票
1 回答
532 浏览

java - MVC 项目结构验证类(java)

我正在创建一个 Java 桌面应用程序,并且想知道我应该如何处理验证。

我在控制器中收到带有注册信息(用户名、密码……)的地图。现在我想验证地图中的信息并显示验证中发生的所有错误。所以我想在一个名为验证的新包中创建一个自定义类 RegistrationValidation。然后让这个类返回一个有错误的列表。但我一直在想...

我一直都知道验证应该在正确的模型类中完成,是在制作一个违反 MVC 原则的验证类吗?

我应该在哪里调用这个验证类,从我的控制器还是从我的模型?

我应该如何调用验证类?(使方法静态,使其成为单例,只需在控制器/模型或其他中创建它的实例?)

有没有更好的解决方案来提取验证?

0 投票
3 回答
632 浏览

svn - 分布式开发中的 SVN - 最佳实践?

由多个独立供应商开发的分布式系统经过实践验证的 SVN 结构是什么?

假设一个系统具有例如三层(UI、服务、数据)和它们之间的服务合同:每一层由几个组件组成,这些组件由不同的供应商开发,这些组件不依赖于特定的层,例如供应商 A 为 UI 和服务开发组件层和供应商 B 为服务和数据层开发组件。

每个供应商应仅对其自己的组件具有写访问权以及对所需服务合同的读访问权。

-> 在这种情况下构建 SVN 的好方法是什么?

按供应商?按层?两个都?... ?

0 投票
1 回答
1582 浏览

php - 在 symfony 2 中存储自定义实用程序和助手的 Symfonian 方式

有时我会编写一些函数或程序作为帮助程序和实用程序,以便在我的所有应用程序中使用......现在我开始使用 Symfony 2,我不知道根据 symfony 2 哲学的最佳方法是什么Bundles...我不希望仅仅为了存储几个函数而创建一个完整的Bundle,但如果这是最好的方法,我会这样做。谢谢!

0 投票
2 回答
953 浏览

java - 在项目之间共享常量

我有两个java项目;一个服务器项目和一个客户端项目。在两者之间的网络代码中,我发送请求。我不想在代码中为不同类型的请求键入 0、1、2,所以我改用常量。我的问题是我不想在两个项目中声明这些常量,而是在一个地方声明,因为两个项目的常量相同。有谁知道一个好的解决方案?

编辑:客户端项目是一个 android 应用程序,服务器是一个 servlet,它应该处理来自客户端的请求。