Richard Chen 发布于 06月09, 2026

规约编程实践指南 — 让 AI 按规矩写代码

在日常开发中,直接让 AI 写代码常常会遇到一些问题,比如不了解项目规范、代码质量不可控,上下文容易丢失、需求理解偏差等,解决办法就是使用规约编程。规约编程的核心思路是:先规划,再编码。通过两层约束机制,让 AI 在明确的规则和计划下工作。

阅读全文 »

Richard Chen 发布于 06月09, 2026

配置 nginx 代理的 DNS 动态解析

目前我们有些前端应用是部署在 jdos 上,并且通过 jdos 中的 nginx 来代理访问后端接口,后端通常会提供一个域名,默认情况下 nginx 通常是在启动时对域名进行 DNS 解析并且将解析结果缓存,之后便不再更新。

阅读全文 »

Richard Chen 发布于 06月09, 2026

使用 npm workspaces + lerna 管理 monorepo

在之前尝试将项目中使用到的 lerna 升级到 v6 时发现,使用 lerna bootstrap 初始化项目时报错:bootstrap 等 npm 内置支持的几个命令已经不再可用。因为从 npm@7.x 开始引入了 workspaces 功能,它允许你在一个单一的仓库中组织和管理多个相关的 npm 包,从而简化了多包项目的开发和维护。

阅读全文 »

Richard Chen 发布于 02月25, 2025

支持 Cascader 异步数据源多选回显的方案

在开发需求中需要实现部门的级联多选功能,但目前部门树接口无法支持一次性拉取全量树结构,只能按层级异步加载,并且这个需求中有对已创建数据进行编辑的功能,这就涉及到在编辑的时候需要正常回显到 Cascader 组件中。

阅读全文 »

Richard Chen 发布于 08月13, 2024

脚手架内置esbuild踩坑记录

随着项目越来越大后,咱们脚手架使用 babel 进行代码编译感觉越来越慢。为了提升编译速度,尝试了一下使用 esbuild 后发现速度提升明显,于是决定将 esbuild 正式集成到脚手架中。

阅读全文 »

Richard Chen 发布于 04月21, 2022

如何打造一款简单易用的 React 状态管理工具

React 的状态管理已经是一个老生常谈的问题了。从 React 内置的 Context APIHooks API,到第三方库如 ReduxMobxRecoil,再到二次封装的库如 Rematch 和国内用户熟知的 dvajs 等等。可见社区对状态管理是如此的纠结,如果你也面对同样的纠结而无从下手,下面我将为你介绍如何基于 Redux 二次封装一个轻量级但是简单易用的状态管理工具。

阅读全文 »

Richard Chen 发布于 10月10, 2020

如何从零开始开发一个 node.js 命令行(cli)工具

如今基于 node.jscli 工具层出不穷,尤其以前端脚手架工具更迭最为频繁,纯构建工具有 gruntgulpwebpackparcelrullup 等,各前端框架也有各自的 cli 工具 create-react-appvue-cliangular-cli,各大厂的集成化解决方案 fisjdfumi 等。但是每个团队的应用场景不同,以上工具不一定完全满足需求,是时候自己动手开发一个定制化的 cli 工具了。

阅读全文 »

Richard Chen 发布于 02月03, 2019

浏览器API学习——BOM浏览器对象模型

window 对象是 BOM 的核心,可以控制窗口、框架和弹出窗口,也扮演着 ECMAScript 中 Global 对象的角色。

定义全局变量与在 window 对象上直接定义属性的差别:全局变量不能通过 delete 操作符删除,而定义在 window 对象上的属性是可以的。

阅读全文 »

01月22, 2019

HTML学习之—语义化标签

在程序中, 语义 指的是一段代码的含义 — 例如 “运行这行代码会产生怎样的影响?”, 或者 “这个 HTML 的元素有什么作用,扮演了什么样的角色” (不只是 “它看上去像是什么?”。)

阅读全文 »