posts

文章归档

PlumePHP 全站文章的归档入口,按时间倒序汇总各专题的技术文章,并提供按主题浏览的专题分类入口。

这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。

全部文章

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
graphdb

Text2Cypher 与 LLM 图查询 Agent:从自然语言到可执行 Cypher

系统讲解 Text2Cypher 与 LLM 图查询 Agent 的完整工程链路:问题定义(自然语言到图的语义鸿沟)、schema 提示(模式摘要、属性裁剪、token 预算)、few-shot 示例与检索式提示、查询校验(语法解析、语义检查、标签与关系白名单)、只读沙箱与安全执行(超时、强制 LIMIT、资源隔离)、错误自愈(错误分类、重试与修复提示)、图检索增强(GraphRAG 与 Text2Cypher 协同)、Agent 编排(工具调用与多步推理)、评测体系(执行准确率、查询相似度、端到端)、以及成本延迟与常见坑,帮助把自然语言查图做成可上线的生产能力。

16 分钟阅读
iOS 开发

Swift 可选类型与错误处理

本文系统讲解 Swift 中 Optional 与错误处理的完整体系。从 Optional 作为 enum 的本质讲起,覆盖 if let、guard let、简写绑定、nil 合并与可选链的取舍,分析强制解包的真实风险与替代方案;随后深入 try/throws/catch、rethrows、Result 类型、自定义 Error 与错误域设计、LocalizedError 用户提示,以及 Swift 6 引入的 typed throws。文中给出错误分类的落地规范与断言/precondition 的正确使用边界,帮助你把“可能失败”的路径写得更显式、更可测、对用户更友好。

10 分钟阅读
错误处理 并发 iOS
graphdb

ISO GQL 标准与 Cypher 演进:语法差异、升级路径与查询迁移

系统讲解 ISO GQL 标准与 Cypher 语言演进及迁移实践:为什么图查询需要统一标准(方言割裂的代价)、GQL 的语法结构总览(图模式、MATCH、LET、FILTER、聚合与路径)、GQL 与 Cypher 的核心差异(关键字、路径语法、子查询、事务语句)、Cypher 自身的版本演进(Neo4j 4 到 5 的破坏性变更、过程与索引语法)、升级路径与兼容性评估(依赖扫描、废弃 API 清单)、查询迁移方法论(自动重写 + 人工复核)、兼容层与双跑验证、驱动与工具链迁移、迁移测试与灰度发布、实践清单与常见坑,帮助把图查询代码平稳迁到新版本与新标准。

16 分钟阅读
typescript

《TypeScript高级编程》6.3 重构工具与 codemod

本节讲批量改写 TypeScript 代码的完整方法论。先对比三类手段:语言服务的安全重命名、Compiler API 与 ts-morph 的结构化改写、文本替换的取舍;再用 ts-morph 写出一个可批量运行、幂等的 codemod,并处理打印格式、dry-run、回滚与验证。读完本节,你能把一次跨上百个文件的重构做成可重复执行、可审阅、可回滚的工程流程。

8 分钟阅读
TypeScript TypeScript高级编程
typescript

《TypeScript高级编程》6.2 自定义 tsPlugin

本节先厘清「tsPlugin」在 TS 生态里的三种含义:语言服务插件、编辑器扩展与编译期 transformer 极易混淆。重点是语言服务插件——模块导出约定、用 Proxy 包装 LanguageService 覆盖方法、拿 Program 与 TypeChecker 做语义分析、注入自定义诊断,以及调试与性能红线。读完本节,你能写出真正生效、可调试、不拖垮 TS Server 的插件。

8 分钟阅读
TypeScript TypeScript高级编程
typescript

《TypeScript高级编程》6.1 TS Server 与 LSP

本节从编辑器里那次「跳转到定义」讲起,说明 IDE 的类型提示并非由 tsc 提供,而是由一个常驻的 TS Server 进程回答。你会弄清 TS Server 私有协议与 LSP 的分工、Project 的加载策略与生命周期,以及如何在 Node 中直接向它发请求做批量查询。读完本节,你能看懂编辑器日志里的协议报文,也为下一节编写 tsPlugin 打好基础。

9 分钟阅读
TypeScript TypeScript高级编程
typescript

《TypeScript编程实战》14.3 分页、无限滚动与预取

本节把查询层推进到列表场景:先区分页码分页与游标分页的适用场景,再讲清 useInfiniteQuery 的 InfiniteData 类型形状、pageParam 与 getNextPageParam 的类型对齐,以及用 select 扁平化 pages。接着给出基于 IntersectionObserver 的无限滚动封装与 prefetchQuery 预取时机,并说明预取与缓存失效的配合。

8 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》14.2 乐观更新与缓存失效

本节讲清写操作之后缓存该怎么改:先用 useMutation 的四个类型参数把变量、返回值、错误与上下文串起来,再实现「先改界面、失败回滚」的乐观更新三段式,最后区分 setQueryData 精确写入与 invalidateQueries 前缀失效各自的适用场景。你会掌握 onMutate 快照的类型写法、cancelQueries 防竞态,以及失效范围过宽的常见坑。

9 分钟阅读
TypeScript TypeScript编程实战
typescript

《TypeScript编程实战》14.1 TanStack Query 类型推导

本节先厘清服务端状态与客户端状态的分工,再拆解 TanStack Query 如何把类型从 queryKey 推导到 data。你会掌握 useQuery 的四个类型参数、key factory 的收敛写法、select 收窄、queryOptions 复用与自定义 Hook 泛型封装,以及 error 类型必须显式声明等高频坑,最终写出一层端到端有类型的查询代码。

8 分钟阅读
TypeScript TypeScript编程实战