Ekko Blog

路漫漫其修远兮 ,吾将上下而求索

Flowable 工作流引擎

从 BPMN 执行原理、事务与异步机制、引擎对比,到 Spring Boot 接入独立部署实战

这篇笔记不是停留在“Flowable 怎么跑一个请假流程 demo”这一层,而是把问题往下压到引擎本身:Flowable 到底在执行什么、流程定义是如何被解析和版本化的、一次流程推进为什么会和事务边界、异步任务、历史表、重试机制绑在一起,以及它和 Camunda、Activiti、jBPM 这些流程引擎到底差在哪。 文章后半部分会落到工程实战:不是把 Flowable 简单塞...

Webpack 模块化构建与部署

从依赖图、Loader 与 Plugin 机制,到代码分割、Chunk 运行时和 Module Federation,系统梳理 Webpack 的构建原理与模块交互链路

这篇笔记的目标是把 Webpack 放回它真正擅长的上下文里重新梳理一遍:它不是“把很多 JS 打成一个包”这么简单,而是一套围绕模块依赖图、构建流程、运行时加载和产物部署展开的前端工程化系统。文章重点会回答三个核心问题:Webpack 为什么能管理复杂模块关系、不同模块在构建期和运行期如何交互、以及模块化部署到底应该怎么落到工程实践里。 文中会把 entry -> m...

Puppeteer 渲染服务

从浏览器自动化、截图与 PDF 生成,到独立部署和 Spring Boot 对接,系统梳理服务端渲染的工程化方案

这篇笔记的目标是把 Puppeteer 放到真实业务里重新拆开来看:它到底适合解决什么问题,为什么很多团队最后会把它做成一个独立渲染服务,以及这个服务应该怎样暴露图片、HTML、PDF 等基础能力,供业务系统按 url 或 html 传参调用。 文章重点不放在“写一个能跑的截图 demo”,而放在可长期维护的工程设计上:浏览器实例如何复用、接口怎样抽象、服务怎样部署、风险如何...

html2canvas 前端截图导出

从 DOM 截图原理、跨域与清晰度问题,到 Vue 封装和 Spring Boot 上传落库,系统梳理前端导出图片的工程化方案

这篇笔记的目标是把 html2canvas 放到真实业务里重新拆开来看:它到底能截什么、为什么经常出现“样式不对 / 图片丢失 / 导出发虚 / 跨域失败”,以及在 Vue 项目里应该怎样封装成复用能力,而不是在页面按钮点击里堆一段临时脚本。 文章重点围绕一个完整链路展开:前端页面渲染业务卡片,html2canvas 负责把指定 DOM 节点转成画布和图片,前端再把图片上传到...

Swagger 接口文档

从 OpenAPI、Swagger UI 到 Spring Boot 3 接入实战,系统梳理接口文档生成、调试与协作边界

这篇笔记的目标是把 Swagger 放回 Spring Boot 的真实工程语境里重新理解一遍:它到底是什么,和 OpenAPI、springdoc-openapi 分别是什么关系,在项目里解决的核心问题是什么,以及一套完整的接入方案应该怎样落到代码、配置和团队协作流程上。 文中重点不是停留在“把页面跑起来”这一层,而是围绕一个典型后端项目展开:接口持续迭代、前后端要对齐字段...

apidoc 接口文档

从 Spring Boot 注释式文档到 Jenkins 自动生成发布,系统梳理 apidoc 的接入方式与工程化落地

这篇笔记的目标是把 apidoc 放到 Spring Boot 项目里按工程化方式重新理解一遍:它到底适合解决什么问题,和 springdoc / Swagger、Spring REST Docs 有什么差异,注释应该写到什么粒度,生成链路如何放进 Jenkins,以及怎样把“接口文档”真正变成持续交付流程中的一个构建产物。 文中重点不是泛泛介绍“如何安装一个文档工具”,而是...

Superpowers

技能驱动的 AI 工程方法、与 OpenSpec 的边界、典型疑问,以及混合使用完整案例

这篇笔记的目标是把 Superpowers 放回一个更准确的位置里看清楚:它不是另一个“写 spec 的工具”,而是一套约束 AI 编码助手工作方式的技能体系。重点不在“产出哪几个文档”,而在“让代理按什么工程纪律工作”。 文章会把 Superpowers 和 OpenSpec 放在同一张图里比较,并给出一套更实用的搭配思路:由 OpenSpec 负责定义变更意图和长期规范,...

Arex-Agent 流量回放

从录制数据结构、存储方式、字节码增强到源码切入,系统梳理 Java 微服务里的流量回放机制

这篇笔记的目标是把 AREX Agent 放到 Java 后端工程里真正拆开来看:一次录制到底会产出什么数据对象,数据如何落到 Storage Service + MongoDB + Redis,回放时又是怎么把真实下游调用短路成录制结果。重点不再停留在“它能做回放测试”这类概念层,而是直接进入数据模型、运行机制和源码入口。 文章会尽量站在 Java 业务开发和源码阅读的双重...

Sentinel 原理与源码解析

从资源模型、Slot Chain、流控熔断到 @SentinelResource 与动态规则

这篇笔记不是只回答“Sentinel 怎么配规则”或者“控制台怎么点”,而是把问题往下压一层:Sentinel 到底在保护什么、它靠什么抽象统一了限流/熔断/热点参数/系统保护、一次请求进入 Sentinel 后会经过哪些核心对象和执行链。 正文会同时覆盖三层内容:一层是日常开发最需要的能力视图,一层是规则与统计的运行机制,一层是源码主线,包括 SphU、CtSph、Entr...

最小 RAG 项目落地

从 MVP 边界、数据入库、检索问答到 Java Spring Boot / Spring AI + pgvector 实践方案

这篇笔记的目标,不是继续解释 RAG 的概念,而是把问题直接落到“怎么起一个最小可行项目”上:如果现在要做一个能接文档、能入库、能检索、能回答、还能继续迭代的 RAG 服务,第一版到底应该长什么样。 这篇内容会有明确的技术偏向:优先给出 Java Spring Boot / Spring AI 的落地方案,向量库侧默认从 pgvector 起步,因为它对很多已有 Java 后...