ATM项目开发
一、项目开发流程
1.项目需求分析:
(1)明确项目的体功能(要明确到底要写什么东西,实现什么功能)
这个阶段的话具体要询问产品经理以及客户(客户对产品的具体需求)
(2)参与人员:
产品经理;开发经理;架构师
1.架构师 开发经理提前构思大致方案
2.引导客户提出合理要求(避免不合理的请求)
3.记录会议内容
(3)技术人员主要职责:
引导客户提出一些比较合理,比较容易实现的需求。
2.项目架构设计:
(1)明确项目的核心技术点
项目使用的编程语言;
项目使用的框架;
项目所使用的数据库;
项目报价
(2)参与人员:
架构师
3.项目分组开发:
(1)明确每个组每个人具体到写该项目的哪些功能
(2)参与人员:
架构师;开发经理;普通程序员
4.项目提交测试:
(1)程序员自己本身写完自测以及交付测试小组测试(错的太多可能会扣绩效)
(2)参与人员:
普通的程序员;测试小组
5.项目交付上线:
(1)参与人员:
运维工程师
(2)可以直接把项目交给客户帮客户定期维护
"""
小公司:成长速度特别快 但是压力非常大
大公司:履历好看 福利待遇好 较为安逸
"""
二、项目需求分析
1.主题
主题是带大家快速如门python直至开发一个ATM+购物车系统,ATM的实现类似于银行自助提款机核心业务,购物车的实现类似于淘宝商城购物系统。
2.项目核心
项目的核心不仅在于引领初学者快速入门python项目开发,更是站在项目架构的角度教你如何在程序开发之初合理且优雅地设计程序的架构,从而极大地提升程序的开发效率与可扩展性。
3.项目需求:
额度15000或自定义
支持多账户登录
可以查看账户余额
可以提现(可自定义手续费比例)
提供还款接口
支持账户间转账
记录每月日常消费流水
实现购物商城,买东西加入购物车,调用信用卡接口结账
提供管理接口,包括添加账户、用户额度,冻结账户等
ATM记录操作日志
用户认证功能
4.从需求中提炼出项目的核心功能
用户注册
用户登录
查看余额
账户提现
充值功能
转账功能
查看账单
购物车功能
管理员功能
5.从功能中在提炼出核心技术点
python核心语法
python诸多模块
装饰器知识
三、项目架构设计(重点)
1.架构前拓展
编写代码的改进历程:
(1)代码直接写在一个文件里面,采用面条版堆积;
(2)将有些具体的功能采用函数封装;
上述两个阶段类似于小公司,一个员工身兼数职
(3)讲不同的功能拆分到不同的文件
上述阶段类似于大公司 工具职责划分部门 每个员工只干该岗位的具体事宜
敲重点:拆分的目的是为了更好的管理资源和代码,提升程序的扩展性。
2.项目架构(重要)
(1)百度
以用户登录为例:
浏览器页面获取用户名和密码;
基于网络将用户名和密码发送给百度服务器;
服务端去数据库中校验用户数据。
三层架构:
浏览器;服务端;数据库
(2)淘宝
以购买商品为例:
浏览器页面展示商品总价;
基于网络将购买商品的操作发送给服务端做核心校验;
之后操作相应数据库完成数据修改。
三层架构:
浏览器;服务端;数据库
3.三层架构
(1)用户层
只做数据展示,数据获取功能
cmd窗口可以充当用户层
将来可以替换成浏览器或者app
(2)核心逻辑层
业务逻辑(真正的核心业务逻辑处理(代码))
某个py文件充当逻辑层
将来可以替换成软件开发目录规范或者现成的框架
(3)数据层
数据的增删改查
json文件充当数据库
可以替换成数据库程序
ATM架构设计
三层架构
core目录下的src.py(浏览器)
interface目录下的多个py文件(框架)
db目录下db_handler.py(数据库服务)
四、项目目录搭建
1.第一层
core文件夹
src.py文件充当第一层
2.第二层
iinterface文件 充当第二层
根据业务逻辑的不同再次拆分便于后期维护管理
user_interface.py
bank_interface.py
shop_interface.py
admin_interface.py
3.第三层
后续通过代码动态创建,或者直接创建db文件夹
五、项目功能搭建
1.注册
2.登陆
3.查看余额
4.提现
5.还款
6.转账
7.查看流水
8.添加购物车功能
9.查看购物车功能
10.结算购物车功能
11.管理员功能