标签: project-organization

Eclipse Java项目文件夹组织

我是从C#/ Visual Studio背景来到Java和Eclipse.在后者中,我通常会组织一个这样的解决方案:

\ MyProjects下\ MyApp的\ MyAppsUtilities\LowerLevelStuff

MyApp将包含一个用于构建.exe的项目,MyAppsUtilities将生成一个由.exe调用的程序集DLL,而LowerLevelStuff可能会构建一个包含更高级实用程序DLL使用的类的程序集.

在Eclipse(Ganymede,但可以说服切换到Galileo)我有:

\ MyProjects下\工作空间\ MyApp的

当我创建我的初始项目时.有一个选项可以将源文件和构建文件放在同一个文件夹中,但是我在一个反映我的包层次结构的路径上创建了.java文件:

\ MyProjects下\工作区\ MyApp的\ SRC\COM\myCompany的\ MYAPP\MyApp.java

我的问题是这样的:当我为.jar文件创建子项目(是正确的Java/Eclipse术语吗?)时,它类似于.NET中的上述MyAppsUtilities和LowerLevelStuff程序集DLL,可以(应该)我等效地组织文件夹吗?例如:

\ MyProjects下\工作空间\ MyApp的\ SRC\COM\myCompany中\ MYAPP\myapputilities\MyAppsUtilities.java

组织这些东西的标准/正确方法是什么?如何在IDE中专门完成?

java eclipse project-organization

28
推荐指数
2
解决办法
6万
查看次数

Git子模块或子存储库还是远程?

我正在使用GIT来管理内容管理系统(CMS)项目.CMS可以有多个插件(模块).

所以基本上,我想拥有3种类型的存储库:

  • 核心CMS开发(每个新项目都是最后一个稳定和未配置版本的结帐)
  • 每个模块/插件1个存储库.(每个新项目都会检查他们想要实现的模块的最后一个稳定版本)
  • 每个项目1个存储库(每个客户端将是一个存储库,代表来自核心CMS和模块的个性化)

对于类型1和类型2,我猜它是简单的基本存储库.但当涉及到客户项目时,我感到困惑:

  • 首先,我将克隆CMS,然后进入/ modules /文件夹并再次克隆所有必需的模块?这将在存储库中创建一个存储库!第一个repo会尝试记录每个模块的.git /文件夹吗?
  • 我无法使用子模块,因为每个客户端都需要对其模块进行个性化.
  • 如果我修改模块的核心组件(不是个性化,只是修复错误),我可以将该单个文件推送到原始模块存储库吗?
  • (不是说会传播到周围的模块unitTest)

所以问题是:我应该如何组织存储库/文件/文件夹以提高效率?

git module code-organization project-organization

25
推荐指数
2
解决办法
1万
查看次数

我在哪里放置所有这些接口?

我试图通过单元测试来弄湿我的脚.我目前不习惯为类编写接口,除非我预见到某些原因我需要交换不同的实现.好吧,现在我预见到一个原因:嘲笑.

鉴于我将从几个接口转到可能数百个接口,首先突然出现的是,我应该把所有这些接口放在哪里?我只是将它们与所有具体实现混合在一起,还是应该将它们放在子文件夹中.例如,控制器接口应该在根/控制器/接口,根/控制器或其他完全?你有什么建议?

c# unit-testing dependency-injection interface project-organization

25
推荐指数
2
解决办法
1万
查看次数

用于组织多文件Ruby程序的系统?

是否有用于组织多文件Ruby程序的标准或传统系统?我已经开始使用Ruby中的第一个大型"项目",这是一个逻辑上组织成多个文件和目录的搜索程序.我在下面概述了我的潜在结构:

  • 主文件.该文件实现了搜索类和一般搜索协议.
  • 算法分析文件.此文件实现解释搜索结果的函数.
  • 协议目录
    • 每个协议包含一个文件进行搜索.
  • 提供目录
    • 该计划的一部分目的是搜索存档的新闻源.此功能的文件将放在此文件夹中.

但是,代码目前有一个类(让我们称之为Searcher),每个协议的搜索类都继承自(GoogleSearcher <Searcher).为了管理这个,我需要将主文件包含在这些协议文件中(对吗?),考虑到我理想的结构,这似乎是不可能的.

除了我的具体例子,我想知道是否有任何约定,例如"更多文件而不是更少",或"文件的逻辑结构是不必要的".有一个"帮助"函数的文件是常见的(例如在Rails中?)什么级别的抽象被认为是合适的?

最后,我计划有一天将它集成到Rails作为库(不是插件;我希望它也可以单独工作).我不知道这是否会影响组织.

我知道这是一个非常开放的问题,但那是因为我会感谢任何与远程相关的建议.提前致谢.

ruby ruby-on-rails project code-organization project-organization

22
推荐指数
2
解决办法
8496
查看次数

GitHub与谷歌代码的业余爱好项目

注意:我已经看过这个,并试图尽可能多地从中获取; 但我相信我的背景不同.

我正在开展一个小型项目.称之为Foobar.我想要把它做得更有组织.我已经尝试了一些项目,主要是作为一个无组织的编程,作为一个光的爱好学生.我想要变得更有条理; 这些项目中有90%是在我完全没有记录或者因为我丢失它们之后发生的.

因此,我一直在考虑让版本控制/托管进行.它不仅会组织我更多,而且(如果它在这里很大)如果它进入任何可用的状态,它将更容易获得.

我正在考虑的两个地方是Google Code和GitHub.从我链接的问题:

