一、项目开发流程

1、项目需求分析

  • 明确项目具体功能:

    • 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求
  • 参与人员:
    • 产品经理、架构师、开发经理
  • 技术人员主要职责:
    • 引导客户提出合理需求,贴近现实的需求,能够实现的需求

2、项目架构设计

  • 明确项目核心技术点:

    • 项目需要使用的编程语言
    • 项目使用的框架
    • 项目所使用的数据库
  • 参与人员:
    • 架构师

3、项目分组开发

  • 任务分组开发:

    • 明确每个组,每个人具体该写项目的哪些功能
  • 参与人员:
    • 架构师、开发经理、程序员

4、项目提交测试

  • 测试程序运行:

    • 先由程序员、小组进行测试,后交测试部门进行测试
  • 参与人员:
    • 程序员、测试人员

5、交付上线

  • 定期维护:

    • 把项目交付给客户,运维人员定期维护
  • 参与人员:
    • 运维工程师

二、项目需求分析

1、目的

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

2、主题

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

3、项目需求

  • 额度15000或自定义

  • 支持多账户登录

  • 可以查看账户余额

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

  • 提供还款接口

  • 支持账户间转账

  • 记录每月日常消费流水

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

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

  • ATM记录操作日志

  • 用户认证功能

4、提取核心功能

  • 用户注册
  • 用户登录
  • 查看余额
  • 账户提现
  • 充值功能
  • 转账功能
  • 查看账单
  • 购物车功能
  • 管理员功能

5、设计核心技术点

  • python核心语法
  • python诸多模块
  • 装饰器知识

三、项目架构设计

1、三层架构设计

以百度和淘宝为例,讲述三层架构设计

百度:

以百度登录功能为例 分析执行步骤:
1.在浏览器页面上获取用户名和密码
2.基于网络发送给百度服务端
3.服务端连接数据库服务

淘宝:

以淘宝买商品为例 分析执行步骤:
1.浏览器页面展示商品总价
2.基于网络发送给淘宝服务端再次计算总价
3.调用数据库服务完成金额操作
  • 第一层:

    • 用户层
    • 只做数据展示和简单的数据获取
    • cmd终端、浏览器页面、手机app页面
  • 第二层:

    • 核心逻辑层
    • 真正的核心业务逻辑处理(代码)
    • 编写代码的py文件、目录、框架
  • 第三层:

    • 数据层
    • 数据的增删改查
    • 文件读写操作、py文件、数据库软件

ATM架构设计:

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

2、项目目录搭建

  • core文件夹:第一层

    • src.py文件
  • interface文件夹:第二层
    • user_interface.py
    • bank_interface.py
    • shop_interface.py
    • admin_interface.py
  • db文件夹:第三层
    • json.py
    • user.json

Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录的更多相关文章

  1. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

  2. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  3. 二十五. Python基础(25)--模块和包

    二十五. Python基础(25)--模块和包 ● 知识框架   ● 模块的属性__name__ # my_module.py   def fun1():     print("Hello& ...

  4. python 基础之 模块

    Python 基础之模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 就是一个python文件中定义好了类和方法,实现了一些功能,可以被别的python文 ...

  5. python开发流程及项目目录规范

    # 项目开发流程 1.调研 2.需求分析   ---产品经理 3.任务分配   ---项目经理 4.写项目demo   ---项目经理.架构师.程序猿 5.架构分析   ---项目经理.架构师 6.编 ...

  6. vue项目搭建和开发流程 vue项目配置ElementUI、jQuery和Bootstrap环境

    目录 一.VUE项目的搭建 1. 环境搭建 2. 项目的创建和启动 二. 开发项目 1. 配置vue项目启动功能 2. 开发vue项目 (1)项目文件的作用 (2)vue项目开发流程 (3)vue项目 ...

  7. 【Python之路】第六篇--Python基础之模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  8. 周末班:Python基础之模块

    什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写 ...

  9. python基础===socket模块的讲解(转)

    一.网络知识的一些介绍 socket 是网络连接端点.例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.jb51.net的Web ...

随机推荐

  1. JavaScript基础回顾知识点记录1

    js执行顺序为从上往下执行 js中有6种数据类型 基本数据类型为: String Number Boolean Null Undefined 引用数据类型为: Object 使用typeof 查看对象 ...

  2. python自学笔记10:while循环和for循环

    条件控制和循环控制是两种典型的流程控制方法,前面我们写了 if 条件控制,这节讲 for 循环和 while 循环. 循环是另一种控制流程的方式,一个循环体中的代码在程序中只需要编写一次,但可能会连续 ...

  3. 轻量级消息队列 Django-Q 轻度体验

    前言 最近做的这个项目(基于Django),需要做个功能,实现定时采集车辆定位. 这让我想起来几年前那个OneCat项目,当时我用的是Celery这个很重的组件 Celery实在是太重了,后来我做公众 ...

  4. KingbaseES函数如何返回结果集

    函数返回值一般是某一类型值,如int,varchar,date等,返回结果集时就需要用到setof语法. 创建数据 create table class(id number primary key, ...

  5. 二进制redis集群部署

    二进制redis集群部署 〇.前言 无聊想学罢了 准备环境: 三台centos7 1C1GB即可 三个路相连的地址 主机 IP 节点-角色-实例(端口) redis1 172.16.106.128 M ...

  6. re.sub()用法

    原文链接:https://blog.csdn.net/jackandsnow/article/details/103885422

  7. 【java8新特性】01:函数式编程及Lambda入门

    我们首先需要先了解什么是函数式编程.函数式编程是一种结构化编程范式.类似于数学函数.它关注的重点在于数据操作.或者说它所提倡的思想是做什么,而不是如何去做. 自Jdk8中开始.它也支持函数式编程.函数 ...

  8. Rust基本数据类型

    基本类型 Rust 每个值都有其确切的数据类型,总的来说可以分为两类:基本类型和复合类型. 基本类型意味着它们往往是一个最小化原子类型,无法解构为其它类型(一般意义上来说),由以下组成: 数值类型: ...

  9. AQS:Java 中悲观锁的底层实现机制

    介绍 AQS AQS(AbstractQueuedSynchronizer)是 Java 并发包中,实现各种同步组件的基础.比如 各种锁:ReentrantLock.ReadWriteLock.Sta ...

  10. 安装krew

    地址:https://krew.sigs.k8s.io/docs/user-guide/setup/install/ macOS/Linux Bash or ZSH shells 确保已安装git 2 ...