Diff算法的简单介绍
原生 DOM 更新 graph LR A[数据变化] --> B[手动查找DOM节点] B --> C[直接修改节点属性] C --> D[处理相关依赖节点] Diff 算法更新 graph LR A[应用状态变更] --> B[生成新的虚拟 DOM 树] B --> C[Diff 算法比较新旧树] ...
一碰即传,重构跨设备文件分享体验
用户在分享图片、文件或热点时,需经历复杂的操作流程(如打开应用、选择文件、搜索设备、确认传输等),步骤繁琐且耗时;或者需要用户打断当前操作(如暂停视频播放、退出游戏界面),导致体验不连贯。 HarmonyOS SDK 分享服务(Share Kit)推出了"碰一碰分享"能力,支持用户通过碰一碰发起跨端 ...
深入指南:在SCSS中高效使用@font-face引入自定义字体
网页设计中90%的视觉信息由文本承载,而字体选择直接影响用户体验。掌握@font-face是前端开发的核心技能之一 一、@font-face基础概念 @font-face是CSS原生的字体引入规则,允许加载服务器托管的字体文件,突破"Web安全字体"的限制。与传统CSS相比,在SCSS中使用可借助以 ...
SpringBoot系列之集成EasyExcel实现百万级别的数据导入导出实践
Spring Boot 系列:集成 EasyExcel 实现百万级数据导入导出实战 SpringBoot与微服务实践系列博客 本文基于开源项目 springboot-easyexcel-batch 进行解析与扩展,手把手教你如何在 Spring Boot 2.2.1 中集成 Alibaba Easy ...
上周热点回顾(7.28-8.3)
热点随笔: · AI 的力量,开发者的翅膀:欢迎使用字节旗下的 AI 原生开发工具 TRAE (博客园团队)· 2025年:是时候重新认识System.Text.Json了 (.NET骚操作)· 「闲聊文」准大三的我,思前想后还是不搞java/IT了 (crhl-yy)· C#性能优化:为何 x * ...
“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?
Java虚拟机采用的是基于栈的指令集架构,这意味着Java虚拟机主要通过解释执行基于栈的字节码来运行Java程序。尽管Java虚拟机采取了一些优化措施,如栈顶缓存(Stack Top Cache),将栈顶元素缓存到寄存器中以减少对内存的频繁访问,但这些优化手段并不能从根本上解决基于栈的指令集执行效率 ...
LangChain框架入门06:手把手带你玩转LCEL表达
在前面几篇文章中,我们已经掌握了LangChain的核心组件:提示词模板、大语言模型、输出解析器。细心的读者可能发现,在使用这些组件时,经常会看到类似 prompt | llm | parser 这样的链式操作。这就是今天重点介绍的LCEL(LangChain Expression Language ...
Mysql的索引数量是否越多越好?为什么?
什么是索引? 索引是存储引擎用于提高数据库表的访问速度的一种数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。 索引一般存储在磁盘的文件中,它是占用物理空间的。 索引的优缺点? 优点: 加快数据查找的速度 为用来排序或者是分组的字段添加索引,可以加快分组和排序的速度 加快表与表之间的连 ...
ArgoCD:我的GitOps探索之旅与未来展望
大家好!作为一名深耕云原生领域多年的工程师,我很荣幸能与各位分享我与ArgoCD的精彩故事。这篇文章将带您深入了解ArgoCD的实践应用与未来潜力,无论您是初涉GitOps的新手还是经验丰富的专家,都能从中获得启发。 初识ArgoCD:GitOps的革命性力量 记得几年前,我还在Kubernetes ...
一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
大家好,在最近的一个业余项目——天体运行模拟器中,我遇到了一个有趣的需求:我需要记录每个天体最近一段时间的历史位置,从而在屏幕上为它们画出一条长长而漂亮的轨迹线。 你可能会说,用一个 List<T> 不就行了?但问题在于,如果模拟持续运行,这个 List<T> 会无限增长,最终会消耗大量内存,甚至可 ...
ArrayDeque双端队列--底层原理可视化
主要学习双端队列 ArrayDeque ,通过对其栈功能的使用,掌握循环数组底层原理 觉得文章枯燥的可以结合ArrayDeque 底层原理可视化视频:https://www.bilibili.com/video/BV1zChGz8EVL/ 有环形的数组?同时具备栈功能和队列功能? 1. Java 中 ...
架构师必备:实时对账与离线对账
背景 在跨系统之间的数据写入场景下,上下游系统极有可能因为网络超时/抖动、或写本地DB与调外部接口不能同时成功等原因,而出现数据不一致的问题,因此需要有及时发现不一致问题、并自动修复的能力。下面结合笔者的经验,把对账做个总结。 需要注意的是,这里提的对账不特指资金对账,而是跨系统的字段对账,如B端与 ...
Browser-Use在UI自动化测试中的应用
Browser-Use是一个开源可以操控浏览器的Python库,使用者能够通过LLM与浏览器自动化操作结合起来。这个库支持自然语言描述自动化测试任务或者定义AI AGENT(智能体)任务,通过使用它可以操作浏览器来执行特定操作,如访问网页、单击按钮、提取网页信息等。 ...
一步一步学习使用LiveBindings(7) 实现对JSON数据的绑定
设想一下有一台远端服务器提供JSON数据,Delphi客户端可以接收这些JSON数据,然后转换成数据绑定对象,在应用程序中处理完数据后,将更新的数据序列化为JSON传回远端服务器,很多移动应用使用了这种模式处理服务器端的数据。 ...
如何正确实现一个 BackgroundService
相信大家都知道如何在 .NET 中执行后台(定时)任务。首先我们会选择实现 IHostedService 接口或者继承BackgroundService 来实现后台任务。然后注册到容器内,然后注册到容器内,之后这些后台任务 service 就会自动被 触发(trigger)。本文不是初级的入门教程, ...
pnpm 10.14 支持JavaScript运行时的安装了
大家好,我是豆爸(吴玺喆)。我看pnpm 10.14支持直接JavaScript运行时的安装了,这样可以用它声明的版本进行运行时的下载安装。 先看看之前用corepack的“间接”方式: 一、用corepack管理pnpm来支持运行时安装功能 在Node.js 25之前在里面集成了一个实验性的小工具 ...
演练:使用VB开发多智能体协作的荣格八维分析器
在大语言模型高速发展的时代,我们面对困难的语义分析任务,通过构建智能体进行处理是一个流行趋势。本文将介绍如何使用 Visual Basic .NET 开发一个多智能体协作系统,用于分析聊天记录中特定人物的荣格八维人格类型。 本文使用 CC-BY-NC-SA 4.0 协议。转载或者 AI 模型/智能体 ...
atomic不是免费午餐
很多初级甚至中级开发会滥用atomic,因为在他们的世界观里atomic比mutex轻量,性能总是优于锁的。 这话不能算错,但有个很重要的前提,那就是原子操作竞争不激烈的时候。 “竞争激烈”是指什么呢,指的是有很多线程在同一个资源上大量执行原子操作的情况。 落在这种情况下原子操作反而会成为性能拖油瓶 ...
go学习笔记:panic是什么含义
panic 是 Go 语言中的一种运行时错误处理机制,用于处理程序中的异常情况。 基本含义 panic 会: 立即停止当前函数的执行 开始执行 defer 函数(如果有的话) 向上传播到调用栈,逐层执行 defer 如果到达 main 函数,程序会崩溃并退出 语法 panic(interface{} ...
记一次酣畅淋漓的js逆向
本文记录了对一个混淆后的js脚本的逆向过程,并介绍了过程中遇到的两种js混淆策略与应对方式;与此同时,本文还记录了对于禁止F12调试的站点的破解方法;最后,本文对js逆向与这过程中的AI工具使用情况进行了一些感受分享与讨论。 ...