23

我一直在尝试目录结构,目前正在使用以下结构:

|
 |_项目__
 | |
 | |_blog.com_
 | | |_模型
 | | |_用户故事
 | | |_....
 | |
 | |_noteapp__
 | |_模型
 | |_....
 |
 |_网络______
 | |
 | |_开发者______
 | | |_blog.com_
 | | |_app
 | | |_配置
 | | |_....
 | |
 | |_产品___
 | | |_blog.com_
 | | |_app
 | | |_....
 | |_qe_....
 | |_uat_....
 |
 |
 |_桌面__
             |
             |_开发者______
             | |_noteapp_
             | |_app
             | |_配置
             | |_....
             |
             |_产品...
             |_qe....
             |_uat....

                                                 钥匙
                                                 开发 - 开发
                                                 产品 - 生产
                                                 qe - 质量工程
                                                 uat - 用户验收测试

Web 存储 Web 应用程序,桌面存储桌面应用程序。dev 目录受版本控制,而其他目录(prod、qe、uat)存储它们各自的当前版本。项目目录存放非代码相关的项目项。

您的软件开发目录结构是什么?您推荐该结构有什么原因?

4

9 回答 9

10

我执行以下操作:

  • 项目
    • 项目一
      • 设计
      • 文档
      • 代码
    • 项目 n
      • 设计
      • 文档
      • 代码
    • 不活跃
      • 项目一
        • 设计
        • 文档
        • 代码
      • 项目 n
        • 设计
        • 文档
        • 代码

出于某种原因,将所有文件按项目分组,并将我的非活动项目(我目前未处理的项目)保存在更下方的文件夹中对我有很大帮助。我想我会被他们分心,否则。

于 2009-01-14T06:21:13.450 回答
5

我非常喜欢你更细粒度的叶子,但在顶层,我在按项目组织文件系统时表现得更好。我更有可能在代码目录中思考,“嘿,这个规范是什么?” 而不是在规范目录中思考,“我想要哪个项目的规范?” 要重新排列图表:

|
|___webs____
|           |
|           |_blog.com_
|           |          |
|           |          |_docs_
|           |          |      |
|           |          |      |_mockups
|           |          |      |_user stories
|           |          |      |_...
|           |          |
|           |          |_code_
|           |          |      |
|           |          |      |_dev_
|           |          |      |     |
|           |          |      |     |_app
|           |          |      |     |_cfg
|           |          |      |     |_...
|           |          |      |
|           |          |      |_prod_ 
|           |          |      |_qa_
|           |          |      |_uat_
|           |
|           |_blah.com_
|           |          |
|           |          |_...
|
|_desktop___
|           |
|           |_noteapp__
|           |          |
|           |          |_...
|           |_...


                                                KEY
                                                dev  - development
                                                prod - production
                                                qe   - quality engineering
                                                uat  - user acceptance testing

也就是说,我办公室的组织遵循您的方法,并且似乎支持较大的开发环境。就个人而言,我发现必须在我的项目所在目录之外的目录中搜索模型和其他案例真的很令人沮丧(具体来说,作为分析师,规范与营销模型分开,但我离题了),但是从一个过程 -将这些概念分开的委派立场可能很有意义。

只是我的两分钱。

于 2009-01-14T06:15:25.723 回答
5

我将所有内容存储在我的 Windows 机器上的“c:\projects”目录中,并将 ~/projects 存储在我们的 unix-oid(linux 和 solaris)环境中。下面我有一个“学习”(用于代码实验和片段/目录),然后是每个项目的一个目录。一段时间后,当一个项目失效时,我删除了本地存储,代码仅存档在 SVN 中。

于 2009-01-14T06:18:38.107 回答
2

我通常使用这个目录结构:

  • 项目名称
    • 代码
      • 源代码
      • 测试
      • 建造
    • 设计
    • 文档
    • 工具
于 2010-10-09T17:01:46.000 回答
2
  • src\ <- 多个项目的源代码(下)

  • 测试\

    • test_a <- 用于研发的模块测试(使用 src 文件夹中的一些代码)

    • test_b <- 用于研发的 b 模块测试(使用 src 文件夹中的一些代码)

    • ...
  • main_app_folder <- 用于生产的主要项目文件(使用 src 文件夹中的大部分代码)

  • doc\ <- 文档

  • 工具\

    • tool_a <- tool a(使用 src 文件夹中的一些代码)

    • tool_b <- tool b(使用 src 文件夹中的一些代码)

  • cleanup.exe / .ini <- 用于清理临时构建文件的实用程序。

