zoukankan      html  css  js  c++  java
  • 项目开发从0到1

    项目开发流程

    1、项目开发总体思路:

      (1)需求分析(提取功能)

      (2)架构设计

      (3)分任务开发

      (4)项目测试

      (5)项目上线

    2、打开pycharm解释器,创建一个项目文件,点击File-->选择New Project..-->Location里编辑项目名称和存储位置-->点击Create,项目创建成功

    3、创建readme.md文件,这里存放该项目的基本信息,

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

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

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

    下图以用户登录为例演示三层架构设计

    4、我们以模拟实现一个《ATM + 购物商城》程序为例说明,需求如下:

    1. 额度 15000或自定义
    2. 实现购物商城,买东西加入 购物车,调用信用卡接口结账
    3. 可以提现,手续费5%
    4. 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息
    5. 支持多账户登录
    6. 支持账户间转账
    7. 记录每月日常消费流水
    8. 提供还款接口
    9. ATM记录操作日志 
    10. 提供管理接口,包括添加账户、用户额度,冻结账户等。。。
    11. 用户认证用装饰器
    4.1)第一步、需求分析:提取项目需求
    1、额度 15000或自定义 --> 注册功能
    2、实现购物商城,买东西加入 购物车,调用信用卡接口结账 -->购物车功能,支付功能
    3、可以提现,手续费5% --> 提现功能
    暂时不用实现:每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息
    4、支持多账户登录 --> 登录功能
    5、支持账户间转账 --> 转账功能
    6、记录每月日常消费流水 --> 记录流水功能
    7、提供还款接口 --> 还款功能
    8、ATM记录操作日志 --> 记录日志功能
    9、提供管理接口,包括添加账户、用户额度,冻结账户等。。。 --> 管理员功能
    10、用户认证用装饰器 -->登录认证的装饰器

    4.2)第二步、架构设计

      第一层:用户视图层

        用于与用户进行交互:

          接受用户输入的内容

          返回打印输出内容给用户

      第二层:逻辑接口层

        业务的核心逻辑,相当于用户视图层与数据处理层间的桥梁

          接收用户视图层传递过来的参数进行逻辑处理

          返回结果给视图层

      第三层:数据处理层

        做数据处理

          增、删、改、查

     架构设计的具体实现如下:

    ATM根目录

      readme.md --> 项目的文件说明书

      conf --> 配置文件

        settings.py

      lib --> 存放公共方法文件

        common.py

      core --> 存放视图层代码文件

        src.py

      inter --> 存放逻辑接口层文件,存放核心业务逻辑代码

        user_interfance.py:   用户相关的接口

        bank_interface.py:    银行相关的接口

        shop_interface.py:  购物车相关的接口

      db --> 存放数据处理层代码文件

        db_handler.py:       数据处理层代码

        user_data.py:         用户数据

      log --> 存放日志文件

      bin --> 存放启动文件(可以不写,直接将启动文件存放到根目录下)

        start.py  程序的启动文件

      

    代码实现

    1)第一步:start.py中添加解释器的环境变量,导入src

    2)第二步:程序执行到run(),到core-->src.py

    3)第三步:代码继续运行跑到func_dic处,创建空函数,创建函数字典

    输入功能编号1,进入字典匹配1对应的函数,是注册功能,调用register()函数

    程序运行register()函数:

      第一步用户输入内容,

      第二步调用接口层的注册接口,

      第三步展示结果给用户

     

      register()函数之第二步:调用接口层的注册接口(路径inter-->user_interface-->register_interface-->db_bandler.select())

     register()函数之进入数据处理层调用select(username)函数,判断username.json文件是否存在,并返回结果给接口层,(1)有则返回user_dic,(2)没有则返回None。

    (1) 假设username.json文件已存在,会把user_dic的结果返回给用户视图层的src-->register_interface

     

         用户名已存在:用户视图层的src-->register_interface(分别把False-->flag,       用户已存在----->msg),如下所示:打印“用户已存在”

     (2)用户名不存在则返回None,如下图所示,①if判断不执行,②加密密码,③创建一个新字典user_dic,④进入数据处理层调用save()功能保存该数据

     

      ④进入数据处理层调用save()功能保存数据:db_handler.py-->save(user_dic)-->user_dic.get("username")得到该字典名称给到username-->拼接文件路径-->打开conf文件夹下的settings.py文件,运行settings.USER_DATA_PATH

    打开conf文件夹下的settings.py文件,运行settings.USER_DATA_PATH:如下图所示①USER_DATA_PATH拼接文件路径,②③找文件的根目录BASE_PATH,④找到db文件,⑤找到user_data文件。此处返回一个文件路径给到USER_DATA_PATH

     

     上面返回一个文件路径给到USER_DATA_PATH:①:把settings返回值再次回到db_handler.py文件,②得到user_path拼接后的文件路径,③路径+文件名=该文件(用户名.json)④文件保存到指定位置。⑤获取(用户名.json)文件路径并打开。⑥把save(user_dic)参数user_dic传给(用户名.json)

     说明:ensure_ascii=False作用让文件(用户名.json)中的中文数据,显示更美观,而不是以二进制形式展示,如下图所示:

     

    ensure_ascii=True以二进制形式展示如下所示:

     

     数据保存成功:db_handler里的save()保存功能执行完毕后回到user_interfance.py中:①db_handler.save()功能实现。②程序继续向下运行。③程序遇到return 将结果(结果是:True,用户名注册成功)返回给register_interface,register_interface拿到数据返回给src(最开始调用register_interface的地方),

     register_interface拿到数据返回给src(上回书说到用户不存在的情况调用register_interface的地方),①user_interface拿到(True,用户名注册成功),分别把True-->flag,       用户名注册成功----->msg。②程序继续运行。③进入判断打印“用户名注册成功”

     注册功能展示完毕

      

  • 相关阅读:
    dva实用的学习笔记
    上传图片到七牛云
    Lodash学习笔记
    Ant Design Pro 脚手架+umiJS 实践总结
    SVN的安装和使用手册
    判断数据类型的5种方法
    常见react面试题汇总(适合中级前端)
    Es6 类class的关键 super、static、constructor、new.target
    ES2019 新特性简介
    通用正则实战200
  • 原文地址:https://www.cnblogs.com/liunaixu/p/12737161.html
Copyright © 2011-2022 走看看