首页 > 其他分享 >【3.0】ATM和购物车项目架构设计

【3.0】ATM和购物车项目架构设计

时间:2023-12-31 12:33:26浏览次数:25  
标签:架构设计 py 代码 ATM 用户 视图 --- 接口 3.0

【一】项目结构树

|- ATM(项目根目录)
    |-- README.md 										# 项目说明书
    |-- start.py 											# 项目启动文件的创建方式二,直接暴露在最外层
    |-- bin(启动文件目录) 						 # 存放启动文件的方式一,单独创建目录
        |- main.py     							  	# 存放用户核心代码
    |-- core(用户视图层) 						 # 存放用户视图层代码文件
        |--- user_src.py						  	# 用户功能代码
        |--- admin_src.py					    	# 管理员功能代码
        |--- shop_src.py								# 购物功能代码
    |-- interface(逻辑接口层)  			 # 存放核心业务逻辑代码
        |--- user_interface.py 			  	# 用户功能相关接口
        |--- bank_interface.py 			  	# 银行功能相关接口
        |--- shop_interface.py 			  	# 购物功能相关接口
    |-- db(数据处理层) 							 # 存放数据与数据处理层代码
        |--- db_handler.py 					  	# 数据处理层代码
        |--- user_data 							  	# 用户数据存储文件夹目录
            |---- user_data.json 		  		# 用户数据存储json文件
    |-- conf 					  					    # 配置文件文件夹目录
        |--- settings.py						  	# 配置参数代码
    |-- lib 					    				    # 公共方法文件夹目录
        |--- common.py									# 公共方法代码
    |-- log(日志文件层) 								 # 存放日志文件夹目录
        |--- User												# 用户日志文件夹目录
            |---- username.log 						# 某个用户的日志文件
        |--- Admin									  	# 管理员日志文件夹目录
            |---- username.log						# 某个用户的日志文件
        |--- Shop										  	# 购物日志文件夹目录
            |---- username.log						# 某个用户的日志文件

【二】项目结构树说明

【1】README.md

  • 存放项目的说明,包括但不限于,程序运行展示
  • 存放一些对程序的解释型介绍

【2】start.py(启动文件)

  • ATM和购物车项目的启动入口

【3】bin(启动文件目录)

  • 总项目的总功能整合

(1)__init__.py(包出口)

  • 作为 bin 包的出口文件

(2)main.py(统合主逻辑)

  • 作为用户视图层的整合代码入口

【4】core(用户视图层)

  • 存放用户视图层代码文件
  • 主要负责参数的读入
  • 输入层反馈的状态的信息的展示

(0)__init__.py(包出口)

  • 作为 core 包的出口文件

(1)user_src.py(用户功能视图代码)

  • 用户功能的视图代码
    • 负责用户数据的输入
    • 将用户数据传给接口层
    • 接口层反馈结果,将接口层返回的结果进行展示
  • 例如注册功能
    • 输入用户名和密码
    • 将用户名和密码传递给接口层
    • 接口层处理完成后反馈结果
      • 注册成功 返回 True
        • 打印登陆成功
      • 注册失败 返回 False
        • 打印登陆失败

(2)admin_src.py(管理员功能视图代码)

  • 管理员功能的视图代码
    • 负责管理员数据的输入
    • 将管理员数据传给接口层
    • 接口层反馈结果,将接口层返回的结果进行展示

(3)shop_src.py(购物功能视图代码)

  • 购物功能的视图代码
    • 负责购物数据的输入
    • 将购物数据传给接口层
    • 接口层反馈结果,将接口层返回的结果进行展示

【5】interface(逻辑接口层)

  • 存放核心业务逻辑代码

(0)__init__.py(包出口)

  • 作为interface 包的出口文件

(1)user_interface.py(用户核心逻辑接口)

  • 用户功能的逻辑代码
    • 负责对视图层传入的数据进行处理、清洗或加密
    • 负责调用数据处理层进行数据的保存和读取
    • 将用户视图传入的参数进行清洗处理后向视图层反馈结果
  • 例如注册功能
    • 接收到视图层传入的用户名和密码
    • 对原始密码进行加密
    • 构建好存储到数据库的数据格式
    • 调用数据处理层的函数进行数据的写入
    • 获取到数据处理层反馈的结果
      • 写入成功
        • 返回 True 返回 写入成功
      • 写入失败
        • 返回 False 返回 写入失败
    • 将数据处理层的结果处理后反馈给视图层二次处理

(2)admin_interface.py(管理员核心逻辑接口)

  • 管理员功能的逻辑代码

    • 负责对视图层传入的数据进行处理、清洗或加密

    • 负责调用数据处理层进行数据的保存和读取

    • 将用户视图传入的参数进行清洗处理后向视图层反馈结果

(3)bank_interface.py(银行核心逻辑接口)

  • 银行业务相关功能的逻辑代码

    • 负责对视图层传入的数据进行处理、清洗或加密

    • 负责调用数据处理层进行数据的保存和读取

    • 将视图传入的参数进行清洗处理后向视图层反馈结果

