一、项目开发流程

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.管理员功能

ATM项目开发的更多相关文章

  1. ATM系统开发(Java版)

    ATM系统开发 技术点分析 1.面向对象编程 每个用户的账户都是一个对象,所以需要设计账户类Accent用于创建账户对象封装账户信息. 2.使用集合容器 系统需要提供一个容器用于存储这些账户对象的信息 ...

  2. Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录

    一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导 ...

  3. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  4. HTML+CSS项目开发总结

    好几天没更新博客了,刚实战完一个HTML+CSS的简单项目.经过几天的摸索,发现收益良多.之前只是单纯得写demo,看知识点,没有亲自实战项目.但实战过后才会了解,如何才能更好地提升自己的技术.针对这 ...

  5. 简历生成平台项目开发-STEP2问卷调查结果统计分析

    根据之前设计的调查问卷,截止目前为止,一共收到64份问卷结果.一共16题,分别从基本信息.是否对简历制作有需要.对产品期望的特点和建议采纳四个方面设计问题.下面逐题分析问卷结果: 1.您的性别 可以看 ...

  6. 如何使用Worktile进行敏捷项目开发管理

    Worktile在任务管理上采用了看板视图,非常适合进行敏捷项目开发管理.事实上,在开发Worktile的过程中,我们也是自产自销,使用Worktile管理Worktile本身的开发过程,在本文中跟大 ...

  7. Java进击C#——项目开发环境

    本章简言 上一章我们了解一下开发环境,知道了什么去新建一个项目工程.却并没有去项目工程进行介绍.可是之后我们会常常跟项目工程打交道.所以这章笔者就对项程工程的常用的一些功能进行讲解.当然说全面那是不可 ...

  8. 关于举办 2015年 Autodesk 助力云应用项目开发活动通知

    各位尊敬的Autodesk 合作伙伴,大家好! 相信您在过去的一年里应该对Autodesk最新的云服务技术有所了解,您是不是曾经闪现过一些很好的想法,却由于不确定是否真实可行,或担心没有技术支持来帮助 ...

  9. .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

    Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一系列是使用.NET/C# ...

  10. [转]基于Starling移动项目开发准备工作

    最近自己趁业余时间做的flash小游戏已经开发得差不多了,准备再完善下ui及数值后,投放到国外flash游戏站.期间也萌生想法,想把游戏拓展到手机平台.这两天尝试了下,除去要接入ane接口的工作,小游 ...

随机推荐

  1. 2022icpc新疆省赛

    菜鸡第一次打icpc 记录一下历程 习惯#define int long long 以下皆是按照我认为的难易顺序排序 K. 看题意大概就是说求从L加到R 1 ios::sync_with_stdio( ...

  2. C#中winform DataGridView常用修改点

    1.修改列名 一般情况下,从数据库里面读取的列名是英文或者拼音,但是,有时候显示需要中文,这样就需要修改列名了. dgv.Columns[0].HeaderCell.Value="编号&qu ...

  3. mysql是如何实现mvcc的

    mvcc的概念 mvcc即多版本并发控制,是一种并发控制的策略,能让数据库在高并发下做到安全高效的读写,提升数据库的并发性能; 是一种用来解决并发下读写冲突的无锁解决方案,为事务分配单向增长时间戳,为 ...

  4. Vue3组件间传值

    12种方式 1. 父组件 ./father.vue 点击查看代码 <template> <h1>father:</h1> <h3>子组件传过来的:{{ ...

  5. C#pictureBox滚轮缩放与拖拽

    [转载]C#pictureBox滚轮缩放与拖拽 [转载]C#中图像平移.缩放的实现技巧 [转载]c# 通过鼠标拖动.放大图片,GDI绘图通过鼠标拖动.放大

  6. React+echarts (echarts-for-react) 画中国地图及省份切换

    有足够的地图数据,可以点击到街道,示例我只出到市级 以umi为框架,版本是: "react": "^18.2.0", "umi": &quo ...

  7. Gorm源码学习-数据库连接

    1 前言 gorm源码地址: Gorm , 本文基于commit:cef3de694d9615c574e82dfa0b50fc7ea2816f3e 官方入门指南: Dosc 2 连接数据库代码示例 目 ...

  8. 快速构建一个简单的Springboot-web项目

    web项目基本的核心成分 数据落地 MYSQL数据库 登录标识 JWT :{Java web token } 记录有效登录状态 以及缓存常用数据: Redis 数据库与JAVA实体的快速自动映射ORM ...

  9. whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵

    作者:韩信子@ShowMeAI 机器学习实战系列:https://www.showmeai.tech/tutorials/41 本文地址:https://www.showmeai.tech/artic ...

  10. 命令查询职责分离 - CQRS

    概念 CQRS是一种与领域驱动设计和事件溯源相关的架构模式, 它的全称是Command Query Responsibility Segregation, 又叫命令查询职责分离, Greg Young ...