python软件目录结构规范

软件目录结构规范

软件开发规范

一、为什么要设计好目录结构?

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

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

二、目录组织方式

关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构。

假设你的项目名为Notebook

Notebook/
|-- bin/    存放项目的一些可执行文件,当然你可以起名script/之类的也行,但bin/更直观。易懂
|   |-- __init__
|  |-- start.py   写启动程序
|
|-- core/   存放项目的所有源代码(核心代码)。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。 (2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py|   |-- tests/   
|   |   |-- __init__.py
|   |   |-- test.main.py  
|   |
|   |-- __init__.py
|   |-- test_main.py|  存放核心逻辑  
|
|-- conf/    配置文件
|   |-- __init__.py
|   |-- setting.py   写上相关配置
|
|---db/    数据库文件
|   |--db.json    写数据库文件
|   
|-- docs/   存放一些文档
|   
|-- lib/   库文件,放自定义模块和包
|   |-- __init__.py
|   |-- common.py    放常用的功能
|
|-- log/   日志文件
|   |-- access.log    写上日志
|
|-- README    项目说明文件

注:运行程序时,在bin目录下执行start.py代码,不可以直接执行core下的模块。

README相关

使用过开源软件的朋友们都知道README可以给软件的使用带来很大的帮助,包括软件介绍、功能定位、安装启动使用方法、有建议或bug怎么联系作者等,其必要性和重要性不言而喻。

因此每一个项目都应该有README说明,好的README应该至少包括以下几方面的内容:

  • 软件的简要介绍、功能定位、适用场景等
  • 软件的安装、环境依赖、启动方法、常见使用命令(使用说明)等
  • 代码的目录结构说明
  • 常见问题说明
  • 遇到建议或bug如何联系作者或项目组

如果再编写的更详细,可以考虑简述软件的基本原理。这方面最好的参考就是开源软件的README,如nginx,redis等。

posted on 2018-09-05 12:23  Messiless  阅读(641)  评论(0编辑  收藏  举报