python学习-Day24

今日内容详细
主菜 : 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:根据功能的不同划分不同文件>>>:类似于大型公司 所有员工部门精细化
'''
分文件,导来导去就和大型公司需要分部门,分员工,分职责一样各自干各自最擅长的部分,提高效率又节省时间
三层架构
很多程序其实都是三层架构
'''
第一层用户层只做简单的数据展示
第二层是整个程序的核心层
做具体业务逻辑
第三层是数据存取
'''
# 实际就是以后开发项目的固定结构
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的更多相关文章
- python学习day24 项目目录结构
项目目录结构 脚本 插入模块:先插入内置模块,然后第三方某块,上短下长! 单可执行文件 config 配置相关 db (database) 数据相关 lib (librarie) 公共功能 src 业 ...
- python学习之旅
python学习分类 python基础 +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
随机推荐
- MAVEN setting文件
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- idea中将已有项目转变为git项目,并提交到git服务器上
idea中将已有项目转变为git项目,并提交到git服务器上 前言 有时候,本地有个项目不错,想要分享到github或者码云上,我们就会有这样的需求:项目在本地已经存在(可能不是git项目),又想提交 ...
- kafka unclean 配置代表啥,会对 spark streaming 消费有什么影响?
unclean.leader.election.enable 为true的话,意味着非ISR集合的broker 也可以参与选举,这样有可能就会丢数据,spark streaming在消费过程中拿到的 ...
- 怎么样把ModelMap里面的数据放入Session里面?
答:可以在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key.
- maven下载出现unknown文件夹
问题场景 maven下载配置完成后,发现如上图代码包下载失败,本地maven库中出现unknown文件夹,也就是说,maven无法定位下载到上面的代码包. 解决过程 仔细观察发现,所有下载失败的代码包 ...
- vue单文件组件data选项的函数体获取vue实例对象
因配置的关系,导致 vue的data选项中存在事件.而事件无法获取 vue 的实例对象:项目是单文件形式的,以下代码只是例子 new Vue({ el:..., data:{ a: { onevent ...
- linux发布常用命令
一.linux发布常用命令 //启动Tomcat sh /opt/apache-tomcat-8.5.29/bin/startup.sh //停止tomcat sh /opt/apache-tomca ...
- SSM-learning
架构流程图: 第一步:建立spring框架: 包括:建立所需要的dao层,sevice层和controller层和实体类,建立spring配置文件,配置自动扫描bean AccountDao: @Re ...
- int 和 Integer 哪个会占用更多的内存?
Integer 对象会占用更多的内存.Integer 是一个对象,需要存储对象的元数据. 但是 int 是一个原始类型的数据,所以占用的空间更少.
- glusterfs架构和原理
分布式存储已经研究很多年,但直到近年来,伴随着谷歌.亚马逊和阿里等互联网公司云计算和大数据应用的兴起,它才大规模应用到工程实践中.如谷歌的分布式文件系统GFS.分布式表格系统google Bigtab ...