单据 星空 状态 方案

用状态模式改善代码的可维护性

设计模式之状态模式 状态模型是一种软件设计模式,它通过将对象的行为随状态变化而变化来实现状态机的行为。状态机可以将一个对象的生命周期分解为若干个状态,并规定在不同状态下,对象可以进行哪些行为,以及如何从一个状态转移到另一个状态。 状态模型中的状态被封装在不同的状态类中,这些状态类实现了一个共同的接口 ......
可维护性 状态 模式 代码

状态迁移表:一种简洁的 FSM 设计工具

关于订单状态迁移表的概述 状态迁移表(State Transition Table)是一种常见的状态机模型表示方式,用于记录状态机中不同状态之间的转移条件。它通常是一个二维表格,其中表格的行表示状态机中的状态,而表格的列则表示可以触发状态转移的事件或条件。表格中的每个单元格记录了在某个状态下,如果满 ......
状态 工具 FSM

系统设计中的有限状态机FSM技术解析

FSM(有限状态机)是一种数学模型,用于描述系统或程序的行为,SM的状态机设计要点包括确定状态集合、转移函数、初始状态和结束状态,绘制状态图和转移表格,以及状态机的实现。其设计要点包括以下几个方面: 确定状态集合:需要明确系统可能的所有状态,并将其表示为一个状态集合。状态集合应该包含系统的所有可能状 ......
状态 系统 技术 有限 FSM

MAUI Blazor 加载本地图片的解决方案

前言 为了解决MAUI Blazor无法加载本地图片,https://github.com/dotnet/maui/issues/2907,所以写了这篇文章。 有token大佬珠玉在前,https://www.cnblogs.com/hejiale010426/p/17073079.html ,以及 ......
解决方案 方案 Blazor 图片 MAUI

POI Excel单元格样式超过最大数(4000或64000)的解决方案

aliases: [] tags : " #QA #Java " summary: [POI生成Excel超出的单元格样式的最大数量] author : [yaenli] notekey: [20230322-100908] 问题现象 使用Apache POI生成Excel时,如果创建的单元格样式过 ......
样式 单元 解决方案 方案 Excel

一文了解清楚kafka消息丢失问题和解决方案

前言 今天分享一下kafka的消息丢失问题,kafka的消息丢失是一个很值得关注的问题,根据消息的重要性,消息丢失的严重性也会进行放大,如何从最大程度上保证消息不丢失,要从生产者,消费者,broker几个端来说。 消息发送和接收流程 kafka生产者生产好消息后,会将消息发送到broker节点,br ......
解决方案 消息 方案 问题 kafka

在echaerts中渲染50万条数据的优化方案

背景:项目需求中要在页面上渲染大约50万条左右的波形数据图表 那么如何解决渲染中的卡顿呢? 肯定是要从服务端和前端一起优化这是毋庸置疑的。 1.服务端: 服务端耗时最多的一定是在数据库的筛选数据的行为上,本次需求中数据的筛选是根据物理量的类型和时间来进行的。 为了提速,应当取消掉其他的筛选条件,并且 ......
万条 echaerts 方案 数据

【LeetCode贪心#12】图解监控二叉树(正宗hard题,涉及贪心分析、二叉树遍历以及状态转移)

监控二叉树 力扣题目链接(opens new window) 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1: 输入:[0,0,null,0,0] 输出:1 解释:如图所示,一台摄像头足以 ......
LeetCode 状态 hard 12

23年用vuex进行状态管理out了,都开始用pinia啦!

1 Vue2项目中,Vuex状态管理工具,几乎可以说是必不可少的了。而在Vu3中,尤大大推荐我们使用pinia(拍你啊)进行状态管理,咱得听话,用就完了。 使用之前我们来看一下,使用 pinia 给我们带来哪些好处? **官网介绍:**Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态 ......
状态 pinia vuex out

前端随笔0:URL与状态的双向绑定

这篇要讨论的这个概念,应该也不是我发明的新词,叫 URL 与状态的双向绑定,字面意思来说,在刷新页面或跳转页面时解析 URL 并对应更新组件的状态,在组件状态更新时同步更新 URL,为什么要引入这种机制嘞? ......
前端 双向 随笔 状态 URL

