一、项目开发流程

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. Codeforces Round #805 (Div. 3)E.Split Into Two Sets

    题目链接:https://codeforces.ml/contest/1702/problem/E 题目大意: 每张牌上面有两个数字,现在有n张牌(n为偶数),问能否将这n张牌分成两堆,使得每堆牌中的 ...

  2. CSS布局秘籍(2)-6脉神剑

    HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...

  3. 【题解】CF1013B And

    题面传送门 解决思路 首先我们可以得出,$ a $ \(\&\) $ x $ \(=\) $ a $ \(\&\) $ x $ \(\&\) $ x $.由此得知,同一个 \( ...

  4. WPF之BackgroundWorker

    BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(UI)停止响应的耗时操作,下面来介绍一下这个线程类BackgroundWorker,大家可以结合这位大佬的这篇文章,说的 ...

  5. 回溯算法经典问题总结(.NET版)

    回溯算法 回溯法其实也是一种递归,本质上就是穷举,然后筛选出符合规则的数据.为了使回溯更加高效,我们根据规则要求,在穷举过程中加上条件限制(也就是剪枝). 我们什么场景下应该想到使用回溯法呢? 如何画 ...

  6. Java—猜数字

    package cn.day03.demo01; import java.util.Random; import java.util.Scanner; public class RandomGame ...

  7. 如何禁止win7自动锁屏

    前言 我是真的服了,就解决这个问题百度查了一大堆(浪费很长时间),都说是电源管理的问题,也不知道是谁抄谁的,改完还会自动锁屏. 然后我google一下子就解决了(这里有一个搜索技巧,就是将你的问题翻译 ...

  8. Sqlserver分布式跨数据库查询、Join,以及分布式事务

    简言: 这篇文章我要谈一谈SQL Server分布式跨服务器查询,多表Join,以及分布式事务的处理 SqlServer跨服务器查询的方式 以往自己才疏学浅,学习了一波之后,在这记录下来. 1. 使用 ...

  9. 金融科技 DevOps 的最佳实践

    随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值.DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进.而对于金融科技( ...

  10. AcWing340通信道路/ USACO2008 Telephone Line S

    AcWing题目 洛谷题目 解题思路 首先可以得到一个很容易得到的贪心策略,将一条路径上最贵的(边权最大)的\(K\)条边删去,那么我们剩下的路径中最贵(边权最大)的路就是原本这条路径上帝\(K + ...