节点 结构设计 思路 结构

手把手教你搞定菜单权限设计,精确到按钮级别

一、介绍 在实际的项目开发过程中,菜单权限功能可以说是后端管理系统中必不可少的一个环节,根据业务的复杂度,设计的时候可深可浅,但无论怎么变化,设计的思路基本都是围绕着用户、角色、菜单进行相应的扩展。 今天小编就和大家一起来讨论一下,怎么设计一套可以精确到按钮级别的菜单权限功能,废话不多说,直接开撸! ......
按钮 菜单 权限 级别

设计「业务」与「技术」方案

三天研发,两天设计; 01 【优先做设计方案】 职场中的那些魔幻操作,研发最烦的是哪个? 作为一个数年且资深的互联网普通开发,可以来说明一下为什么是:缺乏设计; 面对业务需求的时候,可能都听过这样一句话: 这个很简单,直接开发,三天内上线; 产品听了流泪,测试见了崩溃,研发眉头一皱直呼什么鬼; 如果 ......
业务 方案 技术

深度剖析 Linux 伙伴系统的设计与实现

在上篇文章 《深入理解 Linux 物理内存分配全链路实现》 中,笔者为大家详细介绍了 Linux 内存分配在内核中的整个链路实现: 但是当内核执行到 get_page_from_freelist 函数,准备进入伙伴系统执行具体内存分配动作的相关逻辑,笔者考虑到文章篇幅的原因,并没有过多的着墨,算是 ......
深度 伙伴 系统 Linux

从 Cloud-Native Relational DB 看数据库设计

论文内容:Amazon Aurora: Design Considerations for HighThroughput Cloud-Native Relational Databases 里面介绍了一种云原生的关系型数据库 Aurora 的体系结构,以及导致该体系结构的设计考虑因素。我觉得和普通的 ......

[数据结构] 二分查找 (四种写法)

#二分查找 ##二分查找 二分查找(Binary Search)也叫作折半查找,前提是查找的顺序结构是有序的,我们一般在数组上进行二分查找。 二分查找就好像猜数字大小游戏一样。假设要数字目标值属于 [1, 1000] 范围内,当我们猜的数字小于这个目标值时("Too low"),我们需要往大去猜;反 ......
数据结构 写法 结构 数据

[数据结构] 树、二叉树、森林的转换

#树 ##树的表示方法 ###双亲表示法 用一组地址连续的存储单元来存放树中的各个节点,每一个节点中有一个数据域和一个指针域,数据域用来存储树中该节点本身的值;另一个指针域用来存储该节点的双亲节点在存储结构中的位置信息。 采用双亲链表存储方式实现查找一个指定节点的双亲节点比较方便,但难以实现查找一个 ......
数据结构 森林 结构 数据

[数据结构] 二叉搜索树 (二叉排序树)

#二叉搜索树 ##二叉搜索树的基本概念 二叉搜索树( Binary Search Tree )也称二叉排序树,是一种各节点值之间存在一定次序关系的二叉树。 ##二叉搜索树的特点 一般情况下,二叉搜索树中所有节点值是不重复的。 对于二叉搜索树中的每个节点: (1)如果其左子树不为空,那么其左边的节点值 ......
数据结构 结构 数据

[数据结构]二叉树的前中后序遍历(递归+迭代实现)

#二叉树的遍历 ##主要的三种遍历方式 二叉树主要的遍历方式有前序遍历、中序遍历和后序遍历。 (1)前序遍历:根节点-->左子树-->右子树 (2)中序遍历:左子树-->根节点-->右子树 (3)后序遍历:左子树-->右子树-->根节点 其实还有一种比较基础的遍历方式是层次遍历,但是在本篇文章中不会 ......
数据结构 结构 数据

明解STM32—GPIO理论基础知识篇之基本结构

​ 一、前言 万物皆有源头,大家学习单片机的源头操作就是通过GPIO口点灯,GPIO作为STM32最基础的外设,也是大家最先接触的外设。当然,看似基础的GPIO,不仅仅是简单的设置好IO口,让灯亮起就一了百了,了解清楚GPIO的使用特性,根本原理、运行机制对我们在涉及到GPIO的相关设计操作上会应用 ......
基础知识 理论 结构 基础 知识

[数据结构] 根据前中后序遍历中的两种构造二叉树

