我是从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中专门完成?
我正在使用GIT来管理内容管理系统(CMS)项目.CMS可以有多个插件(模块).
所以基本上,我想拥有3种类型的存储库:
对于类型1和类型2,我猜它是简单的基本存储库.但当涉及到客户项目时,我感到困惑:
所以问题是:我应该如何组织存储库/文件/文件夹以提高效率?
我试图通过单元测试来弄湿我的脚.我目前不习惯为类编写接口,除非我预见到某些原因我需要交换不同的实现.好吧,现在我预见到一个原因:嘲笑.
鉴于我将从几个接口转到可能数百个接口,首先突然出现的是,我应该把所有这些接口放在哪里?我只是将它们与所有具体实现混合在一起,还是应该将它们放在子文件夹中.例如,控制器接口应该在根/控制器/接口,根/控制器或其他完全?你有什么建议?
c# unit-testing dependency-injection interface project-organization
是否有用于组织多文件Ruby程序的标准或传统系统?我已经开始使用Ruby中的第一个大型"项目",这是一个逻辑上组织成多个文件和目录的搜索程序.我在下面概述了我的潜在结构:
但是,代码目前有一个类(让我们称之为Searcher),每个协议的搜索类都继承自(GoogleSearcher <Searcher).为了管理这个,我需要将主文件包含在这些协议文件中(对吗?),考虑到我理想的结构,这似乎是不可能的.
除了我的具体例子,我想知道是否有任何约定,例如"更多文件而不是更少",或"文件的逻辑结构是不必要的".有一个"帮助"函数的文件是常见的(例如在Rails中?)什么级别的抽象被认为是合适的?
最后,我计划有一天将它集成到Rails作为库(不是插件;我希望它也可以单独工作).我不知道这是否会影响组织.
我知道这是一个非常开放的问题,但那是因为我会感谢任何与远程相关的建议.提前致谢.
ruby ruby-on-rails project code-organization project-organization
注意:我已经看过这个,并试图尽可能多地从中获取; 但我相信我的背景不同.
我正在开展一个小型项目.称之为Foobar.我想要把它做得更有组织.我已经尝试了一些项目,主要是作为一个无组织的编程,作为一个光的爱好学生.我想要变得更有条理; 这些项目中有90%是在我完全没有记录或者因为我丢失它们之后发生的.
因此,我一直在考虑让版本控制/托管进行.它不仅会组织我更多,而且(如果它在这里很大)如果它进入任何可用的状态,它将更容易获得.
我正在考虑的两个地方是Google Code和GitHub.从我链接的问题:
Google代码:
- 与任何Google页面一样,复杂性几乎不存在
- 每个人(或几乎每个人)都有一个Google帐户,如果人们想要使用问题系统报告问题,那就太好了
GitHub的:
- 可能(也可能不会)比谷歌的页面更复杂(虽然对我来说不是问题)但......
- ...有比Google服务更漂亮的界面
- 它需要人们在GitHub上注册以发布问题
- 我喜欢这样的事实:使用Git,您可以在本地进行自己的修订
由此我倾向于GitHub,因为谷歌代码看起来并不吸引我.
对于一个小的业余爱好项目 - 基本上使社区功能无关紧要 - 有哪些功能应该把我带到一边或另一边?
惯例1:高级类型目录,项目子目录
例如,wxWidgets项目使用以下样式:
/solution
/bin
/prj1
/prj2
/include
/prj1
/prj2
/lib
/prj1
/prj2
/src
/prj1
/prj2
/test
/prj1
/prj2
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
惯例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).
为开发人员添加或删除其他项目或源文件尽可能简单且最不容易出错.
问题:
在Protractor中定义嵌套页面对象的规范方法是什么?
使用案例:
我们有一个复杂的页面,由多个部分组成:过滤器面板,网格,摘要部分,侧面的控制面板.将所有元素和方法定义放在单个文件和单个页面对象中不起作用和扩展 - 它变得一团糟,难以维护.
javascript selenium project-organization pageobjects protractor
想象一下国际象棋游戏的以下两类:
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.pas和ChessPiece.pas单元中定义这两个类.
如何避免我遇到的圆形单元参考(在另一个单元的接口部分需要每个单元)?
您会建议哪些工具或方法让"一人团队"保持井井有条?
我正在进行涉及大量编码的研究,编写数百个丢弃的perl脚本,使用的C++二进制文件,直到找到更好的方法,大量数据以不同的方式进行预处理,其中一些新的预处理使得古老的方式已经过时 - 直到我发现旧的方式实际上更好,等等.我的工作本身就是一个不断变化的目标,因为我必须尝试很多东西,而且往往都不是完美的.
这不是一个完全混乱的情况,但它也远非完美.在这种情况下,您会推荐一般方法吗?我确实使用SVN我的代码,虽然不是因为它太大而不适用于不同版本的数据.跟踪所有脚本和二进制文件很难,所以我总是评论它们,写下我如何运行它们等等.但是我很好奇你是否还有其他一些想法.
(我在linux系统上工作.)
version-control project-management code-organization project-organization
这是我在许多公司遇到的一个问题:质量保证团队应该向开发组织报告,还是等同于公司层次结构中的开发?
c# ×1
delphi ×1
eclipse ×1
git ×1
github ×1
google-code ×1
interface ×1
java ×1
javascript ×1
module ×1
nmake ×1
pageobjects ×1
project ×1
protractor ×1
qa ×1
repository ×1
ruby ×1
selenium ×1
unit-testing ×1