- 博客(91)
- 收藏
- 关注
原创 Agent Skill 工程化实践:从 SKILL.md 到可复用的 AI 工作流
Skill 是可复用、可版本化的 Agent 能力模块,超越一次性 Prompt,实现标准化流程执行。其核心为“触发-规则-资源-工具-验证”闭环,适用于代码审查、发布、故障响应等场景。区别于 Prompt(一次任务)、Rule(约束)、Agent(整体智能体)与 MCP(能力接口),Skill 专注“如何做”。设计关键在于:描述需明确“做什么+何时用”,避免百科式内容;目录结构应分层清晰,突出流程与验证。最终目标是构建工程化、高可靠、跨平台复用的 AI 工作流能力。
2026-09-11 14:19:04
128
原创 亿级交易体量下对账系统的架构设计与核心实践
<think>我们只需要生成一个不超过150字的摘要,基于提供的内容。摘要应涵盖关键点:对账系统重要性、传统问题、方案(离线采集、分片归并比对、跨日容错、差错闭环)、效果。注意字数限制,精炼。</think>摘要:本文提出支撑亿级交易的对账架构:离线数仓隔离采集,统一实付口径;哈希分片排序归并流式比对,高效低内存;扩展窗口与缓冲队列容错跨日差异;长短款标准化闭环处理,保障资金安全,兼顾性能与准确性。
2026-09-02 11:22:39
279
原创 Next.js 全栈开发入门指南(2026 最新版)
Next.js全栈开发入门指南 本文面向Web开发初学者,系统介绍Next.js框架的核心优势与实践方法。Next.js作为Meta推荐的React全栈框架,整合了前后端开发流程,解决了传统开发模式中的首屏白屏、SEO差、开发效率低等痛点。 主要内容包括: Next.js的核心定位与优势对比 5分钟快速搭建项目的方法 四大渲染模式详解(SSG/SSR/ISR/CSR) 文件式路由系统与全栈开发实践 通过实战示例展示如何用一套React代码实现前端渲染与后端逻辑,无需单独维护API项目。文章提供可直接运行的代
2026-04-09 16:25:04
565
原创 从Cloud Code泄露源码中学到的14条提示词黄金法则(笔记)
本文提炼了14条AI提示词设计黄金法则,分为基础、沟通、操作、进阶和架构五个维度。基础法则强调用禁令代替指令、设置反驳角色和避免过度设计;沟通原则要求如实汇报、保留思考权和承认未知;操作规范包括先读后改、授权时效和解释禁令原因;进阶技巧涉及信息分层、精准表达和场景适配;架构思维则主张模块化设计和工具限制。这些准则源自实践总结,旨在提升AI交互效率与可靠性。
2026-04-09 10:57:14
119
原创 Go map 核心黑魔法:tophash 标记位的极致复用与性能跃升
Go map 的特殊标记位复用,是算法与工程结合的典范。它利用了哈希值分布的特性,硬生生在一个uint8里挤出了 5 种状态,既没有浪费内存,还通过“提前终止”等逻辑大幅提升了性能。这种设计思路非常值得在高性能底层组件开发中借鉴。源码:https://github.com/golang/go/blob/go1.19.12/src/runtime/map.go我的小栈:https://itart.cn/blogs/2026/note/map-tophash-magic.html。
2026-03-31 11:16:20
427
2
原创 Go sync.Map 源码深度解析:写时复制、无锁读与延迟删除的设计精髓
本文深入解析 Go 1.25.0 中 sync.Map 的高并发设计,重点剖析其无锁读、写时复制和延迟删除三大核心机制。sync.Map 通过双 map 读写分离(read/dirty)和 entry 状态机设计,实现了读多写少场景下的高性能:读操作优先无锁访问 read map,仅必要时加锁;写操作采用写时复制策略,平衡读写性能;延迟删除机制避免频繁 map 重建。这些设计共同解决了原生 map 并发读写 panic 问题,大幅降低了锁竞争开销,是高性能并发容器的典范实现。文章结合源码详细拆解了核心数据结
2026-03-28 15:30:50
371
原创 Go sync.WaitGroup 源码分析:一个用 64 位状态压缩并发协议的经典设计
Go 标准库中的是实现一组goroutine同步等待的核心组件,其底层基于原子操作和运行时信号量实现,无锁的设计让它拥有极高的性能,而state(原子64位状态)和sema(信号量)的配合更是整个组件的设计核心。本文基于Go1.26.1版本的源码,剥离无关的race检测、Bubble测试、noCopy及Go方法等逻辑,聚焦state和sema的实现细节,拆解其设计的巧妙之处,让开发者理解Go无锁同步的设计精髓。Go1.26.1版本的。
2026-03-26 15:10:45
387
原创 Go RWMutex 源码分析:一个计数器,如何把“读多写少”做得又快又稳
Go的sync.RWMutex通过精巧设计实现了高效的读写分离锁机制。其核心在于使用一个readerCount变量同时记录活跃读者数量和写者状态:通过减去大常量使值变负来标记写者等待,新读者会因此阻塞。写锁会先阻止新读者进入,等待现有读者退出。该设计采用双信号量分离读写唤醒路径,快慢路径分离优化性能,严格遵循"写者优先"原则避免饥饿问题。这种用一个变量承载双重状态、组件职责清晰分离的设计,展现了高效并发控制的经典范式。
2026-03-25 16:58:19
390
2
原创 MySQL EXPLAIN 中 type 字段详解
本文详细解析了MySQL EXPLAIN分析中的type字段,该字段反映查询数据的访问策略,效率从低到高依次为:ALL < index < range < ref < eq_ref < const/system。重点介绍了每种类型的含义、触发场景和性能特点,指出ALL和index需优先优化,range是基础目标,ref/eq_ref是理想状态。文章强调需结合rows、Extra字段综合判断性能,并提供优化建议和实战对比示例,帮助开发者快速定位SQL性能问题,为优化提供核心参考。
2026-03-17 16:45:18
621
原创 Java Survivor区学习笔记
摘要:Survivor区是JVM年轻代的关键组成部分,采用双区设计配合复制算法实现高效垃圾回收。其核心思想是通过Eden区和两个Survivor区(S0/S1)的协同工作,避免内存碎片并筛选长期存活对象。双区轮流作为源区和目标区,确保复制过程的干净性,同时准确统计对象年龄。当对象经历足够次数的Minor GC后晋升老年代。单Survivor区会导致复制逻辑混乱和内存碎片问题。实际运行时,存活对象在Eden和Survivor区间循环复制,年龄递增,最终符合条件的对象进入老年代。这种设计显著提升了JVM的垃圾回
2026-03-16 10:32:26
386
原创 架构破局 - Redis 不再做缓存!替代 MySQL 做主存储
本文给出一套可执行的、面向高并发核心链路的方案,将 Redis 从“缓存/加速”上升为“主存储/首选读写层”(Redis-First)。结论:在明确场景边界(高并发、数据模型适配、可接受的持久化策略)下,该方案可行且能显著提升吞吐与延迟,同时通过主从复制 + 持久化 + 热冷分层等措施,可将数据安全性和成本控制在可接受范围。下文给出关键论证、风险与缓解、以及较为落地的实现步骤供落地参考
2026-01-28 16:54:25
990
原创 AI 编程 - 提示词技巧
本文介绍了如何编写高效的AI提示词(prompt)以提升编程效率和质量。文章首先阐述了学习提示词的重要性,指出好的提示词能缩短开发周期、提高代码质量。接着详细讲解了提示词的结构要素,包括角色定义、任务描述、输入上下文等,并提供了通用模板和基础示例。在进阶技巧部分,文章分享了分步式提示、少样本示范、格式约束等实用方法。最后给出了编程场景下的高质量提示示例,并解答了常见问题,建议通过实战练习、构建个人Prompt库等方式持续优化提示词技能。
2026-01-20 16:45:38
909
原创 Anthropic Agent Skills深度解析:模块化技能如何重塑AI智能体落地能力
摘要: Anthropic推出的Agent Skills是一种模块化技能框架,通过结构化、可复用的技能包(包含元数据、指令和脚本)提升AI智能体(如Claude)的复杂任务执行能力。其核心特点包括渐进式披露(按需加载技能)、跨平台开放标准(agentskills.io)和可组合性(多技能协同)。相比传统工具调用,Skills优化了Token使用和复用性,支持团队协作与版本控制。实现时需规范SKILL.md元数据,拆分通用技能模块,并注意安全性与灰度发布。该框架为智能体生产级开发提供了标准化解决方案。
2026-01-18 11:20:35
1027
原创 2026 年 AI 革命性趋势与未来展望
AI领域2026年三大趋势:1)物理AI崛起,AI将从语言/图像工具升级为能理解并作用于现实世界的系统(黄仁勋);2)算力普及化,AI将向终端设备和边缘计算扩展(苏姿丰);3)空间智能突破,AI将具备三维世界理解与构建能力(李飞飞)。这些发展标志着AI正从实验室研究转向实用化、规模化阶段,涉及自动驾驶、机器人、工业仿真等多个领域。基础设施厂商与研究机构正通过生态合作推动这一变革,软硬融合将成为未来AI发展的关键特征。
2026-01-14 17:23:08
1070
原创 Spring WebFlux 入门指南(初学者快速上手)
Spring WebFlux 响应式编程实践 摘要:Spring WebFlux 是Spring 5.x引入的异步非阻塞Web框架,基于Reactive Streams规范和Project Reactor实现。核心特点包括响应式编程模型(Mono/Flux)、背压机制和非阻塞I/O。本文重点介绍了WebFlux在实际业务中的三大基础设施应用:1) 使用R2DBC实现响应式数据库访问;2) 通过Reactive RedisTemplate操作缓存;3) 集成Kafka实现消息队列的响应式生产消费。同时提供了注
2026-01-06 14:56:32
1022
原创 Go语言环形队列:原理剖析、编程技巧与核心优势
本文探讨了环形队列在高性能Go系统开发中的核心优势与实现方法。环形队列通过固定长度的数组和指针绕回机制实现空间复用,具有O(1)读写效率、固定内存占用和低GC压力等特点。文章详细解析了环形队列的核心原理、状态判断方法,并展示了Go语言实现的关键技巧,包括泛型支持、并发安全处理等。相比普通队列和channel,环形队列在高频读写场景下性能更优,可通过无锁设计进一步提升吞吐量,是日志收集、流式数据处理等高性能场景的理想选择。
2025-12-15 16:00:40
774
1
原创 揭秘NSQ核心设计:NSQD、Topic与Channel的关系及消息流转精髓
本文深入分析了NSQ分布式消息队列的核心设计,重点解析了NSQD、Topic和Channel三大实体之间的层级关系与交互逻辑。通过源码片段展示了NSQ采用“内存+后端”混合存储保障性能与可靠性,并利用读写锁实现并发安全。文章详细阐述了消息从Topic到Channel再到客户端的全链路流转过程,包括Topic的messagePump分发机制和Channel的消息推送逻辑。这些设计使NSQ兼具高并发处理能力、消息可靠性和扩展性,为构建高效分布式系统提供了重要参考。
2025-12-08 11:44:22
970
原创 Go 语言 interface 详解:从源码到实践
本文深入解析Go语言中interface的核心机制,从底层实现到最佳实践。主要内容包括:1)interface的两种底层数据结构(空接口eface和非空接口iface);2)接口定义、实现、组合及类型断言等基本用法;3)接口设计原则(小而专、依赖抽象)和使用技巧;4)常见陷阱如nil接口和接收者类型问题。文章强调接口在实现多态、组件解耦和测试中的价值,同时指出过度使用空接口和嵌套过深的弊端。通过源码分析和代码示例,全面展示了interface在Go语言中的工作原理和最佳实践。
2025-12-03 10:48:42
605
1
原创 NSQ 磁盘持久队列 DiskQueue 设计思想全解析
NSQ的DiskQueue通过巧妙设计实现高性能、强一致的磁盘队列:1)单协程ioLoop串行处理所有操作,天然线程安全无需加锁;2)采用"长度+数据"的紧凑二进制格式,实现高效顺序读写;3)文件滚动策略优化IO性能;4)元数据原子持久化确保崩溃恢复。这些设计使其成为高可靠、高性能的持久化队列典范,适用于消息队列、WAL等场景。代码精简而优雅,是工程实践的优秀范例。
2025-11-27 08:44:31
923
原创 深入 NSQ 延迟消息实现原理:设计巧思与性能优化
NSQ通过复用现有消息流转流程和优先级队列调度实现延迟消息功能。客户端使用DPUB命令发送延迟消息,服务端接收后标记消息延迟属性。Topic层统一存储延迟和普通消息,Channel层使用优先级队列+哈希表实现延迟调度,到期消息会被重新分发。这种设计简洁高效,无需单独架构即可实现延迟消息功能,展现了NSQ的轻量级优势。
2025-11-22 11:45:20
858
原创 NSQ 如何用自定义协议破解 TCP 黏包拆包难题?原理与设计剖析
本文探讨了TCP通信中的"黏包"问题及NSQ消息队列的自定义协议解决方案。黏包问题源于TCP流式传输的无边界特性,导致接收方难以区分消息边界。NSQ通过混合使用分隔符和长度前缀两种方式,为消息划定明确边界:文本命令部分采用换行符分隔,二进制消息体部分使用4字节长度前缀。这种设计兼具易读性和高效性,严格的消息长度校验机制和缓冲区复用进一步提升了协议健壮性和性能。NSQ的协议设计案例表明,解决TCP黏包问题的核心在于为消息建立明确的边界标识,这一思路可广泛应用于各类TCP通信场景。
2025-11-19 09:07:33
596
原创 一个「巧思」线程池:用单协程无锁控 Worker,动态扩缩容 + 优雅关闭全拿捏
一个高性能、功能丰富的 Go 语言协程池(Goroutine Pool)库,支持动态调整大小、结果订阅、优雅关闭等特性。
2025-11-17 08:46:38
847
原创 NSQ 消费者优雅关闭:源码拆解不丢消息的底层逻辑
NSQ 消费者优雅关闭的实现原理 NSQ 消费者优雅关闭通过客户端与服务端协作完成,主要分为三个阶段: 客户端发起关闭:调用 Consumer.Stop() 发送 CLS 命令,告知服务端准备关闭,并设置 30 秒超时保护。 服务端响应关闭:nsqd 收到 CLS 后,将客户端的 ReadyCount 设为 0,标记为关闭状态,停止发送新消息,并返回 CLOSE_WAIT 响应。 客户端完成清理:收到 CLOSE_WAIT 后关闭连接,停止消息处理器,等待所有协程退出,最终调用 exit() 完成关闭流程。
2025-11-15 13:35:55
1031
原创 数据库设计黄金规范:从命名到索引的系统化最佳实践
本文摘要提出了一套数据库设计规范,涵盖命名规则、结构设计和字段类型三大核心板块。在命名规范部分,强调采用小写字母+下划线命名法,并对表名、字段名、索引名等对象提出具体标准;结构设计部分建议平衡范式与反范式,给出大表拆分、字段扩展等优化策略;字段设计部分则针对时间类、状态类、关联类等常见字段制定了详细规范,包括数据类型选择、命名格式和默认值设置等。该规范旨在提升数据库的可读性、一致性和维护性,指导开发人员构建更健壮的数据库架构。
2025-11-12 17:06:50
824
原创 Go 优雅关闭实践指南:从原理到框架落地
本文探讨了分布式系统中优雅关闭的重要性与实现方案。首先分析了三类典型错误:直接终止进程导致请求丢失、忽略超时控制导致服务无法关闭、资源释放顺序错误导致任务失败。然后提出优雅关闭四步原则:停止接收新请求、清理存量任务、释放资源、平稳退出。最后针对HTTP和gRPC服务给出了正确实现方法:HTTP服务使用Shutdown配合超时控制,gRPC服务使用GracefulStop而非强制Stop。通过系统化的错误案例与正确实践对比,帮助开发者构建高可用的服务终止机制。
2025-11-11 14:07:51
887
3
原创 重塑 exec.Command:打造更可控的 Go 命令执行器
executor 是一个专为解决 Go 命令执行痛点的开源组件,主要特性包括: 实时流式捕获命令输出,避免内存溢出 精准超时控制和上下文取消 彻底清理子进程无残留 输出截断保护防止OOM 简洁易用的Option API 快速安装: go get github.com/itart-top/executor 基础示例: result := executor.Run(ctx, "echo", executor.WithArgs("Hello")) fmt.Println(result.Stdout) // 输出:
2025-11-10 13:50:53
769
原创 深入理解 Context:从概念到实践,避开那些坑
Context是用于跨组件传递全局信息的容器,核心价值在于解耦和避免参数污染。最佳实践包括:将Context作为函数首个参数、控制数据存储量、及时取消避免泄漏、传递有效Context、自定义键类型防止冲突。应用场景广泛,如Gin框架传递请求数据、etcd客户端控制超时等。合理使用Context能提升代码可维护性和资源管理效率。
2025-11-10 07:42:04
1281
原创 Go Channel 深度指南:规范、避坑与开源实践
本文系统梳理了Go语言Channel使用中的常见错误及最佳实践。常见错误包括:未初始化的nil Channel导致永久阻塞、无缓冲Channel的自阻塞、忘记关闭Channel引发Goroutine泄漏,以及过度依赖Channel造成的性能陷阱。最佳实践包括:明确无缓冲与有缓冲Channel的适用场景、合理设置缓冲大小、使用select处理超时与关闭、遵循"谁创建谁关闭"原则。文章还提供了主流开源项目中的典型案例,帮助开发者规避并发编程中的常见问题,正确高效地使用Channel。
2025-11-09 17:07:25
811
原创 Go+DDD 对象全家桶:DO/VO/DTO 等概念 + 实践
本文为Go开发者提供领域驱动设计(DDD)中各类对象的明确定义和实践指南。核心内容包括: 详细定义DO(领域对象)、VO(值对象)、DTO(数据传输对象)、PO(持久化对象)等概念,说明其核心特征和推荐存放位置 提出四大设计原则: 保持领域模型纯净性 明确转换责任边界 遵循依赖倒置 确保命名唯一性 提供标准项目目录结构 包含典型代码示例: 领域层实体(DO)和值对象(VO)的实现 基础设施层PO的定义 PO与DO间转换的映射函数 该指南旨在帮助开发者构建清晰的领域模型,正确处理各层对象转换,避免常见反模式。
2025-11-07 07:28:45
1050
原创 Git 使用规范文档(最佳实践版)
本文详细介绍了团队Git协作规范,涵盖分支管理、提交信息、协作流程等核心环节。采用"主分支+支持分支"的分层模型,明确各分支职责与命名规则。提交信息遵循Conventional Commits规范,保证历史可读性。完整描述了功能开发流程,从分支准备到代码审查与合并。规范强调保护分支、定期同步代码、小步提交等最佳实践,旨在建立高效协作共识,解决分支混乱、冲突频发等问题。通过统一标准提升代码质量,降低维护成本。
2025-11-06 11:31:38
1240
原创 在 Go 中用 DDD 风格组织代码:实践、目录与命名规范(可落地)
本文给出一个落地可执行的 Go + DDD 代码组织方案。包含:分层含义、推荐目录树、包命名与文件命名规范、典型代码片段(领域实体、仓储接口、应用服务、适配器/实现)、防坑注意项与代码风格建议。侧重 最小侵入、依赖倒置、包循环避免 与 Go 风格(gofmt、小写包名、单一职责、内建 internal 与 pkg 约束)。
2025-11-06 07:32:55
1284
原创 Go 语言依赖注入实战指南:从基础到高级实践
依赖注入解决无它时的紧耦合、性能差、难测试等问题,核心是分离依赖的创建与使用。Go 中可通过构造函数等方式实现,便于测试,大型项目可用 Wire,能解耦并提升代码可维护性。
2025-11-05 13:23:40
907
1
原创 Go Error 全方位解析:原理、实践、扩展与封装
Go 错误处理核心要点与工程实践 核心原理:Go 错误通过 error 接口实现,1.13+ 支持错误链(%w包装、errors.Is/As解析)。基础错误用 errors.New 或 fmt.Errorf,复杂场景可自定义错误类型。 最佳实践: 绝不忽略错误,需显式处理并记录上下文 区分错误类型(可重试/不可重试),通过接口标记可恢复错误 避免裸返回错误,用 %w 包装添加上下文(如参数、操作步骤) 错误日志标准化,包含时间戳、堆栈等关键信息 遵循这些原则可显著提升代码健壮性和可维护性。
2025-11-05 07:04:51
990
原创 nsqd Producer 高可用封装实践:从单点故障到自动故障转移
NSQ生产者池实现高可用消息发布 本文介绍了基于NSQ消息队列的高可用生产者池实现方案。该方案针对NSQ生产者在节点故障时的可用性问题,设计了一个自动故障切换的ProducerPool,具有以下核心特性: 自动故障切换:当活跃nsqd节点不可用时,自动尝试其他健康节点 并发安全设计:通过原子操作和无锁编程保证多goroutine并发安全 智能重连机制:采用指数退避+随机抖动策略控制重连节奏 优先级管理:支持为不同nsqd节点配置优先级 完善的可观测性:提供健康状态、失败率等监控指标 实现上通过Produce
2025-11-04 09:59:52
1005
原创 Go 新手干货:4 个核心实践,让你的代码符合社区规范
本文总结了Go语言开发的4个核心实践:1)命名规范遵循简洁明确原则,避免冗余前缀;2)必须显式处理错误,不能忽略或隐藏;3)并发控制需谨慎,避免竞态条件和goroutine泄漏;4)使用context实现优雅的任务取消。每个实践都配有代码示例,帮助开发者快速适应Go的编程风格和最佳实践。
2025-11-04 09:55:40
1058
原创 在线编码、格式转换
日常开发或运维会比较常遇到日志中的内容格式不直观,需要转码或格式化的情况,这时候常常是去网上搜索在线工具,不但耗时耗力,又担心不安全,于是我索性就自己搭建一个,方便自己的同时,还可以分享给需要的朋友。
2022-09-11 15:32:09
1291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