各语言的通用项目结构

对于稍微大一点的项目,就需要考虑项目结构的问题,过于扁平会导致结构混乱,而嵌套过于深入也会导致项目臃肿复杂。

Python

python开源项目目录结构参考 描述的结构值得参考:

$PROJ_NAME/    按照你实际的项目名称创建目录。如果有多个子项目,就创建多个目录。它们都应该在 Pycharm 里设为 `sources root`
docs/            项目文档
scripts/         项目用到的各种脚本
tests/        测试代码,也应该设置为 `source root`
extras/        扩展,不属于项目必需的部分,但是与项目相关的 sample 等
    dev_example/
    production_example/
.gitignore
LICENSE        版权声明
README.md    项目说明文件,其他需要的目录下也可以放一个README文件,说明该目录的内容
setup.py   # 如果仓库需要打包成 package,需要有这个文件。
poetry.toml  # 使用 poetry 做依赖管理。也可以用 `requirements.txt`/`Pipfile`

注意: Python 项目不需要 src 文件夹,子项目都放在顶级目录下。

Java

相比之下呢,Java 项目通常设 src 文件夹,gradle 自动生成的项目结构如下:

项目根目录:
  build:
    - 编译输出
  src:
    main:
      java:
        - Java 代码包,sources root
      kotlin:
        - Kotlin 代码包,sources root
      resources
        - 配置文件、资源文件,resources root
    test:
      java:
        - 测试代码包,test sources root
      kotlin:
        - Kotlin 测试代码包,test sources root
      resources
        - 测试用的配置文件、资源文件,test resources root

然后再通过功能横向或者纵向划分,把功能分成多个 package 实现,这一点上 Java 和 Python 通用,比如 MVC 分层。

Golang

参见 Standard Go Project Layout,Go 语言的项目结构,不得不说有点特别。

posted @ 2019-01-15 14:16  於清樂  阅读(204)  评论(0编辑  收藏  举报