ATM+购物车(了解项目开发流程)
上周内容回顾
日志模块的重要组成
1.logger对象:负责产生日志对象 ·模板
2.filter对象:负责过滤日志···一般我们不会用
3.handler对象:负责日志的输出位置
4.format对象:负责展示日志的格式
日志模块配置字典
了解上述四个功能
针对字典内数据无需记忆 只需要明白每个键值对的含义即可····
配置字典的实际应用
配置字典属于配置信息 在写项目时因为改变的频率很低所以我们把他放在配置文件中
第三方模块下载
下载第三方模块的工具 :pip
下载模块的命令 pip3 install 模块名
pip3 install 模块名==版本号
模块下载来源:
官网 python.org 因为是外网所以可能会很慢 也可以使用 国内的一些源 阿里源 清华源 豆瓣源 ...等等
源的切换 :pip3 install 模块名 -i 源地址
下载如果报错 出现了 timeout 关键字 这是网络导致的不用慌 所以 我们报错之后重新下载即可 如果报错的不是这个关键字 自行百度 肯定会有解决的方案 百度==可靠
openpyxi模块
pip3 install openpyxl# 将文档中的代码拷贝执行查看效果从而推导功能
excel文件的版本后缀 03年之前后缀是、xls
03年之后的是xlsx、、csv、、
python中处理文件的两个模块 xlrd xlwt 这两个模块也比较好用 控制excel文件的读和写 这两个模块可以兼容所有版本的文件
openpyxl针对03版本之前的兼容性可能不好 但是功能更加强大
如何创建excel文件
form openpyxl import Workbook
今日主题 ATM+购物车作业
项目开发流程
以后工作中 项目流程的开发一般分为几个部分
首先就是 架构师产品经理去 获取客户的需求 也可以说是客户的要求 大致了解一下, 这样做是为了是以后项目完成 之后防止客户提一些无厘头的要求 这就是第一步需求分析
第二步就是架构设计
架构设计 就是架构师根据具体的业务需求去选择什么样的编程语言去写 或者什么样的语言结合
比方说 java python c 来结合开发 ,项目的后端框架、前端框架 分为几个人来做或者分两拨一组做前端 一组做后端 还有项目需要的数据库(主库、从库) , 项目组织结构(软件开发目录规范、自定义结构),项目功能划分(将一个大项目拆分成多个小项目),然后就是开始看需要多少个人这些人需要多少钱 就是项目报价,
项目拆分之后分组开发 ,各组负责自己负责研发的部分 这样每个人可能只写一小部分 ,降低复杂度 可以提升开发效率 缩短开发周期,开发完之后就是交给测试部门去测试、、这里说一下语法错误不备允许,测试完没有问题直接交付运维人员维护即可。(交付完之后可能会出现客户对那个地方不满意或者需要去更改针对着一些问题可以去让负责这一组的这些人去做相应的改善 这里我们可能会感受到为什么分组工作 更方便与管理 写代码以后也是这样)
"""
小公司可能需要你一个人完成上面所有的事情所以相对于大公司也是优缺点的,可能会很累
小公司很累 但是成长速度很快(整体参与)
大公司轻松 但是成长速度缓慢(只拧螺丝)
"""
需求分析
这里我们稍微划分一下这个需求分析
首先我们得获取需求然后我们才能在做分析
怎么获取需求的这里也不知道怎么用专业术语来描述 就是我们现在所学的这个ATM 加购物车这个作业 这些 额度余额等等就是需求然后我们结合这些需求去写这些功能 首先就是登陆注册、、、 - 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城,买东西加入购物车,调用信用卡接口结账
- 提供管理接口,包括添加账户、用户额度,冻结账户等
- ATM记录操作日志
- 用户认证功能
# 提炼项目功能
1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.金额转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能
# 项目大致技术栈
1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,sys,json)
架构设计
根据这些需求写好功能之后 我们开始划分 因为我们已经开始设计模块的划分了
这里我们都会有一个疑问就是为什么要一直导来导去 举个例子 为什么大型公司需要分部门 分员工 分职责,就是:各自干各自最擅长的部分 提高效率 节省时间
# 研究常见软件架构(非常重要)
百度:
百度账户登录
需要获取用户名和密码 然后校验用户名和密码
问:在哪里校验?
肯定不在会是你的电脑上这个逻辑很简单如果在的话 难道所有人的数据你的电脑上都有?这不可能吧
是基于网络将用户名和密码发送到百度的后台进行校验
后台去专门存储数据的地方校数据
# 大致分了三层
浏览器 后台 数据库
淘宝:
购物结算功能
商品价格的最终核算和账户扣款在哪里完成
肯定不在你当前计算机上!!!
# 大致分了三层
浏览器 后台 用户数据库
'''
ps:很多程序其实都是三层架构
第一层用户层只做简单的数据展示
第二层是整个程序的核心层
做具体业务逻辑
第三层是数据存取
其实我们刚刚分析的三层就是以后开发项目的固定结构
第一层其实叫做 前端
第二层其实叫做 后端
第三层其实叫做 数据库
'''
基于上述架构分析 我们也应该将ATM分为三层架构
展示层
只展示功能选项 基本逻辑
逻辑层
所有业务逻辑
数据层
给逻辑层提供数据存取
################################################
ATM架构牛逼之处!!!
程序的扩展性非常的强
比如展示层等我们以后学了前端可以直接替换成页面
展示层目前是cmd操作 可以换成页面
核心逻辑层以后学了框架之后替换成框架
逻辑层目前是普通的python代码 可以换成django框架
数据存取层以后学了数据库直接替换成数据库
数据层目前是json文件 可以换成MySQL数据库
################################################
架构设计
像学写文章一样,在学会字、词、句之后,就应上升到段落,就应追求文章的“布局谋篇”,这就是架构。通俗地讲,软件架构设计就是软件系统的“布局谋篇”。人们在软件工程实践中,逐步认识到了软件架构的重要性,从而开辟了一个崭新的研究领域。软件架构的研究内容主要涉及软件架构描述、软件架构设计、软件架构风格、软件架构评价和软件架构的形成方法等。
分组开发
现在阶段根据今天的主题说一下分组开发
根据不同的人安排不同的工作这就像
针对启动脚本文件start.py可以放在bin目录下
# 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.功能框架搭建
利用空函数
# 3.注册功能
为了能够让你更加清晰的理解 我们先写面条版本 然后拆分!!!
"""
老师带你们写项目的时候 有些边边角角的功能自己去实现即可
比如选择功能编号 还应该加一个退出选项