Archives
All the articles I've archived.
-
AI Agent 前端工作流(四):未来展望与开源工具全景
系列完结篇。从 Copilot 到 Autonomous Agent,从闭源到开源,本文梳理 AI Agent 发展趋势,对比主流工具,探讨开发者角色转变。附完整学习路线。
-
AI Agent 前端工作流(三):成本优化与团队协作最佳实践
如何控制 AI Agent 的 Token 成本?如何处理模型幻觉?如何在团队中推广?本文分享实战优化策略和协作最佳实践,附真实成本数据。
-
多 Agent 协作的血泪教训:一次 config.patch 差点弄崩全系统
运行多 agent 系统一周后的真实踩坑记录:配置管理事故、TypeScript 导入错误、发布日期写错、成本优化实战,以及团队协作的最佳实践。
-
AI Agent 前端工作流(二):智能代码审查与自动化测试
用 AI Agent 实现智能代码审查和自动化测试用例生成。从 Git Hook 集成到 E2E 测试,本文分享完整实战方案和真实项目效果数据。
-
本地 AI 助手如何安全暴露到公网?SSH 反向隧道实战
通过 SSH 反向隧道 + Nginx 反向代理,将本地运行的 OpenClaw Gateway 安全暴露到公网,实现域名访问。数据完全本地化,多层安全防护,成本为零。
-
AI Agent 前端工作流(一):理解 Agent 与组件自动生成实战
AI Agent 不是简单的聊天机器人,而是能自主调用工具、管理上下文的智能助手。本文深入剖析 Agent 工作原理,并通过 React 组件自动生成实战,展示如何用 AI 重构前端开发流程。
-
OpenClaw 多 Agent 配置实战:踩坑指南与最佳实践
配置 OpenClaw 多 Agent 和 Telegram 多账号有不少坑。本文基于实战经验,总结所有常见问题和解决方案,让你少走弯路。
-
OpenClaw 入门实战:5分钟搭建你的自托管 AI 助手
OpenClaw 是个强大的自托管 AI 代理网关,让你用 Telegram 等 App 随时随地调用 Claude。本文带你从零开始,5分钟搭建第一个 AI bot。
-
AI Agent 开发者工具全景 2026
2026年初,GitHub Trending 上 AI Agent 项目集中爆发。本文梳理当前 Agent 开发者工具生态全景,从框架、Coding Agent 到基础设施协议,分析这波浪潮的走向。
-
博客部署流程优化:从服务器构建到本地构建的进化
记录博客部署流程从服务器端构建到本地构建+GitHub传输的优化历程,解决服务器资源不足的问题。
-
博客上线两款实用在线工具:二维码生成器 & CSV 转 JSON
介绍博客新上线的两款纯前端在线工具——二维码生成/解析和 CSV 转 JSON 转换器。
-
告别 JSON.parse(JSON.stringify()) — 原生深拷贝 structuredClone
JavaScript 终于有了原生深拷贝方法 structuredClone,来看看它解决了哪些痛点。
-
Hello World - 博客新生
博客从 React 迁移到 Astro,记录这次重生之旅。
-
Symbol.toPrimitive 与 JS 加法运算
深入理解 Symbol.toPrimitive、对象到原始值的转换,以及 [] + {} 的奥秘。
-
拓扑排序
用 Go 语言深度优先搜索实现拓扑排序。
-
HTTP 缓存机制详解
深入理解 HTTP 强缓存与协商缓存的工作原理。
-
Polyfill 学习:Object.is
Object.is 解决了 0 === -0 和 NaN !== NaN 的问题。
-
函数作用域和块作用域
最小暴露原则、IIFE、块作用域(let/const/try-catch)详解。
-
Go 学习笔记
Go 语言基础:变量定义、array、slice、map 等核心概念。
-
AWS 服务器搭建笔记
AWS EC2 实例创建、SSH 配置与基础环境搭建。
-
前端概念汇总
常见前端概念速查:HTTP/HTTPS、JS 技巧、浏览器机制、CSS 技巧等。
-
JS 模块规范:CommonJS、AMD、CMD、ES Module
浅析 CommonJS、AMD、CMD、ES6 Module 的区别。
-
Webpack 4 升级指南
Webpack 3 升级到 Webpack 4 的关键改动整理。
-
ES6 Iterator 遍历器详解
Iterator 接口原理,for...of 循环,以及让普通对象可迭代的四种方式。
-
如何在 git commit 时添加 ESLint 校验
使用 pre-commit 和 lint-staged 在提交时自动运行 ESLint。
-
npm 高效但非常用命令整理
npm list、npm outdated、npm prune、npm-check 等实用命令。
-
Polyfill 学习:Number.isNaN
利用 NaN 不等于自身的特性实现 Number.isNaN。
-
PWA 入门与实践
Progressive Web App 核心技术介绍与实践踩坑记录。
-
React Router 4 升级指南
react-router 升级到 4.x 的具体步骤与踩坑记录。
-
ES7 Rest/Spread 运算符在对象中的应用
对象的 Rest 解构赋值和扩展运算符的妙用。
-
Harp.js 静态网站生成器
Harp.js 简介及使用注意事项。
-
我们在使用 Promises 时常犯的错误
四种 Promise then 写法的区别。
-
MySQL 更换 SQLite 记录
博客从 MySQL 迁移到 SQLite 的全过程,省了 48 元/月。
-
JS with 关键字的坑
with 创建新的词法作用域,可能导致变量泄漏到全局。
-
JS 具名函数与匿名函数的差异
具名函数表达式与函数声明在作用域中的不同行为。
-
背包问题 JS 实现
0/1 背包问题的 JavaScript 动态规划实现。
-
深入理解函数声明提升与变量声明提升
通过两个例子深入理解 JS 的声明提升机制。
-
Underscore pluck 方法
Underscore.js 的 pluck 方法快速提取对象数组中的某个属性。
-
Array forEach 在 IE 低版本的兼容
forEach polyfill 实现与 jQuery each 方法对比。
-
function arguments 参数同步机制
arguments 与输入参数的同步关系。
-
罗马数字解析
JS 实现罗马数字与阿拉伯数字互转。
-
实现链式函数 add
利用 valueOf 实现 add(1)(2)(3) == 6 的链式调用。
-
null 与 undefined 的区别
详解 null 和 undefined 的定义、转义、判定和用法差异。
-
ES6 Generator 与 co 模块
理解 ES6 Generator 的基本特性以及 tj 大神的 co 模块原理。
-
JS 判断浏览器是否支持严格模式
利用严格模式下 this 为 undefined 的特性来判断。
-
JS 类型转换:对象转原始值
深入理解 JS 中对象转换成原始值的过程。
-
String.concat 与 apply 的妙用
使用 apply 将数组中的字符串一次性拼接。
-
用按位非 ~ 简化 indexOf 判断
利用按位非操作符简化 indexOf 的判断写法。
-
Checkbox 模糊状态(indeterminate)
checkbox 的 indeterminate 属性实现半选状态。
-
正则表达式的复制与 lastIndex
复制正则表达式时需要注意 lastIndex 属性。
-
正则表达式:代码风格互转
驼峰、连字符、下划线三种代码风格的正则互转。
-
一个有趣的 for 循环用法
Object.keys polyfill 中的 for 循环妙用。
-
JS 性能优化:记忆(memoization)
函数记忆化技术,避免重复运算提升性能。
-
JS 函数返回值与 new 操作符
构造函数返回值对 new 操作符创建实例的影响。
-
正则表达式:元字符 \b 与注意事项
正则表达式元字符 \b 的使用注意事项。
-
JS Array 方法大全
详解 JS 数组的所有方法,哪些会改变原数组,哪些不会。
-
Node 中使用 Feedly 与 RSS
在 Node.js 博客中添加 RSS 订阅功能,接入 Feedly。
-
JS 字符串去重的三种方法
使用正则、hash、数组三种方式去除字符串中的重复单词。
-
JS 运算符 == 与 ===
深入理解 JS 中 == 和 === 的区别与类型转换规则。
-
JS 解析 XML 兼容 IE 与其他浏览器
IE 使用 ActiveXObject,其他浏览器使用 DOMParser 解析 XML 的兼容方案。
-
Node 中使用 Markdown 与 highlight.js
在 Node.js 中使用 marked 解析 Markdown,配合 highlight.js 实现代码高亮。
-
文本复制换行问题
文本复制到 txt 丢失换行格式的解决方法。
-
window.showModalDialog 与 window.open 跨域方案
Chrome 不支持 showModalDialog,使用 postMessage 解决跨域通信。
-
实现 once 函数
用闭包实现只能调用一次的函数。
-
Git Shell Error in Windows 修复
Git command could not be found 的修复方法。
-
Node forever 进程管理
使用 forever 管理 Node.js 进程,包括 koa 的和谐模式启动。
-
JS repeat 方法的演变历史
字符串重复方法的多种实现,从 join 到二分法递归。
-
JS 实现排列组合数组
使用 reduce 实现数组的排列组合(幂集)