#前中后序遍历 ##前中后序遍历的特点 ###前序遍历 前序遍历顺序:根节点 -> 左子树 -> 右子树 前序遍历结果:[根节点,[左子树前序遍历结果],[右子树前序遍历结果]] 假如把前序遍历结果存到数组中,数组中的第一个元素就是二叉树根节点的数据,而且还可以知道第二个元素是根节点左孩子的数据,即 ......
数据结构 结构 数据

从设计110序列检测器来看--同步时序电路设计

#从设计110序列检测器来看--同步时序电路设计 开学临近,本人查缺补漏,应对推迟的期末考试 同步时序逻辑设计,难度有所增加,本人欲通过110序列检测器来解决这一问题点: ##设计步骤: 1.获取原始状态图与状态表--分析状态图表 2.最简化状态图表 3.状态编码 4.利用状态转移表与触发器特征设计 ......

【数据结构和算法】Trie树简介及应用详解

Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 ......
数据结构 算法 结构 简介 数据

Fabric2.x中Raft共识算法核心数据结构

一、共识算法可插拔的代码体现Chain接口 Hyperledger Fabric的共识算法是可插拔的,在代码上体现为Chain接口,所有不同的共识算法均可根据Chain接口进行具体实现,目前fabric支持solo、kafka、raft、sbft等共识算法。Chain接口的代码在fabric/ord ......
数据结构 共识 算法 核心 Fabric2

搞懂设计模式——代理模式 + 原理分析

举个栗子,众所周知,我们是可以在京东上购买机票的。 但机票是航司提供的,我们本质上是代理销售而已。 那为什么航司要让我们代理销售呢? 我们又是如帮他做代理的呢? 别急,本文将展开说说他们之间的关系。。。 ......
模式 设计模式 原理

随机高并发查询结果一致性设计实践

物流合约中心是京东物流合同管理的唯一入口。为商家提供合同的创建,盖章等能力,为不同业务条线提供合同的定制,归档,查询等功能。由于各个业务条线众多,为各个业务条线提供高可用查询能力是物流合约中心重中之重。同时计费系统在每个物流单结算时,都需要查询合约中心,确保商家签署的合同内容来保证计费的准确性。 ......
一致性 结果

NAPT网络结构下TCP/UDP/ICMP访问外网原理思考

背景 作为程序员,应该都听说过NAT(Network Address Transfer,网络地址转换)这一技术名词,并或多或少大概知道其原理与作用--NAT是用于解决IPv4地址不够用,保证我们能够在IPv6普及前依然可以正常使用互联网而广泛使用的一个技术,其原理正如其名称所示:其可以将私网IP通过 ......
原理 结构 网络 NAPT ICMP

(Java)设计模式:结构型

前言 这篇博文续接的是 UML建模、设计原则、创建型设计模式、行为型设计模式,有兴趣的可以看一下 3.3、结构型 这些设计模式关注类和对象的组合。将类和对象组合在一起,从而形成更大的结构 * 3.3.1、proxy 代理模式 定义:为某对象提供一种代理以控制对该对象的访问。即:客户端通过代理间接地访 ......
结构型 设计模式 模式 结构 Java

Qt界面设计--侧边栏隐藏和滑出

在日常项目中,界面布局上经常使用到侧边栏的方式,在侧边栏放置控件进行复合使用,可以实现子功能界面的隐藏和滑出,效果展示如下: 界面控件很简单,主界面QWidget,侧边栏也用一个QWidget和一个按钮QPushbutton来进行组合。通过点击按钮来显示和隐藏侧边栏。主要用到的是控件的move()函 ......
侧边 界面设计 界面

Flutter异常监控 - 伍 | 关于异常监控框架设计的思考

前言 最近阅读 Catcher、BugSnag、Rollbar 三个 Flutter 异常监控开源框架,文章链接如下: Flutter 异常监控 - 壹 | 从 Zone 说起 Flutter 异常监控 - 贰 | 框架 Catcher 原理分析 Flutter 异常监控 - 叁 | 从 bugsn ......
框架 Flutter

一文读懂 Kubernetes 存储设计

