为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。
软件的目录规范并无硬性标准,只要清晰可读即可。
但是有一些规范还是十分合理的,我们应当予以遵守:
目录级别:一级目录
目录作用:通常用于存放项目启动脚本
其他命名:暂无
注意事项:如果拥有此目录,则启动脚本需要考虑模块导入路径的问题
目录级别:一级目录
目录作用:存放主程序、业务逻辑源代码
其他命名:src
注意事项:可根据不同的子业务继续划分二级目录
目录级别:一级目录
目录作用:通常用于存放项目接口文件,使得项目能够在启动后和外部通信
其他命名:interface
注意事项:可根据不同的子业务需要继续划分二级目录
目录级别:一级目录
目录作用:存放操作数据库相关文件,主要用于与数据库交互
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放程序中常用的自定义模块
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目所需要的配置文件
其他命名:config
注意事项:暂无
目录级别:一级目录
目录作用:存放项目运行时所产生的日志文件
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目的详细说明文档
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中所需要的第三方插件
其他命名:utils、tools、helpers
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中大部分需求都能使用到的功能,相当于公共插件
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目测试代码
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中所需要的静态文件
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中所需要的模板文件,MVC模型中的视图
其他命名:templates
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中的主流算法,MVC模型中的控制
其他命名:暂无
注意事项:暂无
目录级别:一级目录
目录作用:存放项目中与数据库打交道的脚本,MVC模型中的模型
其他命名:暂无
注意事项:暂无
文件位置:项目根目录下,或者bin目录下
文件作用:项目的启动脚本
其他命名:start.py
注意事项:如果启动脚本是在bin目录下,则需要考虑sys.path
文件位置:项目根目录下
文件作用:安装、部署、打包的脚本,一键安装所需要的所有依赖环境
其他命名:暂无
注意事项:暂无
一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中。
不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。
文件位置:conf文件夹下
文件作用:项目配置文件
其他命名:有的是py脚本,后缀就是.py,而有的是.ini 、.conf、.yaml等
注意事项:暂无
文件位置:项目根目录下
文件作用:存放所有项目第三方依赖库、模块的名字及版本
其他命名:暂无
注意事项:这个一般都是用第三方模块生成的
requirements.txt文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。
文件位置:项目根目录下
文件作用:项目整体描述信息,设计思路,设计目标等
其他命名:暂无
注意事项:暂无
关于README.me的内容,这个应该是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。它需要说明以下几个事项:
CHANGELOG.md :描述项目每个版本的更新信息,说明版本号、更新内容、修复了哪些问题等
humans.txt :保存网站信息和网站建设者信息 ,格式规范参考官网http://humanstxt.org/
LICENSE.txt:项目基于的许可协议
robots.txt:规定爬虫程序能够获取本网站的那些信息