08-03 开发软件的目录规范

软件开发目录规范

为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下

Foo/
|-- core/
|   |-- core.py
|
|-- api/
|   |-- api.py
|
|-- db/
|   |-- db_handle.py
|
|-- lib/
|   |-- common.py
|
|-- conf/
|   |-- settings.py
|
|-- run.py
|-- setup.py
|-- requirements.txt
|-- README

简要解释一下:

? ? core/: 存放业务逻辑相关代码

? ? api/: 存放接口文件,接口主要用于为业务逻辑提供数据操作。

? ? db/: 存放操作数据库相关文件,主要用于与数据库交互

? ? lib/: 存放程序中常用的自定义模块

? ? conf/: 存放配置文件

? ? run.py: 程序的启动文件,一般放在项目的根目录下,因为在运行时会默认将运行文件所在的文件夹作为sys.path的第一个路径,这样就省去了处理环境变量的步骤

? ? setup.py: 安装、部署、打包的脚本。

? ? requirements.txt: 存放软件依赖的外部Python包列表。

? ? README: 项目说明文件。

除此之外,有一些方案给出了更加多的内容,比如LICENSE.txt,ChangeLog.txt文件等,主要是在项目需要开源时才会用到,请读者自行查阅。

关于README的内容,这个应该是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。它需要说明以下几个事项:

1、软件定位,软件的基本功能;

2、运行代码的方法: 安装环境、启动命令等;

3、简要的使用说明;

4、代码目录结构说明,更详细点可以说明软件的基本原理;

5、常见问题说明。

关于setup.py和requirements.txt:

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

requirements.txt文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。

这个文件的格式是每一行包含一个包依赖的说明,通常是flask>=0.10这种格式,要求是这个格式能被pip识别,这样就可以简单的通过 pip install -r requirements.txt来把所有Python依赖库都装好了,具体格式参照https://pip.readthedocs.io/en/1.1/requirements.html

原文地址:https://blog.51cto.com/egon09/2463178

时间: 2024-07-30 06:42:40

08-03 开发软件的目录规范的相关文章

Python学习————软件开发目录规范

软件开发目录规范 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下 Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- run

Python的软件开发目录规范

软件开发的目录规范: 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为foo,笔者推荐目录结构如下 Foo/ |-- core/ | |-- core.py | |-- api/ | |-- api.py | |-- db/ | |-- db_handle.py | |-- lib/ | |-- common.py | |-- conf/ | |-- settings.py | |-- r

软件开发目录规范

为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去

Python模块:Re模块、附软件开发目录规范

Re模块:(正则表达式) 正则表达式就是字符串的匹配规则 正则表达式在多数编程语言里都有相应的支持,Python里面对应的模块时re 常用的表达式规则:(都需要记住) " . "   #  默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 " ^ "  #  匹配字符开头,若指定flags MULTILINE,这种也可以匹配上("^a","\nabc\neee",flags=re.MUL

软件开发的目录规范/定制程序的入口/引用配置文件/引用自定义模块/logging模块/日志继承与propagate属性/通过字典导入配置/日志模块在项目中的使用

02.软件开发的目录规范单独的文件放单独的东西py文件src 程序的核心有关setting 配置有关common 常用功能的集合体 文件夹lib 库log 日志conf 配置文件有关的db 数据有关的文件夹bin 整个程序的入口放启动文件core 里面写主逻辑=====================read me 解释说明文件夹里面做什么 原文地址:https://www.cnblogs.com/wangmiaolu/p/8734561.html

1.模块2.循环导入问题及解决思路3.区分py文件的两种类型4.模块的查找顺序5.模块的绝对导入与相对导入6.项目开发的目录规范

一.模块 什么是模块? 模块就是一系列功能的结合体 模块的三种来源: 1.内置的(python解释器自带的) 2.第三方的(别人写的) 3.自定义的(你自己写的) 模块的四种表现形式: 1.使用python编写的py文件(也就是意味着py文件也是可以称之为模块 2.已被编译为共享库或DLL的或C++扩展(了解) 3.把一系列模块组织到一起的文件夹(文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用C编写并连接到Python解释器的内置模块 模块选择 1.用别人写好的模块(内置

python18 时间模块 系统模块(os,os.path) 项目开发目录规范

复习 '''1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集合体,通过包内的__init__文件来管理包中所有模块提供给外界的名字 -- 存放所以模块的文件夹名就是包名 4.导包三件事:1)编译__init__文件的pyc2)执行__init__文件形成全局名称空间,作为包的全局名称空间,包能直接使用的名字全部是__init__文件中提供的3)在导包文件中形成

办公管理支撑流程能力PaaS平台运维开发软件需求设计方案

1.概述 办公管理支撑流程能力PaaS平台(以下文中简称"能力平台")运维开发是指基于Cordys BOP 4 PaaS平台,通过二次开发,为运维开发人员提供快速支撑办公管理流程开发.实施.再造的能力,也为管理流程全生命周期管理提供数据支撑能力.管理目标及软件需求如下: (1)开发/运维人员 开发/运维人员是指系统平台管理人员.运维人员,例如:省公司与地市公司信息化系统管理员.开发/运维人员为专业信息化管理员,都是受过专业计算机教育,懂计算机软件维护.开发,但是,不是专业程序员,也就是

Unity3D游戏开发软件破解版安装

怎么获取Unity3D游戏开发软件,笔者在这里就告诉大家一个小技巧,有兴趣的朋友可以继续往下看. 下载Unity3D当然要到官网(建议用迅雷下载),安装后还需要注册,这里就建议大家根据实际情况考虑啦!如果是自己学习研究用,就没必要去购买,完全可以用破解版本;如果是公司开发用,还是买一个为好.注:Unity3D是按功能模块收费的. 没注册过Unity3D游戏开发软件的朋友,可以跟着以下步骤注册.这里我会提供一种破解法,需要破解版安装包的朋友请到菜鸟在线官网上注册并联系客服获取. 1.打开Unity