一种新的骨架屏方案

动机 最近遇到了一个实现骨架屏的需求,我大致调研了一下市面上使用得比较多的骨架屏方案,发现这些方案很多都不能满足我的需求,比如 或者 从第一幅图可以看到,骨架屏中的元素有着各自独立的动画效果,也就是说其中的“波浪”并不是从左边的元素跑到右边的元素,而是分别从每个元素的左边跑到每个元素的右边,这看起来 ......
骨架 方案

苹果手机H5 video标签播放视频问题以及.mov格式处理方案

最近在做一个手机端拍照上传,并预览文件的功能,前端用h5 video 标签,后端用springboot+minio。 问题 刚开始写代码和测试的时候,都是用的安卓手机,照片和视频都没问题,后来换成用苹果手机后,播放视频就出现各种问题,先是苹果手机拍的mov视频不支持播放,后面又出现苹果手机播放不了视 ......
苹果 标签 格式 方案 问题

SICP:赋值和局部状态(Python实现)

前面我们介绍了组成程序的各种基本元素,看到了如何把基本过程和基本数据组合起来,构造出复合的实体。不过对于设计程序而言,这些手段还不够,我们还需要一些能够帮助我们构造起模块化(modular)的大型系统的策略。所谓模块化,也即使这些系统能够“自然地”划分为一些内聚(coherent)的部分,使这些部分... ......
局部 状态 Python SICP

hibernate跨数据库,columnDefinition不可移植性改造方案

#背景&问题描述 很多项目选择jpa/hibernate,更多是为了代码的可移植性,不限制数据库的选择。特别是toB的业务系统,不同的客户,要求用不同的数据库。特别近几年,大力倡导软件国产化,国产数据库也在崛起,很多政府、国企、电力、银行在数据库的选择上,纷纷转向国产数据库。也许mybatis+my ......

hibernate跨数据库,json字段处理方案,自定义扩展JsonStringType

一、背景 对于一些不经常更新的静态数据,我们喜欢使用json格式存储。推荐的做法是将json数据存储在key-value数据库,但这无疑增加了技术成本,所以我们通常还是存储在RDB数据库中。我们在使用hibernate,对json数据的存取期望是,存能自动转换为json格式存储,取能自动将json数 ......

MySQL 并行复制方案演进历史及原理分析

预告: 《MySQL实战》即将出版,敬请关注! 有过线上 MySQL 维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。 不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量 DBA 的综合能力:既要熟悉复制的内部原理,又能解读主机层面的资源使用情况,甚至还要会分析 binlo ......
原理 方案 历史 MySQL

描述一下锁的四种状态及升级过程?

