开发目录结构

开发目录结构

Development directory Structure

我想知道开发项目中通常使用什么目录结构。 我的意思是促进构建,部署发布等的想法。

我最近在Java项目中使用了Maven结构,但是我不确定这对于非Maven驱动的项目而言是最好的结构。

所以,我有两个问题:当你们开始新项目时,您使用什么结构? 并且:如果您需要将两种不同的语言集成在一起,例如将Java类集成到PHP应用程序中,该怎么办? PHP文件是源文件,Web文件,您使用的是/ src,/ classes,webapps / php吗? 在这种情况下您有什么选择。

注意:我也想知道您为目录名称选择了什么。 我喜欢3个字母的名称(src,lib,bin,web,img,css,xml,cfg),但是您对诸如libraris,来源或htdocs / public_html之类的描述性名称有何看法?


在使用不同的结构工作了几年之后,我最近发现了一种对我来说变化最大的结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
/project_name     (everything goes here)
  /web            (htdocs)
    /img
    /css
  /app            (usually some framework or sensitive code)
  /lib            (externa libs)
    /vendor_1
    /vendor_2
  /tmp
    /cache
  /sql            (sql scripts usually with maybe diagrams)
  /scripts
  /doc            (usually an empty directory)

尽管我们不使用Maven,但是我们使用Maven目录结构。

我们发现它准确反映了我们需要的概念(例如,将部署代码与测试代码分离,将数据与数据分离,将安装程序与代码分离)。 我们还认为,如果有一天我们切换到Maven,我们的大多数过程将保持不变。


2011年更新:
http://java.sun.com/blueprints/code/projectconventions.html


我刚刚在Zend网站上找到了有关目录结构的有趣文档:
http://framework.zend.com/wiki/display/ZFDEV/Choosing+Your+Application%27s+Directory+Layout


推荐阅读