(4)shop_interface.py(购物核心逻辑接口)

  • 购物业务相关功能的逻辑代码

    • 负责对视图层传入的数据进行处理、清洗或加密

    • 负责调用数据处理层进行数据的保存和读取

    • 将视图传入的参数进行清洗处理后向视图层反馈结果

【6】db(数据处理层)

  • 存放数据与数据处理层代码

(0)__init__.py(包出口)

  • 作为 db 包的出口文件

(1)db_hander.py(数据处理层代码)

  • 用来处理有关数据的存储
  • 处理有关数据的读取和清理

(2)User(用户数据文件夹)

  • user_data.json : 存储所有用户的数据的json文件

(3)Product(商品数据文件夹)

  • shop_data.json : 存储所有商品信息的数据的json文件

【7】conf(配置文件夹)

  • 存放配置文件

(1)__init__.py(包出口)

  • 作为 conf 包的出口文件

(2)settings.py(配置文件)

  • 存放设置相关的代码
    • 比如根目录参数
    • 比如日志配置字典参数

【8】lib(公共方法文件)

(1)__init__.py(包出口)

  • 作为 lib 包的出口文件

(2)common.py

  • 存放所有函数或者部分函数公用的函数代码或逻辑

【9】log(存放日志文件)

  • 用来存放生成的log日志文件

(1)User

  • 存放普通用户的日志文件

(2)Admin

  • 存放管理员操作日志

(3)Shop

  • 存放购物相关日志

【三】搭建项目结构树

image-20231228141107129

标签:架构设计,py,代码,ATM,用户,视图,---,接口,3.0
From: https://www.cnblogs.com/dream-ze/p/17937378

相关文章

  • ASR项目实战-架构设计
    一般而言,业务诉求作为架构设计的输入。需求清单对于语音识别产品而言,需满足的需求,举例如下:功能需求文件转写。长文件转写,时长大于60秒,小于X小时,X可以指定为5。短文件转写,时长小于60秒。实时语音识别。长语音识别,时长大于60秒,小于Y小时,Y可以指定为5。短语音识别,时长......
  • 05uifdma_dbuf 3.0 IP介绍
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!5.1概述        uifdma_dbufIP是米联客研发用于配合FDMA完成数据传输控制的IP模块。FDMA-DBUFIP代码采用"......
  • ATM(考试)
    importrandomimportdatetimeclassATM:definit(self):self.users={}self.logged_in_user=Noneself.bank_info={'total_balance':1000000}self.transaction_log=[]defcard_number(self):returnrandom.randint(1000,9999)defregister(......
  • 饭卡(容器)3.0
    #include<iostream>#include<vector>usingnamespacestd;#definelist1000structa{stringname;intid;intage;stringClass;}index;voidMAIN(){cout<<"欢迎使用学生管理系统"<<endl<<"1.......
  • APISIX 3.0安装及配置使用【转】
    最近一直在研究微服务相关内容,通过对比各大API网关,发现新起之秀APISIX无论从开源程度上来讲还是功能上,都拥有很大的优势。经历了几天折磨一样的学习,目前在本地环境中配置成功了一套,以供自己留存吧,实在是网上的很多文章要么太老了,要么就是乱写一通。 APISIX官方网址:https://ap......
  • Citrix ADC Release 13.0 Build 92.18 发布 - 混合多云应用交付控制器
    CitrixADCRelease13.0Build92.18发布-混合多云应用交付控制器CitrixADCRelease13.0Build92.18(nCore,VPX,SDX,CPX,BLX)CitrixADC-混合多云应用交付控制器作者主页:sysin.org大规模应用程序交付可能很复杂。使用NetScaler让一切变得更简单。产品概述CitrixAD......
  • Ubuntu23.04下anaconda3的安装、配置
    一.安装anaconda3前往清华园镜像下载anaconda3的安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D选择最新镜像Anaconda3-2023.09-0-Linux-x86_64.sh 安装1bashAnaconda3[version].shversion是下载的包的版本,如:bash Anaconda3-2023.09-0-L......
  • spark 3.0新特性
    一、AdaptiveQueryExecution自适应查询https://blog.51cto.com/u_12865/7338853 二、DynamicPartionPruning动态裁剪分区ApacheSpark3.0动态分区裁剪(DynamicPartitionPruning)介绍https://www.iteblog.com/archives/8589.htmlApacheSpark3.0动态分区裁剪(Dynam......
  • PTS 3.0:可观测加持的下一代性能测试服务
    作者:肖长军(穹谷)大家好,我是来自阿里云云原生应用平台的肖长军,花名穹谷,我此次分享的主题是《可观测加持的下一代性能测试服务》。提到性能测试大家并不陌生,性能测试已成为评估系统能力、识别系统弱点、进行系统调优,验证系统稳定性等的重要手段。我们一般进行性能测试的大概流程就是构......
  • PTS 3.0:可观测加持的下一代性能测试服务
    作者:肖长军(穹谷)大家好,我是来自阿里云云原生应用平台的肖长军,花名穹谷,我此次分享的主题是《可观测加持的下一代性能测试服务》。提到性能测试大家并不陌生,性能测试已成为评估系统能力、识别系统弱点、进行系统调优,验证系统稳定性等的重要手段。我们一般进行性能测试的大概流程就......