- 博客(28)
- 收藏
- 关注
原创 深度解析Claude Code 51万行源码背后的设计实现
在源码里,每个工具都遵循同一套接口:名字、描述、额外 prompt、输入 schema、调用逻辑、权限检查、输入校验、并发安全判断,以及四层 UI 渲染方法——工具开始、工具进度、工具结果、工具报错。代码目录也非常重:主入口、查询引擎、工具注册表、100 多个 slash commands、146 个 UI 组件、自研 terminal framework、85+ hooks、330+ utils、多智能体协调、远程管理、任务系统、迁移系统,几乎把一个现代复杂应用该有的层全铺齐了。
2026-04-08 13:44:43
400
原创 手撕 Transformer (5):模型构建
基于上述编码器-解码器结构构建用于训练的、完整的 Transformer 模型。验证一下完整模型的代码实现。实例化验证一下代码实现。
2026-04-08 13:44:00
19
原创 龙芯2k0300 - 走马观碑组编码器驱动移植
当特定事件发生时,硬件会立刻将计数器的当前值“快照”并存入对应的缓冲寄存器中,供软件读取。寄存器:这是两个内部硬件计数器,它们以系统时钟为基准进行自增,用来测量时间间隔;① 初始化与启动:设置好控制寄存器后,计数器在系统时钟驱动下开始工作;编码器的线数,是说编码器转一圈输出多少个脉冲,如果一个编码器是。输出引脚外,还有单独的方向输出引脚,这样我们就不用通过。模块时钟,该时钟为芯片的主要时钟,分为三组频率时钟;模块,使用时要注意将对应的引脚设置为相应的功能。的倍频系数进行调整,需要注意对其他时钟的影响。
2026-04-07 13:33:40
439
原创 Fedora 43物理机部署复盘
这个问题最佳的解决方案应该是使用Distrobuilder重新封装Windows的iso镜像文件,这种方法会自动将VirtIO驱动注入到Windows的安装程序(WinPE)和系统镜像中,进入安装界面后能直接看到incus分配的虚拟硬盘,无需再手动加载驱动。这种方式生成的镜像会预置好。默认情况下Waydroid只支持本机架构的apk安装,但市面上有很多软件不提供x86架构的安装包,这需要我们为Waydroid安装一个转译层,安装完成后即可无痛安装arm64架构的apk了,这里直接使用社区开发的。
2026-04-07 13:32:49
390
原创 EF Core 拦截器实战:SaveChangesInterceptor、CommandInterceptor 与审计落地
如果你是第一次从系统设计角度做审计,最稳妥的方法是先做职责拆分,再做实现落地。这里按“三步法”来理解:先统一实体变更审计,再统一 SQL 观测入口,最后明确拦截器边界。这篇文章要解决的核心问题不是“把审计代码写到哪一层”,而是“如何在系统层提供默认生效、可验证、可扩展的审计能力”,并且让这套能力能跟着系统规模一起演进。如果你刚开始做系统设计,通常会先把功能跑通,再逐步补监控、日志和审计。如果每个上下文都手写一份注册代码,后续很容易出现“有的上下文挂了审计拦截器,有的没挂”。如果是多租户系统,建议在。
2026-04-06 13:33:13
291
原创 python 文件管理库 Path 解析(详细&基础)
当我们对路径进行操作时,需要判断当前路径所处的位置、是否为文件、是否为文件夹等。在上文初始化时,我们提及了其中一种路径拼接的方式(调用初始化函数)是否是文件:返回 bool: (True or False)文件地址的提取(提取名称、后缀、全程......)对象路径很简单,和其他类对象一样,只需要。库时,对父文件夹的控制相对较为繁琐,而。
2026-04-05 14:25:38
369
原创 解放你的文件夹:智能文件整理Agent,让杂乱文件一键归位
这款工具的初衷是解决我自己的文件夹杂乱问题——作为程序员,每天要处理大量代码、文档、截图,手动整理太浪费时间,而AI能精准捕捉我的分类习惯,比手动整理更高效。如果你也饱受文件夹杂乱的困扰,不妨试试这款工具,把整理文件的时间省下来做更重要的事。后续我会开放源码(或打包成可执行文件),感兴趣的朋友可以持续关注~(附:工具界面截图👇)
2026-04-05 14:24:48
406
原创 如何将 JSON 数据转换为 Excel 工作表
通过结合 Python 内置的json模块和 Free Spire.XLS for Python 库,我们可以高效地将 JSON 数据转换为结构化的 Excel 文件。基础流程:解析 JSON → 创建 Excel 工作簿 → 写入表头/数据 → 保存文件,关键是适配 Excel 的 1 起始索引;进阶优化:通过递归扁平化处理嵌套 JSON,通过样式设置提升 Excel 可读性;最佳实践:转换前校验 JSON 数据有效性,转换后调用Dispose()释放工作簿资源。
2026-04-04 14:42:55
362
原创 三层抽象结构:一种可复用的抽象层设计词汇
三层抽象结构”提供了一种讨论边界的共同语言:当我们设计抽象层时,可以先明确哪些能力属于。正因为这个问题在许多系统中都会出现,所以类似的结构在不同框架中不断重复出现。从这个角度看,所谓“三层抽象结构”并不是人为设计出来的模式,而更像是一种。因此成熟框架往往不会试图完全隐藏底层系统,而是允许在必要时突破抽象。它的本质是:在压缩系统复杂度的同时,仍然保留访问原始信息的能力。核心抽象的目标并不是完整表达底层系统能力,而是提供一个。抽象层设计的难点不在于接口形式,而在于抽象边界的确定。
2026-04-04 14:42:07
329
原创 [拆解LangChain执行引擎]持久化状态的提取
从如下的输出可以看出,作为子图的Pregel将当前任务的名称和ID的组合作为Checkpoint命名空间,这样的结构确保了 “主图” 恢复的时候能够精准地加载 “子图” 的状态。第二个Checkpoint是为序号为0的Superstep创建的,此时节点foo成功执行,执行结果最终被输入目标Channel,创建的Checkpoint反映的就是的状态,config部分提供了此Checkpoint的ID。Channel的Send对象构建而成,第二部分的数组代表对应的Send对象在Channel中的索引。
2026-04-03 15:07:25
375
原创 有关Ubuntu在关盖休眠后可行的拯救方法
系统从休眠(Hibernate)状态被唤醒后,正常使用一段时间(几分钟到十几分钟)突然Kernel Panic,随后只能强制关机重启。通过查看上次启动的错误日志,发现关键报错:错误解读 :AMD显卡在电源状态切换(休眠$\rightarrow$唤醒)时,PSR(Panel Self Refresh)功能恢复失败 : Realtek 8852网卡在休眠后Wifi芯片状态异常根本原因 PSR兼容性问题:AMD显卡的PSR节能功能在小新air的eDP面板上实现不完善,休眠后恢复时出现
2026-04-03 15:06:38
152
原创 Debian 13基于kubeadm和containerd部署单节点kubernetes
本指南适用于希望在受限网络环境中快速搭建 Kubernetes 实验环境的技术人员,涵盖了从系统初始化到 Cilium 网络插件配置的全流程。在开始 Kubernetes 组件安装之前,需要对系统进行必要的初始化配置,以满足 Kubernetes 的运行要求。IPVS(IP Virtual Server)是 Linux 内核的负载均衡实现,Kubernetes 在 IPVS 模式下运行 kube-proxy 时需要相关工具支持。2. 配置主机名为便于管理和识别,建议为每台主机设置有意义的主机名。
2026-04-02 15:42:32
343
原创 明明环境变量已经解密,为啥@ConfigurationProperties 注入还是加密值?
同时有一个 Java 类中通过注解注入这个配置属性到它的变量现在因为配置包含敏感信息,不能直接配置原始的值,需要配置加密之后的值,在微服务启动的时候解密。现在是配置引用了环境变量。然后在环境变量中配置了加密之后的值。在本案例中为了简化,这里加密就用的 Base64 编码作为示例演示。如下图所示:在项目中有框架提供了在微服务启动时对加密后的字符串解密的能力,实现的基本原理是提供了一个类扩展了。在它的方法中,判断环境变量配置的值是否是以ENC_开头,如果是则进行解密。解密之后放到一个里面,然后添加到所有的。
2026-04-02 15:41:56
401
原创 Apache 详解(在 Ubuntu 24 中安装和配置 Apache,超详细)
即使你已经设置了目标目录 /home/jean/personal/huagai 的权限,如果其父目录(如 /home/jean/personal 和 /home/jean)没有适当的权限,Apache 也无法访问最终的目标目录。这是因为:Apache 使用用户 www-data 对网站进行访问,这个用户既不是/home/jean目录的所有者(所有者是jean),也不属于 jean 的用户组,而是属于其他用户,这个用户不具备访问父目录的权限。
2026-04-01 15:42:54
389
原创 Java泛型---桥方法
上面的代码是典型的多态概念的体现,根据对象的实际类型而非声明类型来决定调用哪个方法的过程,所以此时,预期中肯定是调用实例的方法。如果没有桥方法,那它会调用本身的方法,也就是原始类型的setsecond(Objects second)方法。那么呢,这个子类重写了父类的setSecond,这是我们的意图,要去重写这个方法,那么注意看子类的方法。其一是,这样的桥方法是编译器自动生成,如果你手动编写这样的方法,会与编译器生成的产生冲突,从而报错。很明显,两个方法的参数不一样,并没有达到重写的目的,而是变成了重载。
2026-04-01 15:42:11
213
原创 Git使用经验总结9-Git提交关联到Issue
Git 钩子是 Git 提供的一套事件回调机制,允许你在 Git 操作的特定阶段(如提交前、推送后等)自动执行自定义脚本。GitHub、GitLab 等基于 Git 的代码托管平台所提供了一套 Issue 跟踪系统(Issue Tracking System),可以用来协作管理项目中的“事项”。但是如果只是想关联或提及某个 Issue,而不希望它被自动关闭,可以仅提及 Issue 编号。这样,提交会链接到 Issue #123,并在该 Issue 的时间线中显示此提交,但不会关闭它。
2026-03-31 16:08:10
31
原创 [EGOI 2025] Laser Strike / 激光突击 题解
对于一条连接叶子的边 (�,�),我们用 1��� 表示他的,如果其中的叶子是 min(�,�) 则特征值为 1,否则为 0。直接用长度为 �−1 的字符串表示每条边的特征值即可。
2026-03-31 16:07:26
352
原创 OneClip 开发经验分享:从零到一的 macOS 应用开发
print(f"当前Python版本 {sys.version_info.major}.{sys.version_info.minor} 符合要求。print(f"警告: 你的Python版本是 {sys.version_info.major}.{sys.version_info.minor}。print(f"\n模拟包信息定义 ({package_info['name']} v{package_info['version']}):")# setuptools.setup() 在实际中会在这里被调用。
2026-03-30 15:54:13
308
原创 ——从硬件准备到首次运行全攻略
项目内存 ./CLAUDE.md 或 ./.claude/CLAUDE.md 项目的团队共享说明 项目架构、编码标准、常见工作流 通过源代码控制的团队成员。项目规则 ./.claude/rules/*.md 模块化、特定主题的项目说明 特定于语言的指南、测试约定、API 标准 通过源代码控制的团队成员。项目内存(本地) ./CLAUDE.local.md 个人的项目特定偏好设置 您的沙箱 URL、首选测试数据 仅您(当前项目)
2026-03-30 15:48:36
320
原创 多时区的全天概念概述
rel_path = os.path.relpath(full_path, abs_root_path) # 相对路径,如 merchant/device/test_xxx.py。log\.info\(\'========== 开始执行测试用例:(.+?) ==========\'',app.include_router(testcase_route.router, prefix="/api_test", tags=["测试任务"])
2026-03-29 17:19:47
330
原创 ——从硬件准备到首次运行全攻略
项目内存 ./CLAUDE.md 或 ./.claude/CLAUDE.md 项目的团队共享说明 项目架构、编码标准、常见工作流 通过源代码控制的团队成员。项目规则 ./.claude/rules/*.md 模块化、特定主题的项目说明 特定于语言的指南、测试约定、API 标准 通过源代码控制的团队成员。项目内存(本地) ./CLAUDE.local.md 个人的项目特定偏好设置 您的沙箱 URL、首选测试数据 仅您(当前项目)
2026-03-29 17:17:52
318
原创 UEFI 中的杂项知识总结-Protocol Handle 机制的详细介绍
在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。
2026-03-28 19:29:21
185
原创 UEFI 中的杂项知识总结-Protocol Handle 机制的详细介绍
在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。
2026-03-28 19:23:52
152
原创 ROS2核心概念之通信接口
在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。
2026-03-27 13:45:31
300
原创 在windows平台搭建一个mini版本的k8s集群
项目内存 ./CLAUDE.md 或 ./.claude/CLAUDE.md 项目的团队共享说明 项目架构、编码标准、常见工作流 通过源代码控制的团队成员。项目规则 ./.claude/rules/*.md 模块化、特定主题的项目说明 特定于语言的指南、测试约定、API 标准 通过源代码控制的团队成员。项目内存(本地) ./CLAUDE.local.md 个人的项目特定偏好设置 您的沙箱 URL、首选测试数据 仅您(当前项目)
2026-03-27 13:44:49
377
原创 深入解析 Disruptor:从RingBuffer到缓存行填充的底层魔法
他射出一箭(尝试),观察箭矢偏离靶心的距离(评估),然后记录下“风向偏左,需向右调整”(找原因),最后在下一次射击时修正了姿势(改进)。然而,如果他每次记录新经验前,都不把旧的矛盾笔记划掉,密密麻麻的信息交织在一起,他最终不仅无法命中,还会彻底迷失。这一套严格闭环,确保了模型每一次的参数微调都是针对当前最新状态的精准纠偏,从而避免了无效的“刻舟求剑”。如果遗漏这一步,AI 会将历史犯过的所有错误与当下的错误强制叠加,导致大脑认知混乱,训练进度彻底停滞。根据找到的失分原因,微调模型内部的所有参数。
2026-03-26 23:34:37
207
原创 C++多线程性能优化实战:从互斥锁到无锁编程完全指南
我习惯在每个请求头里传入X-Request-ID,然后日志里带上这个ID,这样就能串起整个调用链。要是用强一致性,就得用2PC(两阶段提交),但性能差、复杂度高。这里有个坑:锁的过期时间要大于业务最大执行时间,否则业务没做完锁就自动释放了,别的请求又进来了。我的经验是设置30秒,并配合看门狗(Watch Dog)机制续期,但简单场景可以预估时间设长一点。想象你给餐厅打电话订位(服务A),服务员接起来后去查记录(服务B处理中),但这时电话突然断了——你可能会重打,但服务员那边可能已经帮你预留了位置。
2026-03-26 23:33:55
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