1、锁的四种状态 无锁、偏向锁、轻量级锁、重量级锁 2、Java对象头描述 以下为32位对象头描述以下为64位对象头描述 3、锁的升级过程(Synchronized加锁/膨胀流程) 1)简单过程如下图 2)详细过程 当线程访问同步代码块时,首先判断当前锁状态是否为可偏向状态(对象头中偏向锁=1,锁标 ......
状态 过程

Go构建遇到cgo动态库时解决方案

1. 问题 golang构建程序很简单,当遇到需要调用c库时,如通常使用 net,kafka, sqlite3 程序运行时就会调用当前服务器的 动态库,如果遇到没有库时,通常还需要 下载比如 alpine需要安装sqlite apk add --no-cache sqlite-libs sqlite ......
解决方案 方案 动态 cgo

现代图片性能优化及体验优化指南 - 懒加载及异步图像解码方案

本文是系列第四篇。系列文章: 现代图片性能优化及体验优化指南 - 图片类型及 Picture 标签的使用 现代图片性能优化及体验优化指南 - 响应式图片方案 现代图片性能优化及体验优化指南 - # 缩放精细化展示及避免布局偏移、拉伸 图片资源,在我们的业务中可谓是占据了非常大头的一环,尤其是其对带宽 ......
图像 性能 方案 指南 图片

轮播图接口加缓存和定时更新(双写一致性问题以及其解决方案)

一、轮播图加缓存 有些知名网站首页被访问的频率很高,假设瞬间 1w个人在访问,首页的轮播图接口会执行1w次,1w次查询轮播图标的sql在执行,轮播图基本不变,首先我们给自己写的轮播图接口加缓存,我们可以用缓存数据库Redis来实现加缓存的需求 首先罗列一下文字版的逻辑,之后在代码上实现 当轮播图接口 ......
一致性 缓存 接口 解决方案 方案

Apk_动态调试方案

环境准备 安装夜神安卓模拟器 配置好adb【Android 调试桥】环境(这里需要使用官方的adb环境,设置好环境变量)Android 调试桥 (adb) | Android 开发者 | Android Developers (google.cn) 置换夜神模拟器路径下的adb.exe,使环境版本适 ......
方案 动态 Apk

基于 Istio 的灰度发布架构方案实践之路

灰度发布,是指能够平滑过渡的一种发布方式。尤其是对于toB业务和SAAS类平台,很多情况需要根据租户或用户维度进行灰度控制,实现业务上的A/Best功能。尽管几经迭代,但仍存在系统入侵性强、新版本接口异常等问题。因此,探索了一条基于Istio的服务流量治理方案下的灵活可配置的灰度发布方案。 ......
灰度 架构 方案 Istio

用Redis实现延迟队列,我研究了两种方案,发现并不简单

大家好,我是三友~~ 背景 前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是一个小项目,并没有引入MQ,我也不太想因为一个延迟任务就引入MQ,增加系统复杂度,所以这个方案直接就 ......
队列 方案 Redis

立即执行函数在前端国际化方案中的应用

说起国际化,开发过跨区域网页的小伙伴应该都遇到过。我们的网页需要配置多套语言,方便用户进行切换。 本文就以 React 为例,介绍其中一种实现方案,并学习一下其中的知识点。 一种国际化方案 方案是这样的: 为多套语言创建对应的 object,并 export 出去 通过 js 立即执行函数,加载选定 ......
前端 函数 方案 国际

研究c#异步操作async await状态机的总结

前言 前一段时间得闲的时候优化了一下我之前的轮子[DotNetCoreRpc]小框架,其中主要的优化点主要是关于RPC异步契约调用的相关逻辑。在此过程中进一步了解了关于async和await异步操作相关的知识点,加深了异步操作的理解,因此总结一下。关于async和await每个人都有自己的理解,甚至 ......
状态 async await

vivo官网App模块化开发方案-ModularDevTool

作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。 说明:本工具基于vivo互联网客户端团队内部开源的编译管理工具开发。 一、背景 现在客户端的业务越来越多,大部分客户端工程都采用模块化的 ......
ModularDevTool 模块 方案 vivo App

uni-app:获取当前经纬度解决方案+如何布置全局组件

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.布置全局组件 在我们开发的过程中,会碰到一个现象,就是在页面里面引入组件,总算要写import,components才能引用,这里给大家分享我们的一个解决方案 1.首先要建立一个components文件夹,用来放我们的所有组件 2.然 ......
经纬度 经纬 全局 组件 解决方案

前端报表如何实现无预览打印解决方案或静默打印

在前端开发中,除了将数据呈现后,我们往往需要为用户提供,打印,导出等能力,导出是为了存档或是二次分析,而打印则因为很多单据需要打印出来作为主要的单据来进行下一环节的票据支撑, 而前端打印可以说是非常令人头疼的一件事。为什么令大家头疼呢?因为前端打印,要强依赖与浏览器的打印预览页面,会天然存在以下弊端 ......
前端 报表 解决方案 方案

【多线程与高并发】- 线程基础与状态

所谓线程就是操作系统(OS)能够进行运算调度的最小单位,是一个基本的CPU执行单元,也是执行程序流的最小单元。能够提高OS的并发性能,减小程序在并发执行时所付出的时空开销。线程是进程的一个实体,是被系统独立调度和分派的基本单位。 ......
线程 状态 基础

大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad

前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介 大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s 📚️Reference: IoT 边缘计算系列文章 HashiCorp 解决方案 - Nomad + Docker 简介 Nomad: 一个简单而灵 ......
集群 容器 架构 HashiCorp 大规模