软件开发规范

软件目录结构规范

  规范化能更好的控制程序结构,提高程序可读性

目录组织方式

Foo/
|-- bin/
|   |-- foo
|
|-- conf/
|   |-- settings.py/
| 
|-- db/ | |-- docs/ | |-- conf.py | |-- abc.rst | |-- setup.py |-- requirements.txt |-- README

简要解释一下:

  1. bin/: 存放项目的一些可执行文件和脚本,当然你可以起名script/之类的也行。
  2. conf/: 存放一些配置文件。
  3. db/:存放一些数据。
  4. docs/: 存放一些文档、日志。
  5. setup.py: 安装、部署、打包的脚本。
  6. requirements.txt: 存放软件依赖的外部Python包列表。
  7. README: 项目说明文件。

关于README的内容 

它需要说明以下几个事项:

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

关于requirements.txt和setup.py

setup.py

一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情。这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。

setup.py可以将这些事情自动化起来,提高效率、减少出错的概率。"复杂的东西自动化,能自动化的东西一定要自动化。"是一个非常好的习惯。

requirements.txt

这个文件存在的目的是:

  1. 方便开发者维护软件的包依赖。将开发过程中新增的包添加进这个列表中,避免在setup.py安装依赖时漏掉软件包。
  2. 方便读者明确项目使用了哪些Python包。

这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python包依赖都装好了。

posted @ 2018-10-05 15:32  Roygood  阅读(746)  评论(0编辑  收藏  举报