
软件开发的目录规范
发布日期:2021-05-04 19:05:52
浏览次数:22
分类:精选文章
本文共 1409 字,大约阅读时间需要 4 分钟。
软件开发的目录规范
为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。
软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为ATM,推荐目录结构如下ATM/|-- core/| |-- core.py(核心业务逻辑代码)||-- api/ (存放接口文件,接口主要用于业务逻辑提供数据操作)| |-- api.py ||-- db/| |-- db_handle.py||-- lib/| |-- common.py||-- conf/| |-- settings.py||-- run.py (程序的启动文件,一般放在项目的根目录下,因为在运行是会默认将运行文件所在的文件夹作为一个sys.path的第一个路径,这样就省去了处理环境变量的步骤)|-- setup.py|-- requirements.txt|-- README
详解部分
# 强调: 以下所有模块之间的导入关系, 不要导可执行文件bin start.py --> 启动软件入口 conf settings.py --> 配置文件. 比如存放一些固定的路径 db db_hanlder.py --> 用于存放数据文件与操作数据的代码文件lib commom.py --> 存放公共的功能, 常用的一些功能。比如存放装饰器. core src.py(src 英文全称 source) 或者 main.py --> 核心业务逻辑代码 log access.log 存放日志的文件 readme.txt 项目说明文件。 除此之外,有一些方案给出了更加多的内容,比如LICENSE.txt,ChangeLog.txt文件等,主要是在项目需要开源时才会用到,请读者自行查阅。 关于README的内容,这个应该是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。它需要说明以下几个事项: 1、软件定位,软件的基本功能; 2、运行代码的方法: 安装环境、启动命令等; 3、简要的使用说明; 4、代码目录结构说明,更详细点可以说明软件的基本原理; 5、常见问题说明。setup.py 安装、部署、打包的脚本 用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。requirements.txt 这个文件的文件名不能改。一般存放第三方库的描述文档信息。文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。 这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python依赖库都装好了,具体格式参照
end
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月09日 16时10分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
2021-05-09
ORA-00904: "FILED_TYPE": 标识符无效
2021-05-09
Redis系统学习之Redis性能测试工具
2021-05-09
数据仓库系列之维度建模
2021-05-09
Scala教程之:函数式的Scala
2021-05-09
java中DelayQueue的使用
2021-05-09
java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
2021-05-09
线程stop和Interrupt
2021-05-09
Android中定时执行任务的3种实现方法
2021-05-09
nodejs中npm常用命令
2021-05-09
基于Vue2.0+Vue-router构建一个简单的单页应用
2021-05-09
基于vue2.0实现仿百度前端分页效果(二)
2021-05-09
JS魔法堂:函数重载 之 获取变量的数据类型
2021-05-09
时间序列神器之争:Prophet VS LSTM
2021-05-09
SpringBoot中关于Mybatis使用的三个问题
2021-05-09
MapReduce实验
2021-05-09
Leaflet 带箭头轨迹以及沿轨迹带方向的动态marker
2021-05-09
java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
2021-05-09
java大数据最全课程学习笔记(2)--Hadoop完全分布式运行模式
2021-05-09