【实际开发12】- 经验 experience

news2025/1/18 17:01:17

目录

1. 经验 experience

1. 无多大价值 , 停留数据展示层面

2. 保证数据一致性问题

3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 )

4. 新增 / 修改 ( 幂等性处理 )

5. 增 / 删 / 改 添加日志 , 查询无需日志

6. 需要对接多模块的通用字段设计 : String ( 推荐 )

7. 参数转换器

1. 资产结构数据边界 : tenantId , 但 tenantId=1系统租户查看所有

2. 多对象接受 [ ] 时 , query 无法传递 数组问题 : String 中转接收

8. 数据源关系维护

1. 主体 paret_relation 字段 , 存放 Json 数组 ( 解析 )

9. 中间表数据维护

1. 同步删除

2. 避免手动删除数据

10. 数据清洗 - ( 平台级别 : Dbus )

11. 前后端交互 : 入参数据结构演进 ( 单 转 多 ) ~ pic


1. 经验 experience


1. 无多大价值 , 停留数据展示层面


2. 保证数据一致性问题

保证数据一致性问题:

1、数据存 id

2、数据源唯一


3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 )


4. 新增 / 修改 ( 幂等性处理 )


5. 增 / 删 / 改 添加日志 , 查询无需日志


6. 需要对接多模块的通用字段设计 : String ( 推荐 )

锚点模块 , MachineId

1、对接 设备;锚点 type = 0 时 , MachineId 是 设备ID

2、对接 摄像头;锚点 type = 1 时 , MachineId 是 摄像头ID (坑 , 仅此处ID是 极长的 String 类型)

3、对接 公司;锚点 type = 2 时 , MachineId 是 公司ID

导致:
    对接 摄像头数据 , 可能需要大量修改锚点基础数据 - 20.08.04 待处理


7. 参数转换器


1. 资产结构数据边界 : tenantId , 但 tenantId=1系统租户查看所有

    /**
     * 将 tenantId == 1 的系统租户 , 处理为无 tenantId 的情况 - 20.10.12
     * @param iotStructureDTO 入参
     * @return IotStructureDTO 处理后的入参
     */
    private IotStructureDTO dealParam(IotStructureDTO iotStructureDTO) {
        if(iotStructureDTO.getTenantId() == 1){
            iotStructureDTO.setTenantId(null);
            return iotStructureDTO;
        }
        return iotStructureDTO;
    }


2. 多对象接受 [ ] 时 , query 无法传递 数组问题 : String 中转接收

    @Override
    public IPage<IotResourcesVO> queryIotResourcesByLabel(Page page ,  IotResourcesDTO iotResourcesDTO) {
        String labelIdList = iotResourcesDTO.getLabelIdList();
        List<Integer> list = Arrays.asList(labelIdList.split(" , "))
            	.stream()
                .map(s -> Integer.parseInt(s))  //.map(Integer::valueOf)
                .collect(Collectors.toList());
        iotResourcesDTO.setLabelId(list);
        IPage<IotResourcesVO> iotResourcesVOIPage = iotResourcesMapper.queryIotResourcesByLabel(page ,  iotResourcesDTO);
        return iotResourcesVOIPage;
    }


8. 数据源关系维护


1. 主体 paret_relation 字段 , 存放 Json 数组 ( 解析 )


9. 中间表数据维护


1. 同步删除


2. 避免手动删除数据


10. 数据清洗 - ( 平台级别 : Dbus )


11. 前后端交互 : 入参数据结构演进 ( 单 转 多 ) ~ pic

情景 :

1、原始设计,虚拟点位对应 单个设备,多个属性,设备由产品限制维度(取 1),属性由产品限制维度(取 > 1)

2、新需求,虚拟点位对应多个产品维度的属性,则最新虚拟点位设计:

    1、虚拟点位对应 多个设备,多个属性

    2、设备由产品限制维度(取 >1),属性由产品限制维度(取 > 1)

最终版:

1、方便数据回显

2、利于业务逻辑处理

前端 :

1、数据以 proId、machineId 为维度,一组一组的构建

2、+ 号按钮,触发新一组数据

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是CRM系统 企业如何选择合适的CRM系统

在如今市场竞争激烈情况下&#xff0c;企业更加注重客户的数据和管理&#xff0c;因此逐渐形成了“以客户为核心”的理念。而借助CRM系统管理客户数据已然成为一种趋势。 选择一款适合企业的CRM系统可以帮助企业实现更多的价值。但一些企业在初期根本不了解什么是CRM系统&…

Hadoop安装(一) --- JDK安装

目录 1.安装虚拟机 2.关防火墙 3.修改网络配置文件 4.重启网络服务 5.连接shell 6.安装vim工具 7.免密登陆 8. 开启远程免密登录配置 9.远程登录 10.同步时间 10.1.安装ntpdate 10.2.定时更新时间 10.3.启动定时任务 10.4.查看状态 11.修改计算机名 12.配置ho…

数据仓库的架构以及传统数据库与数据仓库的区别

一、数据仓库的分层架构 数据仓库的数据来源于不同的源数据&#xff0c;并提供多样的数据应用&#xff0c;数据自下而上流入数据仓库后向上层开放应用&#xff0c;而数据仓库只是中间集成化数据管理的一个平台。 1&#xff0c;源数据层&#xff08;ODS&#xff09; 操作性数…

袁树雄和杨语莲究竟什么关系 ,《早安隆回》走红后又是《汉川》

