自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 基于Blazor实现的光伏设备调试软件

动态切换子页面组件。底部导航栏包含首页、操作、设置、分控、我的五个 Tab,全部在同一产品页面内通过组件切换,无需页面级路由跳转。维护,进入任意产品页时设置当前产品,顶部 Header 显示产品名称,点击可返回产品选择页。设备侧使用 BLE(Bluetooth Low Energy),Service UUID 为。每种产品(NCU / 单轴 TCU / 双轴 TCU)视为独立的单页应用,通过。软件内置 CRC16-Modbus 校验算法,自动为每条指令追加校验字节。开头的设备即可完成配对。

2026-07-06 15:10:22 180

原创 MVC架构中的Controller

MVC架构中,Controller作为中介者协调Model和View的交互,避免Model和View直接耦合。:用户列表页面,View显示用户列表,Model提供用户数据。用户点击删除按钮时,View通知Controller,Controller调用Model删除用户,Model返回结果后Controller更新View。UserModelUserView:Model只负责数据操作,不关心View如何显示;View只负责显示和接收用户操作,不关心Model如何处理数据;

2026-07-06 15:09:30 223

原创 一旦只给计算机阅读,这样一来我们这些外人就无法从程序本身中看到程序员的水平了。我们只能根据他们开发的项目、承担的职能等外在的表现来判断他们的水平了。而这些往往不如程序来得直接。我认为存在这个现象有以下

这个编程环境并不鼓励程序公开,不鼓励程序的优化,不鼓励程序的共享,反而使哪些编程水平差的得到了伪装,那些编程水平高的得到淡化。我建议程序员要养成“程序不是给自己看的,是给别人看的”习惯,尤其是新手,从开始就要养成这个习惯,要放下面子,请别人看看自己的程序,请别人提提意见,这样自己的水平才能提高,同时,自己也要学着看别人的程序,学会向别人提出意见和建议,学会从别人的程序中学到好的编程风格和编程技巧。就我而言,我编过无数个程序,但我从来没有保留过自己的程序,我的程序都是给我的同行看的、保留的。

2026-07-05 15:30:36 172

原创 利用Asp.net MVC处理文件的上传下载

在你冲我狂吼”关注点分离”之前,我想声明下面的代码仅仅用于作为说明功能.我将ADO.Net的代码放入Controller action中,但我们都知道,这并不好。在Controller的代码中已经检查了是否所有的文件上传框中都有文件,所以即使对于多文件上传,我们也不再需要修改Controller的代码,注意每一个<input type=”file”>都有不同的name属性,如果你需要调用其中一个,比如说,你需要引用第三个输入框只需要使用:Request.Files["FileUpload3"].

2026-07-05 15:29:40 202

原创 Linux及Arm-Linux程序开发笔记(零基础入门篇)

在第一次从ISO文件中安装完毕虚拟机后,在安装目录下面会生成一系列的文件,将这些文件进行备份后,在其它机器上安装虚拟机的时候就花几个小时去从ISO中安装了,将这个目录下的文件复制到相应的目录下面(在第一次从ISO中安装的时候设定的目录相同),然后只需要从VMware中打开此目录下的文件就行了。此系统的硬件载体是一块小型的嵌入式arm板,我们在Linux宿主机上开发好程序并编译生成arm-linux可执行程序后,将可执行程序文件传送到嵌入式arm板中,然后就可以在arm板上直接运行此程序了。

2026-07-04 15:38:36 201

原创 .net集合类的研究--哈希表(二)--HashSet<T>

综上可知,HashSet<T>是一个Set集合,查询上有较大优势,但无法通过下标方式来访问单个元素,这点会让用惯了List<T>的人(我就是),用起来很不顺手。HashSet<T>有别于其他哈希表,具有很多集合操作的方法,但优势并不明显,因为.net 3.5之后扩展方法赋予了泛型集合进行集合操作的能力,但扩展方法的集合操作往往返回新的集合,在使用习惯上,我个人更偏爱HashSet<T>的操作方式。

2026-07-04 15:36:47 204

原创 TCP片段丢失

凤凰浴火重生。而TCP协议利用重新发送(retransmission)来实现TCP传输的可靠性。重新发送的基本形式是超时重新发送,根据统计的往返时间来设置超时标准;如果超时,则重新发送TCP片段。另一方面,快速重新发送则通过乱序片段的ACK来更早的推断出片段的丢失。

2026-07-03 19:35:47 146

原创 浅谈SQL Server中的三种物理连接操作

由图4中可以看出,由于多选择了一个UnitPrice列,导致了连接的索引无法覆盖所求查询,必须通过书签查找来进行,这也是为什么我们要养成只Select需要的列的好习惯,为了解决上面的问题,我们既可以用覆盖索引,也可以减少所需的列来避免书签查找。另外,上面情况即使涉及到表扫描,依然是比较理想的情况,更糟糕的情况是使用多个不等式作为连接时,查询分析器即使知道每一个列的统计分布,但却不知道几个条件的联合分布,从而产生错误的执行计划,如图6所示。我们可以通过强制表扫描和查询分析器的默认计划进行比对,如图7所示。