Google代码:

  • 与任何Google页面一样,复杂性几乎不存在
  • 每个人(或几乎每个人)都有一个Google帐户,如果人们想要使用问题系统报告问题,那就太好了

GitHub的:

  • 可能(也可能不会)比谷歌的页面更复杂(虽然对我来说不是问题)但......
  • ...有比Google服务更漂亮的界面
  • 它需要人们在GitHub上注册以发布问题
  • 我喜欢这样的事实:使用Git,您可以在本地进行自己的修订

由此我倾向于GitHub,因为谷歌代码看起来并不吸引我.

对于一个小的业余爱好项目 - 基本上使社区功能无关紧要 - 有哪些功能应该把我带到一边或另一边?

google-code github repository project-organization

22
推荐指数
3
解决办法
2万
查看次数

如何使用nmake为C++项目组织项目树?

组织项目文件似乎有两个主要的约定,然后是许多变体.

惯例1:高级类型目录,项目子目录

例如,wxWidgets项目使用以下样式:

/solution
   /bin
      /prj1
      /prj2
   /include
      /prj1
      /prj2
   /lib
      /prj1
      /prj2
   /src
      /prj1
      /prj2
   /test
      /prj1
      /prj2
Run Code Online (Sandbox Code Playgroud)

优点:

  • 如果存在项目依赖项,则可以从单个文件管理它们
  • 平面构建文件结构

缺点:

  • 由于test有自己的头文件和cpp文件,因此当您为EXE文件而不是库生成单元测试应用程序时,它们需要包含您正在测试的应用程序中的目标文件.这需要您创建推理规则并扩展所有源文件的相对路径.
  • 重用另一个解决方案中的任何项目需要您从树结构中提取适当的文件并修改任何构建脚本

惯例2:高级项目目录,类型子目录

例如,Wireshark项目使用此样式

/solution
   /prj1
      /bin
      /include
      /lib
      /src
      /test
   /prj2
      /bin
      /include
      /lib
      /src
      /test
Run Code Online (Sandbox Code Playgroud)

优点:

  • 项目本身在其文件夹中是自包含的,使其更易于移动和重用
  • 允许在构建工具中使用更短的推理规则
  • 促进分层构建脚本

缺点:

  • 如果项目之间存在依赖关系,则需要在项目目录上方添加一层构建脚本来管理构建顺序

我们目前正在使用我们项目的惯例1,到目前为止它已经运作得相当好.现在,我正在添加单元测试(通过CxxTest)并使用nmake促进迁移到持续集成,约定1在创建正确的nmake文件时引起了一些严重的麻烦.

我的主要要求/目标是:

  • 降低维护整个解决方案的构建脚本的工作量.

  • 在其他项目的解决方案中分离项目及其构建步骤.

  • 通过使用构建脚本进行签出以便为每次提交释放媒体生成,从而促进持续集成(显然也利用其他工具,如CruiseControl).

  • 为开发人员添加或删除其他项目或源文件尽可能简单且最不容易出错.

所以我问:

  • 这两种方法都有其他优缺点吗?
  • 有没有一个明确的agrument只赞成这些约定之一?

build-automation nmake project-organization

17
推荐指数
1
解决办法
3442
查看次数

量角器中的嵌套页面对象

问题:

在Protractor中定义嵌套页面对象的规范方法是什么?

使用案例:

我们有一个复杂的页面,由多个部分组成:过滤器面板,网格,摘要部分,侧面的控制面板.将所有元素和方法定义放在单个文件和单个页面对象中不起作用和扩展 - 它变得一团糟,难以维护.

javascript selenium project-organization pageobjects protractor

17
推荐指数
2
解决办法
1477
查看次数

如何避免循环单位参考?

想象一下国际象棋游戏的以下两类:

TChessBoard = class
private
  FBoard : array [1..8, 1..8] of TChessPiece;
...
end;

TChessPiece = class abstract
public
   procedure GetMoveTargets (BoardPos : TPoint; Board : TChessBoard; MoveTargetList : TList <TPoint>);
...
end;
Run Code Online (Sandbox Code Playgroud)

我希望在两个单独的ChessBoard.pasChessPiece.pas单元中定义这两个类.

如何避免我遇到的圆形单元参考(在另一个单元的接口部分需要每个单元)?

delphi project-organization circular-reference

16
推荐指数
3
解决办法
1万
查看次数

如何组织我的所有代码,数据,脚本,任务等?

您会建议哪些工具或方法让"一人团队"保持井井有条?

我正在进行涉及大量编码的研究,编写数百个丢弃的perl脚本,使用的C++二进制文件,直到找到更好的方法,大量数据以不同的方式进行预处理,其中一些新的预处理使得古老的方式已经过时 - 直到我发现旧的方式实际上更好,等等.我的工作本身就是一个不断变化的目标,因为我必须尝试很多东西,而且往往都不是完美的.

这不是一个完全混乱的情况,但它也远非完美.在这种情况下,您会推荐一般方法吗?我确实使用SVN我的代码,虽然不是因为它太大而不适用于不同版本的数据.跟踪所有脚本和二进制文件很难,所以我总是评论它们,写下我如何运行它们等等.但是我很好奇你是否还有其他一些想法.

(我在linux系统上工作.)

version-control project-management code-organization project-organization

14
推荐指数
1
解决办法
1279
查看次数

QA应该向开发报告吗?

这是我在许多公司遇到的一个问题:质量保证团队应该向开发组织报告,还是等同于公司层次结构中的开发?

qa project-organization

13
推荐指数
4
解决办法
1万
查看次数