项目开发流程
1.需求分析
产品经理带着开发部门老大(架构师、研发经理)去客户公司寻求客户的需求
例如下列所示ATM+购物车案例
# 项目大致需求
- 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城,买东西加入购物车,调用信用卡接口结账
- 提供管理接口,包括添加账户、用户额度,冻结账户等
- ATM记录操作日志
- 用户认证功能
# 提炼项目功能
1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.金额转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能
# 项目大致技术栈
1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,sys,json)
2.架构设计
架构师会根据具体的业务需求选择
开发的编程语言、
项目的后端框架、
项目所需的数据库(主库、从库)、
项目组织结构(软件开发目录规范、自定义结构)、
项目功能划分(将一个大项目拆分成多个小项目)、
项目的报价
# 研究常见软件架构
百度:
百度账户登录
需要获取用户名和密码 然后校验用户名和密码
问:在哪里校验?
肯定不在你的电脑上(如果在 难道所有人的数据你的电脑上都有?)
是基于网络将用户名和密码发送到百度的后台进行校验
后台去专门存储数据的地方校数据
# 大致分了三层
浏览器 后台 数据库
淘宝:
购物结算功能
商品价格的最终核算和账户扣款在哪里完成
肯定不在你当前计算机上!!!
# 大致分了三层
浏览器 后台 用户数据库
'''
ps:很多程序其实都是三层架构
第一层用户层只做简单的数据展示
第二层是整个程序的核心层
做具体业务逻辑
第三层是数据存取
其实我们刚刚分析的三层就是以后开发项目的固定结构
第一层其实叫做 前端
第二层其实叫做 后端
第三层其实叫做 数据库
'''
基于上述架构分析 我们也应该将ATM分为三层架构
展示层
只展示功能选项 基本逻辑
逻辑层
所有业务逻辑
数据层
给逻辑层提供数据存取


3.分组开发
了解开发难度,评估开发工作量,任务分解,拆分模块,功能点划分,制作开发计划,完成的时间节点
将项目拆分之后的多个小项目交给不同开发部门下的多个编程人员编写
每个人可能只会写很小的一部分(降低复杂度 提升开发效率 缩短开发周期
# 1.搭建项目目录
针对启动脚本文件start.py可以放在bin目录下 也可以直接放在项目根目录
将第二层分为三个文件(根据功能的不同)
start.py
conf
settings.py
lib
common.py
core
src.py
interface
user_interface
bank_interface
shop_interface
db
log
readme
# 2.功能框架搭建
利用空函数
4.项目测试
交给测试部门全面测试
项目打包,发布版本到测试服务器,测试人员根据需求文档测试项目,数据是否显示正确,数据是否有缺失,校验是否通过及流程是否通畅等,未通过的流程测试提交到禅道,分配给相应的开发人员调整。
开发人员根据测试反馈修改代码,完成后再次提交给测试,直到测试通过。
5.交付上线
将项目打包给运维人员运行维护即可