今日内容详细

主菜 : ATM+购物车作业

项目开发流程

公司中的项目流程几乎都可以分为以下五个步骤

需求分析

'''假设我们是一家外包公司 专门给别人编写软件'''
客户:我想要一个app
产品经理、架构师、研发经理:好的
架构师和研发经理:客户想要这样的,那我们先写个简单流程吧。
之后与客户交谈中引导客户按照提前设想好的流程提需求

架构设计

架构师会根据具体的业务需求选择:
开发的编程语言、
项目的后端框架、
项目所需的数据库(主库、从库)
项目组织结构(软件开发目录规范、自定义结构)
项目功能划分(将一个大项目拆分成多个小项目)
项目的报价(开发人员数量 天数等: 一个程序员一天按照1500+算)
还需要产品经理继续叠加报价(其他部分人员开销等)

分组开发

	将项目拆分之后的多个小项目交给不同开发部门下的多个编程人员编写
每个人可能只会写很小的一部分(降低复杂度 提升开发效率 缩短开发周期)
ps:码畜 >>> 码农

项目测试

交给测试部门全面测试
语法错误是决不允许出现的
ps:跟测试搞好关系 这样的话很多bug都不需要提交报告 私下提醒并修改即可

交付上线

将项目打包给运维人员运行维护即可

需求分析

- 额度15000或自定义
- 支持多账户登录
- 可以查看账户余额
- 可以提现(可自定义手续费比例)
- 提供还款接口
- 支持账户间转账
- 记录每月日常消费流水
- 实现购物商城,买东西加入购物车,调用信用卡接口结账
- 提供管理接口,包括添加账户、用户额度,冻结账户等
- ATM记录操作日志
- 用户认证功能

提炼项目功能

1.用户注册
2.登录功能
3.查看余额
4.余额提现
5.账户充值
6.金额转账
7.查看流水
8.添加购物车
9.查看购物车
10.结算购物车
11.管理员功能

项目大致技术栈

1.python基础核心编程
2.函数(装饰器)
3.常见内置模块(os,sys,json)

架构设计

编程历经过程

'''
1.面条版(从上往下堆代码)
2.函数版(开始封装代码)
ps:都是在一个py文件中写代码>>>:类似于创业型公司 所有员工身兼数职 3.模块版(开始划分文件)
ps:根据功能的不同划分不同文件>>>:类似于大型公司 所有员工部门精细化
'''

分文件,导来导去就和大型公司需要分部门,分员工,分职责一样各自干各自最擅长的部分,提高效率又节省时间

三层架构

很多程序其实都是三层架构

'''
第一层用户层只做简单的数据展示
第二层是整个程序的核心层
做具体业务逻辑
第三层是数据存取
'''
# 实际就是以后开发项目的固定结构
graph LR
A(可视化页面) --> B(程序的核心) --> C(数据存取)
D(前端) --> E(后端) --> F(数据库)
G(展示层) --> H(逻辑层) --> I(数据层)

将ATM分为三层架构

'''
展示层
只展示功能选项,基本逻辑
逻辑层
所有业务逻辑
数据层
给逻辑层提供数据存取
'''

ATM架构优点

程序的扩展性非常的强:
比如展示层等我们以后学了前端可以直接替换成页面,展示层目前是cmd操作,可以换成页面。
核心逻辑层以后学了框架之后替换成框架,逻辑层目前是普通的python代码,可以换成django框架。
数据存取层以后学了数据库直接替换成数据库,数据层目前是json文件,可以换成MySQL数据库

分组开发

搭建项目目录

# 针对启动脚本文件start.py可以放在bin目录下 也可以直接放在项目根目录
# 将第二层分为三个文件(根据功能的不同)
start.py
conf
settings.py
lib
common.py
core
src.py
interface
user_interface
bank_interface
shop_interface
db
log
readme

功能框架搭建

# 利用空函数

注册功能

# 为了能够更加清晰的理解,可以先写面条版本,然后拆分

python学习-Day24的更多相关文章

  1. python学习day24 项目目录结构

    项目目录结构 脚本 插入模块:先插入内置模块,然后第三方某块,上短下长! 单可执行文件 config 配置相关 db (database) 数据相关 lib (librarie) 公共功能 src 业 ...

  2. python学习之旅

    python学习分类 python基础    +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...

  3. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  4. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  5. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  6. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  7. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  8. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  9. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

随机推荐

  1. iOS全埋点解决方案-应用退出和启动

    前言 ​ 通过应用程序退出事件,可以分析应用程序的平均使用时长:通过应用程序的启动事件,可以分析日活和新增.我们可以通过全埋点方式 SDK 实现应用程序的退出和启动事件. 一.全埋点的简介 ​ 目前. ...

  2. 保姆教程系列二、Nacos实现注册中心

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到  保姆教程系列一.Linux搭建Nacos 注册中心原理 一.环境准备 Java版本:1.8+   (Linux ce ...

  3. JVM内存模型——堆(heap)、栈(stack)和方法区(method)

      JAVA的JVM的内存可分为3个区:堆(heap).栈(stack)和方法区(method) 堆区:堆内存用于存放由new创建的对象和数组.堆是JVM管理的内存中最大的一块,堆被所有线程共享,目的 ...

  4. 【Java面试宝典】什么情况下会发生栈内存溢出?

    如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError异常. 如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常.

  5. Dubbo 和 Dubbox 之间的区别?

    Dubbox 是继 Dubbo 停止维护后,当当网基于 Dubbo 做的一个扩展项目,如 加了服务可 Restful 调用,更新了开源组件等.

  6. 面试问题之C++语言:简述编译过程

    转载于:https://blog.csdn.net/ypshowm/article/details/89374706 编译过程主要分为四步: 1.词法分析(扫描) 运行类似于有限状态机的算法将源代码的 ...

  7. RENIX非对称时延测试——网络测试仪实操

    本文主要介绍RENIX软件如何进行非对称时延测试.文章分为四部分,第一部分为非对称时延概述,第二部分为测试说明,第三部分为测试配置,第四部分为测试报告. 第一部分:非对称时延概述 1.RFC2544测 ...

  8. printf()函数压栈a++与++a的输出

    printf()中a++与++a的输出问题 在C语言中有个很常用的函数printf(),使用时从右向左压栈,也就是说在printf("%d %d %d %d\n",a,a++,++ ...

  9. 记录axios高效率并发的方法

    //  首先我的请求是统一管理 方便创建拦截器 export function login(parameter) {   return axios({     url: api.Login,      ...

  10. html和css常见的一些问题总结

    html 标签 一般在html有块级元素和行级元素,主要的块级元素有 div,p,h1-h6,ul,ol,li,dl,dt,dd,table,tr,th,td,有好记的办法,div,p,显示标题的,列 ...