一、规范目录结构的好处:

  1、可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。

  2、可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。随着时间的推移,代码规模增加,项目结构不会混乱,仍然能够组织良好。

二、目录组织形式:

 

项目名
|-- bin
|   |-- 启动脚本.py
|
|-- 项目名
|   |-- tests
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |
|   |-- __init__.py
|   |-- main.py
|
|— conf
|— logs
|-- docs
|   |-- conf.py
|   |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README

 

三、目录结构解释:

  1. bin: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
  2. 项目名: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的主入口命名为main.py,从bin的启动脚本调用main.py
  3. docs: 存放一些文档。
  4. setup.py: 安装、部署、打包的脚本。
  5. requirements.txt:存放软件依赖的外部Python包列表。
  6. README: 项目说明文件。
  7. config:项目配置文件
  8. logs:日志文件

四、关于README文件的内容:参考redis项目的README写法

  1. 软件定位,软件的基本功能。
  2. 运行代码的方法: 安装环境、启动命令等。
  3. 简要的使用说明。
  4. 代码目录结构说明,更详细点可以说明软件的基本原理。
  5. 常见问题说明。

五、setup.py文件:一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。手动部署会遇到过以下问题:

  1. 安装环境时经常忘了最近又添加了一个新的Python包,结果一到线上运行,程序就出错了。
  2. Python包的版本依赖问题,有时候我们程序中使用的是一个版本的Python包,但是官方的已经是最新的包了,通过手动安装就可能装错了。
  3. 如果依赖的包很多的话,一个一个安装这些依赖是很费时的事情。
  4. 新同学开始写项目的时候,将程序跑起来非常麻烦,因为可能经常忘了要怎么安装各种依赖。

 六、总结,简单项目中:bin,项目名(放源代码),conf,logs,这几个目录是必须的,README,main.py,项目名.py(启动脚本),这三个文件是必须的