ATM购物车作业

做这个作业,理论很重要 
# 第一步就是项目开发的流程,因为ATM也可以当做一个项目
# 第二步就是项目需求分析,大致有哪些功能需要编写
# 第三步就是项目架构设计,使项目功能更完整,适应面更广,兼容性最佳
# 第四步就是项目架构搭建,就是再创建一些文件夹,使用软件开发目录创建一些文件夹,项目架构搭建好之后,就开始编写我们项目的一些功能
# 第五步就是依次编写具体功能

项目开发流程

# 公司中的项目几乎都可以分为五个步骤
1.需求分析:项目需要具备哪些功能,然后琢磨出一套比较容易编写的流程,最好就是引导客户按照提前设定好的流程提需求,这样就能避免客户提出一些很复杂的需求
2.架构设计(最核心):架构师会根据具体的业务需求选择开发的编程语言,项目的后端框架,项目所需的数据库,项目组织结构(软件开发目录、自定义结构---根据项目的功能划分)
3.分组开发:将项目拆分之后的多个小项目交给不同的开发部门下的多个编程人员编写,降低复杂度,提升开发效率,缩短开发周期
4.项目测试:项目代码写完之后交给测试部门全面测试,防止出现bug
5.交付上线(运行维护):将项目打包给运维人员运行维护

需求分析

项目大致需求:
		额度自定义
    	支持多用户登录
        可查看账户余额
        可以提现(自定义手续费比例)
        提供还款接口
        支持1账户之间转账
        记录每月消费流水
        实现购物商城,买东西加入购物车,请用信用卡接口结账
        提供管理接口,包括添加账户,用户额度,冻结账户等
        ATM记录操作日志,用户认证功能
# 提炼项目功能
		1.用户注册(给他一个初始额度)
    	2.登录功能
        3.查看余额
        4.余额提现
        5.账户充值(还款)
        6.金额1转账
        7.查看流水
        8.添加购物车
        9.查看购物车
        10.结算购物车
        11.管理员功能
     (ATM记录操作日志,用户认证功能都不是用户选择功能)2
# 项目需要用到的大致技术线
1.Python基础核心编程(如:流程控制,基本数据类型,内置方法等)
2.函数(用户认证需要使用到装饰器)
3.常见内置模块(如:os,sys,json)

        

架构设计

编程方法回顾
1.面条版:从上往下堆代码
2.函数版:开始封装代码
# 面条版与函数版都是在一个py文件中写代码
3.模块版:开始划分文件,根据功能的不同划分不同的文件
# 为什么需要分文件导来导去?
因为各自干自己最擅长的部分,可以提高效率,节省时间

研究常见的软件1架构1,比如:百度
百度账户登录————>需要获取用户名和密码————>校验用户名和密码
# 基于网络将用户名和密码发送到百度的后端(后台)进行校验,后台去专门存储数据的地方进行校验,如下图所示:

大致分了三层:浏览器,后台,数据库

淘宝:
购物结算功能
商品价格的最终核算和账户扣款在哪里完成的

必须要做二次校验,不然可以通过前端修改数据

很多程序都分为三层架构,第一层是简单的数据展示,跟用户打交道的,第二层是核心层,做具体业务的逻辑处理,第三层做一些数据的更改

三层架构就是以后开发项目的固定结构

第一层:前端
第二层:后端
第三层:数据库

基于上述架构分析 我们也应该将ATM分为三层架构
展示层
只展示功能选项 基本逻辑
逻辑层
所有业务逻辑
数据层
给逻辑层提供数据存取
"""
好处:
程序的扩展性非常的强
比如展示层等我们以后学了前端可以直接替换成页面
展示层目前是cmd操作 可以换成页面
核心逻辑层以后学了框架之后替换成框架
逻辑层目前是普通的python代码 可以换成django框架
数据存取层以后学了数据库直接替换成数据库
数据层目前是json文件 可以换成MySQL数据库
"### ATM购物车分组开发
1.使用软件开发目录规范,将core文件下的py文件当做展示层,然后添加一个空文件当做逻辑层,db文件当做数据库
2.功能架构搭建
使用空函数搭建各个功能
3.使用面条版编程方法把代码都全部先写出来,然后再拆分到各个对应的‘层’里面