通用概念与算法与设计
文章平均质量分 86
且_听_风_吟
2018年至今java后端,spring boot 、cloud项目设计管理,微服务开发模式下的高并发和分布式整体架构研究。
2015-2017年主要做传统java web ssh服务,传统的集群、分布式架构设计。
了解前端、安卓开发;
展开
-
通用权限系统-2023V1
一个通用的授权,其主体与选择、权限与选择、授权与规则均需要灵活可配,常规设计中的菜单、按钮、机构、组织、角色均为其特例。原创 2023-03-07 08:45:00 · 928 阅读 · 0 评论 -
java命名那些事儿二(命名单词速查)
本文将会整理一些开发过程中常见的用于命名单词,方便使用。对于成对词组、衍生词组则放到一起说明。本文将会陆续更新。原创 2023-03-03 18:05:42 · 1292 阅读 · 0 评论 -
java命名那些事儿一(命名规范).md
程序界两大难题,缓存一致性与命名那些事儿。本文为命名规范整理;下文为命名单词速查,整理了一些常见的命名使用到的单词。原创 2022-08-21 17:22:54 · 1067 阅读 · 1 评论 -
组内成员少量变化的数据增量存储方案
场景假定有个聊天组,组内有成员,成员可以加入和退出(较少发生),此时需求如下查询(历史上)某时间段内(最小单位日)所有存在过的具体成员查询某时间段内新增和退出的具体成员涉及的表为 group_member字段:member_id = 用户idcreated = 创建时间方案传统方案通常简单的方案就是新增两张表,分别 固化数据 + 事件日志存储如果查询某日的组内成员情况,可以每日固化数据对于成员的加入和退出,可以结合当日的 事件日志和前一日的固化数据精确计算结果缺点原创 2022-02-25 22:24:28 · 362 阅读 · 0 评论 -
维度预算实战海量数据增量统计查询
需求以下为笔者在实际项目过程中的简化场景,主要描述维度预算和查询的相关思路,部分细节可忽略(比如其它基于数据维度的分库分表)。简化场景假设当前有一个销售平台销售a、b、c、三种货物,后续可能销售其它货物这三种货物由fa、fb、fc三家厂家生产,后续可能新增其它厂家货物最终被销售网全国各地,已发货的货物认为售出货物可能被退货,退货货物不计入售出货物的销售数量非常大,售出 Max(并发)约 每秒 <= 200 , 总数据量年 约等于 1 亿简化要求ps: 实时原创 2022-01-26 16:07:29 · 1391 阅读 · 0 评论 -
hashids加密算法基础与扩展
前言hashids的核心原理是映射,将原有字符映射为其它字符,且此映射是可逆的,网上有具体的原理和库,本文主要描述相关思路。映射即通过某种规则将数据A变为数据B,如果可逆,则同样通过反操作可以将数据B映射为数据A所以可以编码,也可以编码,不同于hash256编码和MD5编码这种为了编码的安全性,通常需要将规则分为逻辑规则和初始数据部分逻辑规则就是基本的映射算法初始数据部分可以理解为辅助逻辑规则生成具体映射方法的参数因为映射是可逆的,所以信息不能损失,只能通过各种规则来变换,如此方可解原创 2022-01-26 08:54:54 · 547 阅读 · 0 评论 -
如何设计一个通用的开放平台下-数据存储
前言此开放平台的设计文档分为上、中、下三篇来说明,分别对应概念与总体流程、关键逻辑、数据存储三部分。存储设计存储方面,结合前文提到的功能和需求,这里以mysql库为例子,做一个表设计,默认表不使用外键,同时使用utf8mb4作为编码存储;除非特殊说明,默认所有字段非空;除开开发者,开放平台本身运维需要一些运营、开发人员,此部分设计同大多数的后台管理系统一致,本文不涉及。通用字段status 通用状态-1 = 删除 ( 不可读, 不可写 )0 = 禁用 ( 可读 , 不可写 )原创 2022-01-24 22:08:09 · 1094 阅读 · 0 评论 -
如何设计一个通用的开放平台中-关键逻辑与规则
前言此开放平台的设计文档分为上、中、下三篇来说明,分别对应概念与总体流程、关键逻辑、数据存储三部分。关键逻辑在开放平台的访问和使用中,实现需求功能时需要梳理的实现方式、思路。重复请求处理常见的方式有两种,根据实际情况选择一种即可。第一种开放平台默认将每一次请求都视为一次 全新的请求并处理.如果有重复的特殊需求 , 会在接口中特殊说明 , 在业务处理中来对重复请求做具体的处理 , 具体处理方式和具体接口相关.第二种重复请求由框架处理,通过唯一的请求id来标志此次请求,对重复的更新原创 2022-01-24 22:04:59 · 573 阅读 · 0 评论 -
如何设计一个通用的开放平台上-基本需求与总体流程
前言此开放平台的设计文档分为上、中、下三篇来说明,分别对应概念与总体流程、关键逻辑、数据存储三部分。需求简析背景企业之间需要数据交换,需要使用对方的功能时,如果规模较大,对接方比较多则需要有一个统一的对外的平台来完成这些功能。此平台负责对外提供各种功能,提供标准化的交互规则和文档来方便多方数据对接。功能点一般而言,开放平台需要支持如下功能支持认证与鉴权,主要需要对接入的第三方进行识别,以及不同接入方可以访问的不同接口权限、数据权限做核验。支持数据隔离,不同接入方产生或访问的数据是隔离的,原创 2022-01-24 22:02:21 · 820 阅读 · 0 评论 -
缓存和缓存算法相关基本概念
什么是缓存 ?缓存就是数据交换的缓冲区(称作Cache)。 大部分的缓存使用,是为了提高程序数据的处理速度或者说提高程序的响应速度。 当然也有小部分的缓存是基于寿命,性价比等原因。 我们主要讨论使用缓存提高程序数据的处理速度的实现,这样就要求缓存的速度是必须 大于原来数据的处理速度的。缓存方式简单分类数据的缓存可以简单的分为两类原始数据缓存 不对需要的数据处理,即存...原创 2018-04-12 16:52:25 · 1327 阅读 · 0 评论