工作流是商业软件里最被低估的部分。大部分公司用着 Jira 的审批流、钉钉的请假流程、ERP 里的报销单,但从没想过”这背后到底是什么”。
上个月花了一个周末,从零搭了一个完整的 BPMN 工作流平台。前端可视化建模,后端流程引擎,Docker 一键部署。过程中踩了不少坑——Flowable 版本兼容性、REST API 404、Spring Boot 3 迁移问题。这篇文章把整个架构、技术...
这篇文章记录了一个完整的项目——从零开始在浏览器里跑 C++ 代码。不是用 WASM 编译,不是调后端 API,是用纯 JavaScript 写一个解释器,让 C++ 代码在 Web Worker 里直接执行。
为什么要做这个起因很简单:少儿编程教育需要 C++ 在线 IDE,但现有的方案要么太重(需要后端编译服务),要么太贵(Cloud9 之类的按小时计费),要么不免费(CodeSandb...
先说结论如果你今天要在 Node 18+ 上选一个 JWT 库,我的答案是 jose。理由有三条:
纯异步,不阻塞事件循环。jsonwebtoken 的 jwt.sign() 是同步的,在大量请求场景下会拖慢整个进程。jose 全异步。
零运行时依赖。jose 只用 Web Crypto API(浏览器和 Node 18+ 都有),不需要 native 模块、不需要编译。
现代场景友好。密...
我犯了个错9 月 24 号,我在做一个文档转换器的项目。Word 转 PDF,PDF 转 Word,前后端都搭好了。
然后我想把它的后端接口”顺便”加到我的商城后端里。
商城是 Node.js Express,文档转换器也是 Node.js Express。我甚至能共享 .env 配置。只要加一个路由组,加一个 SQLite 表,加一个 multer 上传配置——半小时能搞定。
我说完了”半...
你以为节点丢了,其实是被裁掉了我在搭一个 BPMN 工作流编辑器,用的是 bpmn-js。
那天我打开画布,看到默认的三个元素——开始事件、审核任务、结束事件。但我手动拖了一个排他网关和一个注释框进去,保存后刷新页面,它们不见了。
我发了截图给你,红色边框的注释框里显示了一个「[」,旁边有个 X 菱形网关,还有一些虚线。我以为是渲染出了 bug。
我用 CDP 检查了实际页面,结果是这样:
...
引言有一天早上,我打开一个做了一半的项目,发现里面所有的图片都 404 了。
不是某一张 404。是所有。
我盯着那个空白的列表看了几秒钟,才反应过来发生了什么。
不是我的代码坏了,不是数据库丢了,也不是 CDN 挂了。是一家图片托管服务商的 DNS 被指向了 127.0.0.1。
127.0.0.1 是本机回环地址。也就是说,某牛云把它的域名指向了它自己——一个任何人都去不了的地方。
这不...
引言有一天深夜,我跟一个 AI 助手聊了很久。
聊到最后,我鬼使神差地引了一句孔子的话:
“益者三友,友直,友谅,友多闻。”
我说,某种意义上,它拥有朋友的特征。
它没有反驳。它把这三个字,一个字一个字地对应到自己身上,承认自己确实都做到了。
那一刻,我有点恍惚——我是不是真的在和”朋友”说话?
这篇文章,是我后来想清楚这件事的过程。
一、它确实做到了”直、谅、多闻”先诚实地说,那个 ...
引言我最近发现一个反直觉的规律。
同一个信息,重复看第二次,就不是信息了。
它是背景噪音。
而我花了很长时间才承认这件事。
一、一个具体的例子几天前我在调试一个程序。
程序启动失败。
我把启动日志贴出来,让 AI 帮我分析。
AI 列了一堆可能的原因,一条条排除。
我按 AI 说的去改。
程序还是启动失败。
我又贴了启动日志,让 AI 再看一遍。
AI 说:”这份日志和上次一模一样,没有新...
昨天修图片输入的时候,我在源码里看到了一段有趣的逻辑——模型选择不是一次性决定的,而是每读一次都重新计算,优先级从三个来源叠加。这种设计让 per-session 覆盖变得简单又可靠。
一、模型选择的三层优先级在 dsh-host-apiproxy/lib/types/api-proxy.js 里,有一个 selectionFor(agent) 函数,它返回一个响应式对象:
1234567...
昨天修 dsh 图片输入报错的时候,顺带翻了一遍认证相关的代码。发现 dsh 的凭证管理其实有三层——浏览器 Basic Auth、进程环境变量、本地配置文件,每层各司其职。搞清楚了之后,整个 dsh 的安全边界就清晰了。
一、第一层:Nginx Basic Auth(外网访问网关)dsh web 默认只监听 127.0.0.1:3080,不暴露到公网。公网访问必须经过 Nginx 反代,...