自从《早安隆回》火爆全网后&#xff0c;歌迷们就有一种担心&#xff0c;不知道这首好听的歌曲&#xff0c;究竟还能再够火爆多久。歌迷们的担心也不无道理&#xff0c;毕竟花无百日红&#xff0c;人无千般好&#xff0c;《早安隆回》就是再好听&#xff0c;也不可能红一辈子吧…

windows搭建go语言开发环境

1.下载Go语言开发包可以在Go语言官网 ( https://golang.google.cn/dl/ )下载Windows 系统下的Go语言开发包&#xff0c;如下图所示。这里我下载的是 64位的开发包&#xff0c;如果读者的电脑是 32 位系统的话&#xff0c;则需要下载 32 位的开发包&#xff0c;在上图所示页面中…

Fiddler手机抓包

手机抓包软件Fiddler 下载地址以及下载流程 Fiddler 下载地址&#xff1a;https://www.telerik.com/download/fiddler 下载后直接一键安装即可 重要的注意项卸载最前面 pc和手机需要在同一个局域网&#xff0c;也就是同一个wifi 配置 Fiddler界面的简单介绍 pc端Fildde…

Windows Server 2022 Install Veeam ONE 12

借助有关 Veeam Backup & Replication™ 和 Veeam Agents 及 VMware vSphere、Microsoft Hyper-V 和 Nutanix AHV 的洞察&#xff0c;Veeam ONE™ 可通过交互式工具和智能学习提供深度智能监控、报告和自动化功能&#xff0c;帮助客户发现问题并前瞻性地解决问题。 Veeam O…

CUDA编程之CUDA流

文章目录前言CUDA流在默认流中重叠主机与设备用非默认CUDA流重叠多个核函数的执行重叠多个核函数的例子用非默认CUDA流重叠核函数的执行与数据传递不可分页主机内存与异步的数据传输函数总结参考前言 CUDA程序的并行层次主要有两个&#xff0c;一个是核函数内部的并行&#xff…

C++面向对象——C++ 重载运算符和重载函数

C面向对象——C 重载运算符和重载函数C 重载运算符和重载函数C 中的函数重载C 中的运算符重载运算符重载实例C 一元运算符重载C 二元运算符重载C 关系运算符重载C 和 -- 运算符重载C 赋值运算符重载C 函数调用运算符 () 重载C 下标运算符 [] 重载C 类成员访问运算符 -> 重载…

三、进程通信

一、基础知识数据传输一个进程将他的数据发送给另一个进程资源共享多个进程间共享同样的资源通知时间一个进程向另一个进程发送消息&#xff0c;通知他们发生了某种事情通信方式&#xff1a;管道和有名管道信号signal消息队列共享内存信号量套接字二、管道&#xff1a;无名管道…

c++11 标准模板(STL)(std::multiset)(六)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

基于python Django 餐馆点菜管理系统

问题描述&#xff1a; 随着网络的迅速发展&#xff0c;越来越多的人开始接受甚至时依赖了网络营业的这种交易形式&#xff0c;传统的点菜模式不仅浪费时间&#xff0c;效率低下&#xff0c;而且特别耗费成本与人力&#xff0c;因此不少商家开始使用网上点菜系统。网上点菜系统是…

皮尔森相关系数(Pearson correlation coefficient)

最近在看脑机接口的网络&#xff0c;看到有使用通道的皮尔森相关系数作为特征的方法&#xff0c;这里记录一下皮尔森相关系数的学习内容&#xff0c;方便以后查阅。 皮尔森相关系数(Pearson correlation coefficient&#xff09;相关系数简单相关系数复相关系数典型相关系数参考…

【MySQL】MySQL中的数学函数有哪些?

数学函数MySQL函数简介数学函数1.绝对值函数ABS&#xff08;x&#xff09;和返回圆周率的函数PI&#xff08;&#xff09;2.平方根函数SQRT&#xff08;x&#xff09;和求余函数MOD&#xff08;x&#xff0c;y&#xff09;3.获取整数的函数CEIL&#xff08;x&#xff09;、CEIL…

关于Json Web Token(token)在前后端的实践思考

1、前言 啥也不说了&#xff0c;直接进入正题&#xff0c;来学习一下Token在前端和后端的简单应用分析 Token是在客户端频繁向服务端请求数据&#xff0c;服务端频繁的去数据库查询用户名和密码进行对比&#xff0c;判断用户名和密码是否正确&#xff0c;并作出相应提示&…

华为机试题:HJ37 统计每个月兔子的总数(python)

文章目录博主精品专栏导航知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input()与list(input())的区别、及其相互转换方法2、print() &#xff1a;打印输出。3、整型int() &#xff1a;将字符串或数字转换为整…

C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出

1. 常量与变量1.1 关键字1.2 数据类型数据类型的作用&#xff1a;编译器预算对象&#xff08;变量&#xff09;分配的内存空间大小。1.3 常量在程序运行过程中&#xff0c;其值不能被改变的量常量一般出现在表达式或赋值语句中整型常量100&#xff0c;200&#xff0c;-100&…

MySQL事务篇

目录​​​​​​​ 一.事务有哪些特性&#xff1f; 二.并行事务会引发什么问题&#xff1f; 脏读 不可重复读 幻读 三.事务的隔离级别有哪些&#xff1f; 一.事务有哪些特性&#xff1f; 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&…

4.数据库安全性

学习过程参考&#xff08;后续章节同&#xff09; 【公开课】数据库系统概论&#xff08;王珊老师&#xff09;&#xff08;完结&#xff09; 《数据库系统概论》思维导图 【专栏必读】数据库系统概论第五版&#xff08;王珊&#xff09;专栏学习笔记目录导航及课后习题答案详…

2023年02月IDE流行度最新排名

点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年02月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…