好的设计项目目录结构,就和编码风格同样,是每一个程序员都有的风格,可是在流水化标准化做业过程当中,个python
性和风格是不被鼓励的。若是你去维护一个很是很差读的项目,虽然实现逻辑并不复杂,可是对后续的维护者来讲程序员
就是灾难。数据库
[优势]api
1. 可读性高 后续维护人员能够一眼看懂目录结构,没必要为复杂混乱的层次耗费大量精力。测试文件在哪,配置文 件在哪会被放置在规范操做的地方,可让后续人员快速的了解这个项目。 2. 可维护性高 看清目录架构以后,维护者能够将后续新增的文件和代码按照规范放置在规定的地方,虽而后续代码 和文件增多,可是项目目录并不会混乱,仍然可以快速组织良好 因此说,保持一个层次清晰的目录结构是很是必要的,也是体现一个程序员思路和视野格局的一个标准
目前各个开发语言在工程目录结构方面,已经取得了一些共识的目录结构.架构
例如,以下的一个简单的ATM目录结构,开发人员能够快速的了解项目的启动入口,用户层模块,逻辑接口层模测试
块,数据处理模块,日志模块等等。ui
ATM/ |-- bin/ | |-- start.py | |-- core/ | |-- src.py | |-- conf/ | |-- settings.py | |-- lib/ | |-- common.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- run.py |-- setup.py |-- requirements.txt |-- README
ATM:项目目录编码
bin/:存放启动文件,通常也能够放在项目的根目录下设计
core/:存放业务逻辑相关代码日志
conf/:存放配置文件
lib/:存放程序中经常使用的自定义模块
api/:存放接口文件,接口主要用于为业务逻辑提供数据操做
db/:存放操做数据库相关文件,主要用于与数据库交互
run.py:程序的启动文件,通常放在项目的根目录下,由于在运行时会默认将运行文件所在的文件夹做为
sys.path的第一个路径,这样就省去了处理环境变量的步骤,也能够放在bin下,二者选其一
setup.py:安装、部署、打包的脚本
requirements.txt:存放软件依赖的第三方模块
README: 项目说明文件
关于README的内容,这个应该是每一个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速
了解这个项目。它须要说明如下几个事项:
一、软件定位,软件的基本功能; 二、运行代码的方法: 安装环境、启动命令等; 三、简要的使用说明; 四、代码目录结构说明,更详细点能够说明软件的基本原理; 五、常见问题说明。