ATM + 购物车项目
- 项目开发流程
- 项目需求分析
- 项目架构设计
- 项目架构搭建
- 编写具体功能
项目开发流程
公司中的项目流程几乎都可以分为以下五个步骤 eg:
1.需求分析
产品经理带着开发部门老大(架构师,研发经理)去客户公司寻求客户的需求
见客户之前架构师和研发经理会大致了解一下目标公司客户的需求
然后研讨出一套比较容易编写代码的流程
之后在和客户的交谈中引导客户按照事先研讨的方案进行,让客户按照自己的方案提需求
# PS:这么做的目的是为了防止客户提出一些无法实现的需求eg:
# 五彩斑斓的黑,变色的手机壳之类的
2.架构设计
架构师会根据具体的业务需求选择
开发的编程语言、
项目的后端框架、
项目所需的数据库(主库、从库)
项目组织架构(软件开发目录规范、自定义结构)
项目功能划分(将一个大项目拆分成多个小项目)
项目的报价(开发人员数量 天数等:)
还需要产品经理继续叠加报价(其他部分人员的开销eg:后期项目的维护)
3.分组开发
将项目拆分之后的多个小项目交给不同开发部门下的多个编程人员编写
每个人只写一小部分(降低复杂度 提升开发效率 缩短开发周期)
4.项目测试
交给测试部门进行全面的测试,在测试前尽量不要出现语法错误,最好写的时候自己测试一下
5.交付上线
将项目打包给运维人员运行维护即可
需求分析
# 项目大致需求
- 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城、买东西加入购物车、调用信用卡接口结账
- 提供管理接口、包括添加账户、用户额度、冻结账户等
- ATM记录操作日志
- 用户认证功能
# 提炼项目功能
1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.账户转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能
# 项目大致功能
1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,json,sys)
架构设计
回顾编程经历
1.面条版(从上往下堆代码)
2.函数版(开始封装代码)
ps:都是在一个py文件中写代码
3.模块版(开始划分文件)
ps:根据功能的不同划分不同的文件
# 疑问:为什么需要分文件导来导去?(类似于大型的公司为什么需要分部门、分员工、分职责)
# 答案:各自干各自擅长的部分,提高效率,节省时间
# 研究常见的软件架构 eg:(百度)
百度:
百度账户登录
需要获取用户名和密码 然后校验用户名和密码
问:在哪里校验?
肯定不在你的电脑上(如果在 难道所有人的数据你的电脑上都有?)
是基于网络将用户名和密码发送到百度的后台进行校验
后台去专门存储数据的地方校数据
# 大致分了三层
浏览器 后台 数据库
淘宝:
购物结算功能
商品价格的最终核算和账户扣款在哪里完成
肯定不在你当前计算机上!!!
# 大致分了三层
浏览器 后台 用户数据库
很多程序其实都是三层架构
第一层:用户层(只做简单的数据展示)
第二层:整个程序的核心层,做具体的业务逻辑
第三层:数据存取
上述的三层就是以后开发项目的固定结构
第一层: 前端
第二层: 后端
第三层: 数据库
基于上述架构分析 我们可以将ATM购物车分为三层架构
1.展示层:只展示功能选项 基本逻辑
2.逻辑层:所有业务逻辑
3.数据层:给逻辑层提供数据存取
#####################################################
ATM架构牛逼之处!!!
程序的扩展性非常的强
比如展示层等以后前端可以直接替换成页面
展示层目前是cmd操作 可以换成页面
核心逻辑层可以在以后替换成框架
逻辑层目前是普通的python代码 可以在以后换成django框架
数据存取层可以在以后直接替换成数据库
数据层目前是json文件 可以换成MySQL数据库
#####################################################
分组开发
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 # 项目描述的文件