关于我
我是 Eric,本名崔本勇,网名玄一。9 年前端与跨端开发,其中 8 年在做 React Native,10 年 JavaScript。
我的工作长期集中在一个问题上:怎么让一套代码可靠地跑在多个端上。为此做过跨平台框架的编译层、RN 的拆包与增量更新、小程序容器的渲染方案、以及配套的调试工具链。这个博客里的文章基本都来自这些工作中踩过的坑,不是教程搬运。
- 邮箱:cuibenyong@gmail.com
- GitHub:CuiBenyong
我主要在做什么
跨端框架设计。 主导过 Ray(React)跨平台方案的整体架构,用 Babel 插件 + AST 解析实现 Ray→RN 的代码转换,配套的跨端设备控制组件库在业务里应用率超过 95%。相关的开发文档由我编写维护,公开可查:Ray 小程序官方文档。
RN 工程化。 做过 RN 0.59.10 → 0.72.5 的大版本升级(中间层 + 代码转换脚本处理兼容问题),也做过 0.46 → 0.61。拆包架构、按需加载、增量更新、CI/CD 对接都是自己搭的。鸿蒙适配用的是 node + jscodeshift + AST + Docker 的实时转换方案,避免维护两套代码。
性能与稳定性。 用 bsdiff 做业务包增量更新,带宽占用降了 95% 以上;优化拆包方案把业务崩溃率降了 50%;脚本预加载把启动从 2s 压到 200–300ms。异常监控平台按 JS / Native / 渲染三类分别设计捕获策略,上报后自动匹配 sourcemap 再 webhook 给对应开发。
AI 辅助开发。 用 Agent + MCP + 知识库做过 RN 转小程序的工具,把重构任务的人工介入率从 100% 降到 30%。也做过跑在 CI 上的 AI 代码 Review 工作流。
技术栈
| 技术栈 | 经验年限 | 核心能力 |
|---|---|---|
| JavaScript / TypeScript | 10 年 | 语言基础、ES6+、Node.js |
| React Native | 8 年 | 架构设计、原生组件、热更新、双线程、全局挂载、增量更新 |
| React | 5 年 | Hooks、状态管理、组件设计、性能优化 |
| 小程序 | 4 年 | 自研框架、Ray 框架、Taro |
工具链:Webpack、Metro、Babel、ESBuild、ESLint、Prettier、GitHub Actions、Docker、Podman
状态管理:React-Redux、React Hooks、jotai
跨端:RN(iOS / Android / 鸿蒙)、小程序、Electron、js bridge、双树渲染、异层渲染
移动原生:Objective-C、Swift(2 年,可独立开发原生组件)、Java(2 年,AAR 封装)
其他:Node.js(3 年)、Vue、Electron、AI Agent、PHP(2 年)
工作经历
杭州涂鸦信息技术有限公司 · 跨端技术专家
2021.06 – 2025.09
Ray 跨平台框架研发
- 主导 Ray(React)跨平台开发方案的整体架构设计
- 用 Babel 插件、AST 解析技术实现 Ray→RN 代码转换
- 设计跨端设备控制公共组件库,业务应用率 95%+
- 编写维护开发文档、API 文档与最佳实践指南
开发工具链
- 自研小程序 IDE 设备调试工具(Electron),worker(node) + view(react) 分层,调试效率提升 50%+
- 多设备调试:基于 MQTT + AES 加解密与设备实时通信
- 多设备切换:同步 App 设备列表,支持快速切换
- 多协议连接:Zigbee、SigMesh、BLE
- 建设设备插件市场,上线十几款插件
- 小程序真机调试:基于 MQTT,支持广域网与局域网双模式
- 小程序容器:参与设计实现基于 WebView 的跨端方案,双树渲染提升渲染性能,异层渲染实现原生组件与小程序组件无缝集成
RN 框架优化与升级
- 主导 RN 0.59.10 → 0.72.5 大版本升级,中间层 + 代码转换脚本处理版本兼容
- 实现 RN 拆包架构,支持按需加载与增量更新,客户端预加载,CI/CD 对接与维护
- 鸿蒙适配:node + jscodeshift + AST + Docker 实时转换,支持双版本 RN 业务同时调试
- 全局弹窗挂载方案,动态拆包注入现有 RN 项目,兼容 0.51 / 0.59 / 0.72 三个版本
AI 工具
- Agent + MCP + 知识库实现 RN 转小程序工具,人工介入率 100% → 30%
- 与 RN 组件库匹配的 Ray 组件库,业务利用率 80%+
- AI 代码 Review 工作流,CI 构建时审查并发送报告
结果:提供了一套代码多运行环境的完整方案;多个业务首屏渲染性能提升 30%;小程序开发脱离真机调试依赖;旧业务鸿蒙化避免双代码维护。
杭州萤石网络有限公司 · RN 高级工程师
2018.03 – 2021.06
多产品线 RN 框架
- 覆盖萤石云视频、萤享云视频、海康互联、EZVIZ 等系列 App
- 将 RN 框架封装为动态库、AAR 包简化原生接入,构建时间降低 20%
- 热更新做到 5 分钟内发布上线,增量更新降低带宽占用
- 灰度支持手机号、账号、邮箱、地区等维度
- 封装原生组件为 RN 组件:IPC 视频流、视频通话、音视频通话、推流、地图、鹰眼定位
性能优化
- bsdiff 算法实现业务包增量更新,带宽占用降低 95%+
- 优化 RN 拆包方案,业务崩溃率降低 50%
- 脚本预加载方案,启动从 2s 提升到 200–300ms
- 多模式包加载策略:App 内置包(重点业务)、动态全量包(非核心业务)、动态增量包(Top 10 版本)、合并失败时降级全量、依赖自加载避免多版本冲突、module 动态清理与重载实现无感更新
- 异常监控平台:JS 全局捕获 / Native 原生捕获 / 渲染层捕获三类策略,自动匹配 sourcemap 后 webhook 通知
- 双线程处理:用 RN registerRunnable 把复杂任务拆到后台,避免阻塞主线程
- WebView 跨端交互:js bridge 双向通信,支持复杂数据结构,统一事件处理机制
团队:负责增值服务前端团队日常管理、技术指导与项目交付。
结果:RN 0.46 → 0.61 升级;构建时间降低 20%,用户下载时间缩短 30%;连续 3 年绩效前 10%,职级提升两次。
杭州有问科技有限公司 · iOS / RN 工程师
2017.02 – 2018.02
- Swift / Objective-C 开发有问 App iOS 端
- 集成网易云信 SDK 实现 IM,并封装为 RN 组件
- 主导整个 App 的 RN 化重构
- WebRTC 实现云上视频/音频发布会功能
青岛云商汇电子商务有限公司 · 全栈工程师
2015.12 – 2017.01
- 后端 PHP + MySQL,前端 jQuery,移动端 iOS(OC) + Android(Java)
- 项目:小皇图后台、汇了金融直播、全民猎 RN、微民爱心筹
教育背景
山东科技大学 软件工程 本科,2012.09 – 2016.06。英语 CET-6。
关于这个博客
站里的内容大致分五块:CSS 布局、JavaScript 核心机制、React 原理与实践、Vue 全家桶、AI 编程工具。
早期文章是工作笔记,写得比较简略;2024 年之后的篇目会标注最后更新时间和所依据的版本。如果你发现哪篇过时了或者写错了,欢迎邮件告诉我。




