py 项目开发的流程以及项目的搭建 day 25
今日内容概要
今天主要学的就是ATM和购物车这个目前为止最大的项目,接下来我们学习如何一步步搭建他
- 项目开发的流程
- 项目的需求分析
- 项目的架构设计
- 项目的搭建
- 编写具体的功能
项目的开发流程
# 平常的项目流程几乎都分成五个步骤
# 1.需求分析
产品经理带着架构师、研发经理去了解
确定用户的真实需求, 项目的基本功能,
确定项目的整体难度和可行性分析,
形成需求分析文档, 用户确认
# 2.架构设计
一个项目完成所需的结构
开发所需的编程语言、
项目所适配的后端框架、
项目所需的数据库、
项目组织的结构、
项目功能划分、
项目的报价、
还需要产品经理继续叠加报价
# 3.分组开发
一个大项目肯定是分为很多小项目的,然后分给不同的小组进行编写,而每个小组肯定有好几个成员,所以每个人的真正开发量只有一小部分(目的是:降低复杂度 提升开发效率 缩短开发周期)
# 4.项目测试
测试部分是专门交给测试部门测试的
# 5.交付上线
此时将项目打包给运维人员运行维护即可
# 比较详细流程的话
需求分析 ---> 概要设计 ---> 项目规划 ---> 详细设计&编码测试 ---> 项目功能测试 ---> 调试完善 ---> 项目发布 ---> 后期维护
需求分析
'开始这个ATM+购物车的项目'
# 先说明大致需求
- 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城,买东西加入购物车,调用信用卡接口结账
- 提供管理接口,包括添加账户、用户额度,冻结账户等
- ATM记录操作日志
- 用户认证功能
'然后要根据需求里面的要求对项目功能进行一个大概编写'
# 提炼项目功能
1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.金额转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能
'接下来要考虑项目大概要用到的技术'
# 项目大致技术栈
1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,sys,json)
架构设计
'我们从学习到现在经历了一部分编码的版本'
# 编码历程
1.面条版(从上往下代码)
2.函数版(开始封装代码)
ps:都是在一个py文件中写代码>>>:类似于创业型公司 所有员工身兼数职
3.模块版(开始划分文件)
ps:根据功能的不同划分不同文件>>>:类似于大型公司 所有员工部门精细化
# 常见的软件架构
比如百度账号登录,这一个操作就是在三个层之间数据传输
# 大致分了三层
浏览器 后台 数据库
# 用专业的话术分开发项目的固定结构
第一层: 前端
第二层: 后端
第三层: 数据库
# 根据架构分析来看,我们所要设计的ATM项目也是分为三层的
展示层: 就是说明该项目有什么具体功能的
逻辑层: 就是项目中处理问题的具体操作层
数据层: 为逻辑层提供需要的数据
#
架构厉害的地方是因为程序的扩展性非常的强
展示层在学完前端后可以直接替换成页面
展示层目前是cmd操作 可以换成页面
核心逻辑层以后学了框架之后替换成框架
逻辑层目前是普通的python代码 可以换成django框架
数据存取层以后学了数据库直接替换成数据库
数据层目前是json文件 可以换成MySQL数据库
前端 ---> 页面
核心逻辑层 ---> 框架
数据存取层 ---> 数据库
分组开发
'一个大项目分成很多小区块,然后分给不同的小组,这样子就是小组分组开发的情况'
'而项目搭建差不多就是将所写的代码,分文件存放在各自的文件夹'
# 1. 搭建项目目录
'是整个应用程序的执行文件目录,其中start.py文件是启动入口'
bin文件夹 start.py
'是整个应用程序的配置文件目录,settings.py是其中s的配置文件'
conf文件夹 settings.py
'是整个应用程序的通用功能脚本和第三方应用文件存放目录'
lib文件夹 common.py
'是整个应用程序的核心模块,core.py是核心业务逻辑脚本文件'
core文件夹 src.py
'是整个项目的接口层所存放功能函数的文件夹'
interface文件夹 user_interface、bank_interface、shop_interface
'是整个应用程序的数据库文件目录,存放数据'
db文件夹 用户数据、物品数据、db_handler
'是整个应用程序的日志文件目录'
log文件夹 log.log
'项目说明文档'
readme.txt
# 2.功能框架搭建
利用空函数搭建一个框架
def login():
pass
# 3.然后接着写各种功能函数
今天学习了大项目的框架编写,以及更加详细的编写过程,思路之类的,还有的就是以后看到一个项目需求该如何获取思路以及编程构思。
