为什么要设计好目录结构?
“设计项目目录结构”,就和"代码编码风格"一样,属于个人风格问题。对于这种风格上的规范,一直都存在两种态度:
可读性高: 不熟悉这个项目代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。
可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。
所以保持一个层次清晰的目录结构是有必要的。更何况组织一个良好的工程目录,其实是一件很简单的事儿。
假设你的项目名为foo, 我比较建议的最方便快捷目录结构这样就足够了:
目录结构示例
Foo/
|-- bin/
| |-- foo
|
|-- core/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- logs/
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
解释:
bin/: 存放项目的一些可执行文件,也可以起名script/之类的。
core/: 存放项目的所有源代码,也可以命名为项目名,如foo/。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目