2026-07-03 19:34:05 184

原创 SHA-1是啥?

这次大新闻还给出了攻击的代价。这次被发现碰撞的是SHA-1散列算法,是目前依然使用非常广泛的一种算法,它的输出是160个bits,图1中用了40个16进制数来表示。幸运的是,我们生活在一个科技快速更新的时代,Windows 10已经迭代了多个版本,大家觉得够好用的Windows 7 ,实际上都是8年前的“老古董”了,好在老家伙们都老当益壮,没有问题。真正的挑战还是客户端:对于写应用程序的工程师来说,困难在于老旧的客户端不支持某些新特性,而在安全领域是倒过来的,困难的是老旧的客户端支持了过时的特性。

2026-07-02 22:02:38 171

原创 WHY - 为什么需要功能需求设计说明书

功能需求设计文档最重要的是描述产品所要包含的所有功能,越详细越好,可以结合产品的原型设计图来讲解。让项目所有相关人知道产品是什么,包含哪些页面,页面如何跳转等。该文档是产品经理、项目经理、研发人员、销售人员、运营推广人员沟通的一个桥梁,一份好的功能需求设计文档是软件产品是否能成功的关键。考虑是该文档的受众,这份文档不应该包含具体的编程技术上的说明。不管你是用C#/.NET、JAVA还是其它,这应该是另外研发团队内部使用的一份文档。

2026-07-02 22:01:51 177

原创 [认证 & 授权] 4. OIDC(OpenId Connect)身份认证(核心部分)

简单来说:OIDC是OpenID Connect的简称,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。我们都知道OAuth2是一个授权协议,它无法提供完善的身份认证功能(关于这一点请参考。

2026-07-01 17:14:01 293

原创 性能优化知多少

由于代码过多,就不再放出。不管问题能否重现,下一步,我们就要大致对问题进行分类,是代码层次的业务逻辑问题还是数据库层次的操作耗时问题,又或是系统架构的吞吐量问题。当面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。说到性能问题,你可能首先就想到的是麻烦或者头大,因为一般性能问题都比较紧急,轻则影响客户体验,重则宕机导致财务损失,而且性能问题比较隐蔽,不易发现。

2026-07-01 17:13:19 167

原创 LeetCode 1:两数之和(Two Sum)

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。

2026-06-30 16:36:03 207

原创 节点设计 (TreeNode):

◦ 只有当日志的 Token 序列能够完美对应树上的一条路径(静态词对应静态节点,动态参数对应通配符节点),且长度一致(走完路径到达存有 Cluster 的节点)时,才返回结果。,你可以遍历所有 Cluster 或基于 Token 长度进行二次筛选(Candidate Selection),如果发现相似度够高,再交给 LLM 决定是否 Merge(合并)。论文提到的“宽松匹配”(Loose Match)是指当严格匹配失败时,系统会尝试寻找“部分匹配”的簇(例如长度相同但某些静态词不匹配)。

2026-06-30 16:35:12 172

原创 LightningChart Python v 2.2 现已发布!推出具有更丰富的用户界面控件的新产品功能,用于构建更具响应性的仪表板。

的交互式工具包,新增了更丰富的 UI 控件、更深入的光标自定义功能和更智能的数据查询方式。现在,您可以使用可切换的复选框和瞬时按钮框操作构建响应更迅速的仪表板,实现光标的端到端自定义,并使用新的 getter 方法读取组件状态。PointableTextBox 扩展了标准 TextBox 的功能,增加了箭头/指针功能,非常适合突出显示特定数据点、创建工具提示或添加与图表元素视觉上相关的解释性注释。此外,还为光标的所有组成部分添加了完整的样式 API:包括光标标记、十字线网格线、坐标轴刻度标记和结果表格。

2026-06-29 16:31:16 181

原创 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩

/ 触发自动压缩的 token 阈值。// 保留的最近工具结果数量。// 从先前的 assistant 消息中映射 tool_use_id 到 tool_name。// Layer 3: 如果调用了 compact 工具,执行手动压缩。// 清除旧的结果(保留最近的 KEEP_RECENT 个)// ... 执行工具。// --- Agent 主循环(集成了三层压缩)---

2026-06-29 16:30:23 192

原创 同样是库文件,嵌入式静态库和动态库差异到底在哪?

在嵌入式开发中我们会将相关代码。库本质是把在代码封装成库时,往往选择将其封装为或者:编译时会将库的所有代码到每个可执行文件中。:只在可执行文件中记录,实际代码只存一份在系统中。Task1: [代码+Lib] ≈ 50KB IRAM + 10KB DRAMTask2: [代码+Lib] ≈ 50KB IRAM + 10KB DRAMTask3: [代码+Lib] ≈ 50KB IRAM + 10KB DRAMTask1: [代码] + [共享Lib] ≈ 20KB IRAM + 10KB DRAM。

2026-06-28 16:41:56 222

原创 更换 Kingbase V9 License 踩坑记

仍然是原来的 开发版365天 授权。所以在此记录更换license步骤。

2026-06-28 16:41:19 187

原创 Agent管道详解-05]对话历史的持久化和输入输出的增强

