Day25.程序的架构设计

与太阳肩并肩 / 2024-06-11 / 原文

# 项目的说明书
## 项目:ATM + 购物车

# 项目需求:
    1.额度 15000或自定义
    2.实现购物商城,买东西加入 购物车,调用信用卡接口结账
    3.可以提现,手续费5%
    4.支持多账户登录
    5.支持账户间转账
    6.记录每月日常消费流水
    7.提供还款接口
    8.ATM记录操作日志
    9.提供管理接口,包括添加账户、用户额度,冻结账户等。。。
    10.用户认证用装饰器

# 一个项目是如何从无到有
## 一 需求分析
    1.拿到项目,会先在客户那里一起讨论需求
        商量项目的功能是否能实现,周期与价格,得到一个需求文档
    2.最后在公司内部需要开会讨论,最终得到一个开发文档
        交给不同岗位的程序员进行开发。
        - Python:后端,爬虫
        - 不同的岗位:
            - UI界面设计:
                - 设计软件的布局,会分局软件的外观切成一张张图片
            - 前端:
                - 拿到UI交给他的图片,然后去搭建网页面。
                - 设计一些页面中,哪些位置需要接收数据,需要进行数据交互
            - 后端:
                - 直接核心的业务逻辑,调度数据库进行数据的增删改查改
            - 测试:
                - 会给代码进行全面的测试,比如压力测试,界面测试(CF卡箱子)
            - 运维:
                - 部署项目

## 二 程序的架构设计
### 1.程序设计的好处
        1)思路清晰
        2)不会出现写一半代码时推翻重写
        3)方便自己或以后的同事更好维护

### 2.三层架构设计的好处
        1)把每个功能都分层三部分,逻辑清晰
        2)如果用户更换不同的用户界面或不同的数据储存机制都不会影响接口层的核心逻辑代码,扩展型腔
        3)可以在接口层,准确的记录日志与流水。

架构图