一、项目开发流程

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. ASP.NET Core 6框架揭秘实例演示[33]:异常处理高阶用法

    NuGet包"Microsoft.AspNetCore.Diagnostics"中提供了几个与异常处理相关的中间件,我们可以利用它们将原生的或者定制的错误信息作为响应内容发送给客户 ...

  2. 第九篇:vue条件语句

    好家伙,终于有个简单了的 v-if    条件判断 <div id="app"> <p v-if="seen">现在你看到我了</ ...

  3. KFS replicator安装(KES-KES)

    源端 一.安装前置配置 1.创建安装用户 groupadd flysync useradd flysync -g flysync -G kingbase passwd flysync 2.上传安装文件 ...

  4. Java开发学习(三十一)----Maven属性与版本管理

    一.属性 1.1 问题分析 如下图所示 你会发现,如果现在想更新Spring的版本,你会发现依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦. 问题清楚 ...

  5. js中的对象和数组的创建

    <!DOCTYPE html><html><head> <title>获取控制</title> <meta charset=" ...

  6. AlertManager 何时报警

    转载自:https://www.qikqiak.com/post/alertmanager-when-alert/ 在使用 Prometheus 进行监控的时候,通过 AlertManager 来进行 ...

  7. K8S Pod Pending 故障原因及解决方案

    文章转载自:https://mp.weixin.qq.com/s/SBpnxLfMq4Ubsvg5WH89lA

  8. Logstash: 如何创建可维护和可重用的Logstash管道

  9. Elasticsearch 集群健康值红色终极解决方案

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247483905&idx=1&sn=acaff63 ...

  10. MySQL 中 datetime 和 timestamp 的区别与选择

    MySQL 中常用的两种时间储存类型分别是datetime和 timestamp.如何在它们之间选择是建表时必要的考虑.下面就谈谈他们的区别和怎么选择. 1 区别 1.1 占用空间 类型 占据字节 表 ...