确性取决于作为输入提供给LLM的消息列表和配置选项,如果能否提供一种灵活的机制动态地定制输入给LLM的消息列表和配置选项,无疑是非常有价值的。另一方面,LLM返回的结果往往也需要经过一些定制化的处理才能满足我们的需求,如果上述的这种机制还能对LLM返回的结果进行定制化处理,那就更加完美了。其实这个机制就实现在自身的类型定义上,它位于管道中间部分。如上图所示,这部分主要涉及和两个核心组件。前者用于提供和存储基于Session的对话历史,后者可以视为定义了两个分别在调用前后执行的方法(和),前者用来定制传入。

2026-06-27 20:15:15 241

原创 Dify — Chatflow - 数据库智能查询

完整工作流如图:因为没有直接执行SQL的节点,所以中间会多增加好多节点去处理数据。

2026-06-27 20:14:22 234

原创 你真的理解 volatile 关键字了吗?

volatile 只约束重排序与可见性,不算 I/O、不算异常、不算锁,除非它被实际执行,否则不是 happens-before 的强制保留点。线程 B 没有读 B,没有同步点,就没有可见性保证。这个返回值没有赋给变量、没有用于条件判断、没有参与计算,对可观察行为没有影响,JVM 会把它当死代码处理。如果一个 volatile 读的结果对程序行为没有任何影响,JVM 可以消除这个读。,就不会触发 volatile 读,A / B 仍然是普通读。volatile 是变量级别的,不是对象级别的。

2026-06-25 19:42:35 169

原创 问题现场:线上内存飙高,OOM 报警

老项目的依赖版本一定要关注:Druid 1.1.22 这个版本的 SQL 缓存泄漏问题非常普遍,很多线上 OOM 都源于此,升级或关闭统计是最直接的解决方式。

2026-06-25 19:41:35 191

原创 第一步:搭建认知框架(本体论的第一步)

这个框架就像一张空白地图。AI知道地图上有哪些地标(实体),它们之间有什么路(关系),但还不知道具体的交通规则。这种“先描述系统是什么”的做法,正是受本体论启发。

2026-06-24 17:40:26 267

原创 keycloak~实现OAuth 2.0 Token Exchange

在Keycloak 14.0.0版本中,即使启用了预览功能,。这是因为旧版令牌交换(V1)需要额外的细粒度权限配置。

2026-06-24 17:39:44 159

原创 开发实战:asp.net core + ef core 实现动态可扩展的分页方案

在开始之前,先问你一个问题:你做的系统,是不是每次增加一个查询条件或者排序字段,都要去请求参数对象里加一个属性,然后再跑去改 EF Core 的查询逻辑?如果是,那这篇文章应该对你有用。我会带你做一个统一的、扩展起来不那么麻烦的分页查询方案。整体思路是四件事:​​。

2026-06-23 17:14:06 186

原创 AI时代如何临摹项目:Vault跨项目持久化存储系统

在AI时代,开发者学习新技术和架构的方式正在发生深刻变化。"临摹项目"——即深入研究和学习优秀开源项目的代码、架构和设计模式——已经成为一种高效的学习方法。相比传统的读书、看视频,直接阅读和运行高质量的开源项目能让你更快地理解真实世界的工程实践。只是这种学习方式也面临着不少挑战。学习资料太分散了。你的笔记可能在Obsidian里,代码仓库散落在各个文件夹,AI助手的对话历史又是一个独立的数据孤岛。当你想让AI帮你分析某个项目时,得手动复制代码片段、整理上下文,这个过程相当繁琐。

2026-06-23 17:13:16 212

原创 写页面时别再把 Element Plus 整个搬进来啦!Vue3按需加载的坑我帮你踩平了

前提是你项目里已经装了 ESLint 和 Prettier 依赖(比如 eslint、prettier、eslint-plugin-vue、@vue/eslint-config-prettier 这些),VS Code 也装了对应的插件。如果项目需要深度定制,还可以配合 unplugin-element-plus 的 importStyle: 'sass' 选项,从 SCSS 源码级修改,不过这就进阶了,咱们改天细聊。这招简单粗暴,但等于把 100 多个组件全注册了,哪怕你只用了一个按钮。

2026-06-22 20:41:38 193

原创 Claude Code 实战 400 万 Tokens:接入 DeepSeek V4,从$26降到$2

差距主要出现在需要深度理解业务背景做权衡决策的场景,Claude Sonnet 4.6 在这里会更主动地给出有见解的建议,V4-Pro 有时更"执行型"。V4-Flash 原价 $0.14/$0.28 是全市场最低区间,Claude Code 里大量的轻量操作(读文件、简单问答、格式化)用 Flash 完全够,把成本压到原来的 1/10。不是"碾压",是"非常够用"。如果你的代码涉及公司敏感信息或有合规要求,这是需要认真评估的问题,不是买便宜就完事的。MoE 架构的效率优势是结构性的,不是一次性的价格战。

2026-06-22 20:39:32 429

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除