文章
记录技术探索、项目实践与业务思考。既复盘做过的事,也讨论值得研究的问题。
技术笔记
记录工程实践、原理梳理与方案分析。
只讨论一个问题:异步请求为何在等待外部服务时仍持有数据库连接,以及怎样通过独立短会话缩短占用,而不破坏业务事务。
- Python
- SQLAlchemy
- 异步请求
- 连接池
把视口坐标、画布逻辑坐标、业务几何与像素密度分开,分析缩放和页面滚动后图形可见但点选不准的原因。
- Canvas
- 坐标变换
- 命中检测
- 跨端交互
聚焦异步结果的归属判断:请求取消为何还不够,如何用请求代次处理连续切换、重复刷新、旧异常和组件卸载。
- Vue
- 异步竞态
- AbortController
- 状态管理
从聊天记录分页分析滚动锚点:为什么补偿 scrollHeight 只适合部分情况,动态图片、实时消息和用户主动滚动应如何协调。
- 聊天界面
- 滚动定位
- 动态高度
- 交互状态
以多字段总量固定为唯一问题,讨论状态建模、相邻补偿、无效输入和整数余量。尺寸编辑只是案例,方法也适用于配额分配与布局编辑。
- TypeScript
- 状态建模
- 不变量
- 数值精度
聚焦跨设备的执行互斥:为什么前端 loading 不够,如何用数据库原子获取、带身份的续租与释放,避免旧任务误删新任务的占用状态。
- PostgreSQL
- 并发控制
- 租约
- AI Agent
从独立交付的组件库出发,讨论资源版本、发布顺序和旧页面存活期,让一次更新对应一组完整产物,而不是分别覆盖几个文件。
- 组件库
- 静态资源
- 版本管理
- 缓存
聚焦组件库与宿主的运行时依赖边界:external 和 peerDependencies 各负责什么,ES 与 UMD 怎样找到外部依赖,以及如何验证没有悄悄多打一份 Vue。
- Vue 3
- Vite
- 组件库
- 工程化
从 AI 对话的流式输出出发,拆开字节解码、事件分帧和业务更新,分析中文截断、半包与连续事件为什么会让前端状态失真。
- SSE
- 流式响应
- UTF-8
- 协议解析
从 ERP 大表格场景分析行节点复用:用稳定行标识管理草稿、校验和焦点,避免滚动、排序与刷新让编辑内容串行或丢失。
- 虚拟列表
- 表格编辑
- 状态管理
- 稳定标识
聚焦第三方依赖的兼容边界:区分语法、运行时 API 与 Worker 加载,建立可复现的浏览器验证链,而不是仅修改编译 target。
- WebView
- 浏览器兼容
- PDF.js
- Worker
把页面返回、数据同步与流程推进拆开,分析消息延迟、重复回调和旧页面残留动作如何影响跨端多步骤交互。
- uni-app
- 微信小程序
- WebView
- 生命周期
聚焦内容一致性:用 Astro 内容集合区分数据与展示,让中文首页、项目归档和 A4 简历消费同一份项目资料,减少多处复制后的口径漂移。
- Astro
- 内容建模
- 静态站点
- 打印样式
业务思考
梳理流程、业务规则与产品取舍。
围绕配置、报价与下单的业务承诺,分析哪些变更应触发重算、旧报价如何展示,以及用户需要在什么时点重新确认。
- 业务规则
- 报价流程
- 变更管理
从聊天与售后工单协作出发,分析处理、确认、关闭和重新打开各自代表什么,避免按钮状态替代真实服务结果。
- 售后协作
- 工单流程
- 业务状态
从功能开放范围出发,讨论配置能力与后续交付之间的关系。如何在入口、操作步骤和最终提交之间明确开放范围,避免投入大量操作后才被告知不可用。
- 业务分析
- 多步骤流程
- 功能开放范围