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.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
随机推荐
- Linux源码安装RabbitMQ高可用集群
1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 ...
- JavaScript 事件循环(1) —— 从 setTimeout 说起
转变认知 setTimeout 可能是很多前端工程师爱用的方法,它可以使得一段代码延迟执行,例如: setTimeout(() => console.log('A'), 1000); // 在1 ...
- Python 分形算法__代码里开出来的艺术之花
1. 前言 分形几何是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学. 分形几何是对大自 ...
- javascript的比较运算符
JavaScript一共提供了8个比较运算符: > 大于运算符 < 小于运算符 <= 小于等于运算符 >= 大于等于运算符 == 相等运算符 === 严格相等运算符 != 不相 ...
- @Controller 注解?
该注解表明该类扮演控制器的角色,Spring不需要你继承任何其他控制器基类或引用Servlet API.
- 如果一个表有一列定义为 TIMESTAMP,将发生什么?
每当行被更改时,时间戳字段将获取当前时间戳. 列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况? 它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用. 怎样才 ...
- rbac-基于角色的权限控制系统(8种常用场景再现)
首先要抛出的问题是在代码世界里什么是权限? url就代表权限 如何实现权限控制? 下面详细介绍控制流程 1.1简单权限控制--表结构 简单权限控制,三个model,五张表 权限表permission ...
- 滑动窗口法——Leetcode例题
滑动窗口法--Leetcode例题(连更未完结) 1. 方法简介 滑动窗口法可以理解为一种特殊的双指针法,通常用来解决数组和字符串连续几个元素满足特殊性质问题(对于字符串来说就是子串).滑动窗口法的显 ...
- Numpy对数组按索引查询
Numpy对数组按索引查询 三种索引方法: 基础索引 神奇索引 布尔索引 基础索引 一维数组 和Python的List一样 二维数组 注意:切片的修改会修改原来的数组 原因:Numpy经常要处理大数组 ...
- H5打造3d场景不完全攻略(一): H5 3d表现形式
前言 日前,taobao造物节H5放肆地火了一把.相信接下来将3d嵌入网站的这种营销方式会被越来越多的人留意到.工作之余体验了若干个3d H5页面,感觉这类的H5互动体验性明显要比普通的要强,把二维的 ...