一、项目开发流程

1.项目需求分析:

(1)明确项目的体功能(要明确到底要写什么东西,实现什么功能)

这个阶段的话具体要询问产品经理以及客户(客户对产品的具体需求)

(2)参与人员:

产品经理;开发经理;架构师

1.架构师 开发经理提前构思大致方案

2.引导客户提出合理要求(避免不合理的请求)

3.记录会议内容

(3)技术人员主要职责:

引导客户提出一些比较合理,比较容易实现的需求。

2.项目架构设计:

(1)明确项目的核心技术点

项目使用的编程语言;

项目使用的框架;

项目所使用的数据库;

项目报价

(2)参与人员:

架构师

3.项目分组开发:

(1)明确每个组每个人具体到写该项目的哪些功能

(2)参与人员:

架构师;开发经理;普通程序员

4.项目提交测试:

(1)程序员自己本身写完自测以及交付测试小组测试(错的太多可能会扣绩效)

(2)参与人员:

普通的程序员;测试小组

5.项目交付上线:

(1)参与人员:

运维工程师

(2)可以直接把项目交给客户帮客户定期维护

"""

小公司:成长速度特别快 但是压力非常大

大公司:履历好看 福利待遇好 较为安逸

"""

二、项目需求分析

1.主题

主题是带大家快速如门python直至开发一个ATM+购物车系统,ATM的实现类似于银行自助提款机核心业务,购物车的实现类似于淘宝商城购物系统。

2.项目核心

项目的核心不仅在于引领初学者快速入门python项目开发,更是站在项目架构的角度教你如何在程序开发之初合理且优雅地设计程序的架构,从而极大地提升程序的开发效率与可扩展性。

3.项目需求:

额度15000或自定义

支持多账户登录

可以查看账户余额

可以提现(可自定义手续费比例)

提供还款接口

支持账户间转账

记录每月日常消费流水

实现购物商城,买东西加入购物车,调用信用卡接口结账

提供管理接口,包括添加账户、用户额度,冻结账户等

ATM记录操作日志

用户认证功能

4.从需求中提炼出项目的核心功能

用户注册

用户登录

查看余额

账户提现

充值功能

转账功能

查看账单

购物车功能

管理员功能

5.从功能中在提炼出核心技术点

python核心语法

python诸多模块

装饰器知识

三、项目架构设计(重点)

1.架构前拓展

编写代码的改进历程:

(1)代码直接写在一个文件里面,采用面条版堆积;

(2)将有些具体的功能采用函数封装;

上述两个阶段类似于小公司,一个员工身兼数职

(3)讲不同的功能拆分到不同的文件

上述阶段类似于大公司 工具职责划分部门 每个员工只干该岗位的具体事宜

敲重点:拆分的目的是为了更好的管理资源和代码,提升程序的扩展性。

2.项目架构(重要)

(1)百度

以用户登录为例:

浏览器页面获取用户名和密码;

基于网络将用户名和密码发送给百度服务器;

服务端去数据库中校验用户数据。

三层架构:

浏览器;服务端;数据库

(2)淘宝

以购买商品为例:

浏览器页面展示商品总价;

基于网络将购买商品的操作发送给服务端做核心校验;

之后操作相应数据库完成数据修改。

三层架构:

浏览器;服务端;数据库

3.三层架构

(1)用户层

只做数据展示,数据获取功能

cmd窗口可以充当用户层

将来可以替换成浏览器或者app

(2)核心逻辑层

业务逻辑(真正的核心业务逻辑处理(代码))

某个py文件充当逻辑层

将来可以替换成软件开发目录规范或者现成的框架

(3)数据层

数据的增删改查

json文件充当数据库

可以替换成数据库程序

ATM架构设计
三层架构
core目录下的src.py(浏览器)
interface目录下的多个py文件(框架)
db目录下db_handler.py(数据库服务)

四、项目目录搭建

1.第一层

core文件夹

src.py文件充当第一层

2.第二层

iinterface文件 充当第二层

根据业务逻辑的不同再次拆分便于后期维护管理

user_interface.py

bank_interface.py

shop_interface.py

admin_interface.py

3.第三层

后续通过代码动态创建,或者直接创建db文件夹

五、项目功能搭建

1.注册

2.登陆

3.查看余额

4.提现

5.还款

6.转账

7.查看流水

8.添加购物车功能

9.查看购物车功能

10.结算购物车功能

11.管理员功能

最新文章

  1. Java学习笔记之方法重载
  2. SSH整合 遇到的头疼的BUGs
  3. footer绝对定位但是不在页面最下边解决方案
  4. PullToRefresh 下拉刷新的样式修改
  5. Yii 配置默认controller和action
  6. 关于存储的--b
  7. MVC VIEW 时间格式控制
  8. JDBC数据库编程常用接口(转)
  9. NOIP2015普及组第四题推销员
  10. jap页面获取struts2中action中变量的值
  11. MySQL root密码忘记解决
  12. Mybatis多表链接查询重复字段问题
  13. Oracle 外键级联更新
  14. 压缩JS的eclipse插件
  15. php 计算 距离
  16. sql语句-单表查询
  17. 关于makefile的生成原理以及make相关命令的使用
  18. Python3实战系列之二(获取印度售后数据项目)
  19. while循环中使用scanf函数
  20. 转:Sql Server中清空所有数据表中的记录

热门文章

  1. loguru库使用
  2. 通过Jenkins,执行远程服务器的自动化脚本
  3. pytest文档82 - 用例收集钩子 pytest_collect_file 的使用
  4. vivo霍金实验平台设计与实践-平台产品系列02
  5. 痞子衡嵌入式:MCUXpresso IDE下高度灵活的FreeMarker链接文件模板机制
  6. 【每日一题】【双指针、位运算】2022年2月3日-NC103 反转字符串
  7. 【每日一题】【链表.next.next判空条件】141. 环形链表/NC4 判断链表中是否有环-211120/220123
  8. Python matplotlib 学习——建立画布和坐标系
  9. Jmeter 之提取的值为null时,if控制器中的判断表达式
  10. 计算存储分离在京东云消息中间件JCQ上的应用