在 Docker 的设计中,容器内的文件是临时存放的,并且随着容器的删除,容器内部的数据也会一同被清空。不过,我们可以通过在 docker run 启动容器时,使用 --volume/-v 参数来指定挂载卷,这样就能够将容器内部的路径挂载到主机,后续在容器内部存放数据时会就被同步到被挂载的主机路径中 ......
Kubernetes

设计模式之单例模式

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.c ......
模式 设计模式

使用gm/ID方法设计二级运算放大器

1 设计指标 运算放大器采用图1所示的电路结构,电路中的电流源均采用共源共栅结构,可以获得较高的共模抑制比和电流复制精度。其性能指标为增益带宽积GBW=100MHz,负载电容CL=2pF。本设计采用的工艺库中NMOS的最小沟道长度为0.5μm,PMOS的最小沟道长度为0.55μm。 图1 二级运算放 ......
运算放大器 放大器 方法 gm ID

面对集中式缓存实现上的挑战,Redis交出的是何种答卷?聊聊Redis在分布式方面的能力设计

对于一个集中式缓存的分布式能力构建,必须要额外提供一些机制,来保障数据在各个节点上的安全与一致性。本文以Redis为代表,看下集Redis面对上述问题交出的是怎样一份答卷。 ......
Redis 答卷 分布式 缓存 方面

使用Python库pyqt5制作TXT阅读器(一)-------UI设计

项目地址:https://github.com/pikeduo/TXTReader PyQt5中文手册:https://maicss.gitbook.io/pyqt-chinese-tutoral/pyqt5/ QtDesigner学习地址:https://youcans.blog.csdn.net ......
阅读器 Python pyqt5 pyqt TXT

C++ 一种交换两个数的思路

在 Lua 或者 Python 中可以使用多值赋值语句来交换两个数。例如:a, b = b, a。在 C++ 中有没有类似的操作? 先解析一下多值赋值的原理,a, b = b, a 等价于 t1, t2 = b, a a, b = t1, t2 可以看到多值赋值还是用到了中间变量,而且还是两个。想到 ......
思路 两个

MySql树形结构(多级菜单)查询设计方案

背景 又很久没更新了,很幸运地新冠引发了严重的上呼吸道感染,大家羊过后注意休息和防护 工作中(尤其是传统项目中)经常遇到这种需要,就是树形结构的查询(多级查询),常见的场景有:组织架构(用户部门)查询 和 多级菜单查询 比如,菜单分为三级,一级菜单、二级菜单、三级菜单,要求用户按树形结构把各级菜单查 ......
树形 菜单 结构 方案 MySql

【架构设计】你真的理解软件设计中的SOLID原则吗?

前言 在软件架构设计领域,有一个大名鼎鼎的设计原则——SOLID原则,它是由由Robert C. Martin(也称为 Uncle Bob)提出的,指导我们写出可维护、可以测试、高扩展、高内聚、低耦合的代码。是不是很牛,但是你们都理解这个设计原则吗,如果理解不深入的话,更这我通过JAVA示例深入浅出 ......
架构 原则 SOLID 软件

工作流引擎架构设计

原文链接: 工作流引擎架构设计 最近开发的安全管理平台新增了很多工单申请流程需求,比如加白申请,开通申请等等。最开始的两个需求,为了方便,也没多想,就直接开发了对应的业务代码。 但随着同类需求不断增多,感觉再这样写可要累死人,于是开始了工作流引擎的开发之路。查找了一些资料之后,开发了现阶段的工作流引 ......
工作流 架构 引擎

[数据结构]KMP算法(含next数组详解)

#字符串匹配问题 给定一个字符串 s 和一个要匹配的模式串 p。模式串 p 有可能在 s 中多次出现,请求出模式串 p 在 s 中所有出现的起始位置。 #暴力匹配算法 BF ##算法思路 在面对字符串匹配问题时,很容易想到暴力求解。字符串匹配的暴力算法思路很简单,即在 s 中枚举起点 i,对于每个起 ......
数据结构 数组 算法 结构 数据

基于WebSocket的实时消息传递设计

概述 web管理系统中可以对业务数据执行新增和删除,现在需要当业务数据发生新增或删除操作后,尽可能实时的反应到WPF客户端上面。 web管理系统用VUE编写,后端服务为SpringBoot,WPF客户端基于.Netframework4.8编写。 整体架构 sequenceDiagram title: ......
实时 WebSocket 消息