项目(在 main_app_folder、测试或工具中)可以是 .vcproj(visual studio c/c++)、.mmp(Symbian makefile)、Makefile(linux makefile)。每个项目都有自己的主 .cpp 文件 - 始终包含最少的功能集,其他所有内容都或多或少可重用(在 src\ 文件夹中)。

测试应用程序和工具应用程序之间的区别在于工具显示的东西或多或少有用,而测试只检查它是否有效。

测试应用程序和主应用程序之间的区别在于测试应用程序不包含全部功能,而且测试应用程序可能会启用一些特殊的#define 来进行测试。通常测试应用程序是减少的主要应用程序集,没有额外的#define。

于 2009-04-21T07:28:34.577 回答
1

我倾向于将我所有的项目分组到三个主要目录中:

  • 网页设计 => 任何与网页相关的东西;
  • 编程 => 对于任何与网络无关的东西(即使它具有网络功能);
  • 研究 => 对于我必须阅读论文才能做到的任何事情;

然后在这些文件夹中,我有:

  • 孵化器 => 对于新项目或我采用的项目;
  • 退休(或 atic)=> 对于不活跃的项目;
  • 我每个积极开发的项目的目录;

此外,每个项目都维护在一个 git 存储库中,并带有一个描述它的 doap 文件(以及通常的东西,如 README、INSTALL、NEWS、AUTHORS、LICENSE(通常是 apache2)、一个 docs 目录和 srcs 目录以及可选的 libs 目录和一个构建文件)。如果连接了任何项目,那么 doap 文件会说明它(或者我只是为根项目创建一个文件夹并将所有相关项目放入其中)。上面这两段的唯一例外是 atic 中的一些项目(其中一些是用 Delphi 2 编写的......)。

此外,只存储源,因为我可以快速创建二进制文件。

PS:如果这让你想起了一些你知道的事情,那是因为我在 apache 软件基金会中启发了自己来组织我的项目,所以我有实验室(或研究)、atic、孵化器、doap 文件等。因为这些天我主要是一个java人,我想到了apache......

于 2012-06-02T00:24:07.200 回答
0

svn中的文件:

SomeLibraryX
  SomeLibraryX.sln
  SomeFunctionA.cs
  SomeFunctionB.cs
  ..

SomeApplicationY
  SomeApplicationY.sln
  SomeApplicationY.cs          <-- might use SomeLibraryX as one of the dependencies

SomeApplicationZ
..

一些共享的 \\intra-pc\Releases\ 中的文件

SomeApplicationY 1         <-- folder used to execute compiled binary. Contains all the necessary input files needed for execution.
  Model                    <-- all input files like xml:s and 3ds:s 
  Textures                 <-- all pictures 
  Depencies                <-- all dependency executables and dlls
  SomeApplicationY.exe     <-- main exe
  SomeApplicationY.ini     <-- execution parameters file, that can be drag&dropped onto main exe

SomeApplicationY 2
  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationY 3            <-- the last demo-release of this project that is currently under construction (used for executing and debugging the exe)

  Model 
  Textures
  Depencies
  SomeApplicationY.exe
  SomeApplicationY.ini

SomeApplicationZ 1
...
于 2009-04-19T16:15:58.477 回答
0

我倾向于更扁平的目录结构,并建议尽可能简单。请记住,至少在 Windowsland 中,命令行长度是有限制的。因此,具有非常深的结构可能会产生一些令人讨厌的构建错误。

于 2009-01-14T06:56:45.050 回答
0

我只是为每个项目使用一个简写名称,并将所有相关文件和目录扔到那个目录中。像这样的东西:

  • project_name(项目名称,“简写”)
    • dir1/ (实际上不是这样命名的。)
    • 目录2/
    • 目录/
    • 文件 1
    • 文件2
    • 文件 3
    • 文件N
于 2009-01-14T06:56:52.240 回答