<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[acheding的博客]]></title><description><![CDATA[生命是一团欲望，欲望不能满足便痛苦，满足便无聊。]]></description><link>https://blog.csdn.net/bDreamer</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; bDreamer]]></copyright><item><title><![CDATA[一次授权只发一次：微信喝水提醒的可靠状态机设计]]></title><link>https://blog.csdn.net/bDreamer/article/details/163296063</link><guid>https://blog.csdn.net/bDreamer/article/details/163296063</guid><author>bDreamer</author><pubDate>Wed, 29 Jul 2026 10:33:02 +0800</pubDate><description><![CDATA[本文探讨了基于微信一次性订阅消息的健康打卡系统设计要点。系统需接受平台约束，将授权转化为闭环流程，而非永久定时推送。服务端维护多状态提醒计划，通过独立授权记录实现幂等性。采用本地优先的打卡策略，确保用户操作即时响应。时间计算遵循纯规则，worker采用事务锁抢占任务，但消息发送在事务外完成。系统选择at-most-once投递，避免重复打扰，并通过状态收敛处理各种异常。部署上，调度器与业务逻辑解耦，便于扩展。最后提出可靠提醒系统的关键检查清单，涵盖授权记录、任务抢占、外部调用、异常处理和状态收敛等方面。]]></description><category></category></item><item><title><![CDATA[麻将桌上的并发控制：扫码进房、乐观版本与零和结算]]></title><link>https://blog.csdn.net/bDreamer/article/details/163295786</link><guid>https://blog.csdn.net/bDreamer/article/details/163295786</guid><author>bDreamer</author><pubDate>Wed, 29 Jul 2026 10:31:04 +0800</pubDate><description><![CDATA[微信小程序「零碎百宝箱」的麻将计分工具通过服务端中心化设计解决多人协作的共享状态难题。核心设计包括：1）分离房间状态、流水与结算数据，通过版本号轮询实现低频同步；2）结合乐观版本检查与数据库悲观锁处理并发提交；3）服务端强制零和验证与总分计算，防止数据篡改；4）采用JWT身份验证与二维码入口分离的安全模型。该方案以事务性写操作和快照式统计平衡实时性与复杂度，适用于低频多人协作场景，其关键是对事实来源、版本控制及不变量的明确定义。]]></description><category></category></item><item><title><![CDATA[撤销为什么只需要 pop：用事件重放实现离线台球计分]]></title><link>https://blog.csdn.net/bDreamer/article/details/163264947</link><guid>https://blog.csdn.net/bDreamer/article/details/163264947</guid><author>bDreamer</author><pubDate>Tue, 28 Jul 2026 10:33:55 +0800</pubDate><description><![CDATA[台球计分工具采用事件溯源设计模式，通过只记录比赛事件（如选手获胜、特殊胜局等）而非直接维护比分等状态，实现可靠计分和轻松撤销。核心思想是将事件序列作为唯一事实来源，所有状态（比分、开球方等）都通过重放事件计算得出。该方案解决了多状态同步问题，支持离线使用，并通过结构特征检测实现旧数据兼容。设计关键包括：坚持事件单一来源、编写纯计算函数、维护业务不变量、明确数据生命周期边界。这种模式适用于操作可离散化、状态可计算且需要频繁撤销的场景，避免了传统状态同步的复杂性。]]></description><category></category></item><item><title><![CDATA[从一个小程序到一座工具箱：uni-app 分包与 Flask 微服务实践]]></title><link>https://blog.csdn.net/bDreamer/article/details/163263949</link><guid>https://blog.csdn.net/bDreamer/article/details/163263949</guid><author>bDreamer</author><pubDate>Tue, 28 Jul 2026 10:28:10 +0800</pubDate><description><![CDATA[本文探讨了小程序从单一功能逐步扩展为多功能工具箱时的架构设计挑战。通过"零碎百宝箱"项目的实践，提出了分层解决方案：主包提供核心能力，各工具作为独立分包运行，通过注册表统一管理。关键技术点包括：工厂函数统一网络请求边界、本地优先的离线同步策略、服务端采用"专属服务+通用服务"的混合架构，以及统一设计系统与业务个性的平衡。文章总结了不同类型工具的技术选型标准，并分析了当前架构的适用边界。]]></description><category></category></item><item><title><![CDATA[在浏览器里跑 Prettier：格式化 Markdown 的四个难点]]></title><link>https://blog.csdn.net/bDreamer/article/details/163051172</link><guid>https://blog.csdn.net/bDreamer/article/details/163051172</guid><author>bDreamer</author><pubDate>Mon, 20 Jul 2026 17:15:04 +0800</pubDate><description><![CDATA[「一键格式化」功能看似简单，实则暗藏四个技术难点：1) Prettier全量加载体积过大，需动态导入；2) 中文段落需设置proseWrap:preserve避免错误折行；3) 光标位置需精准映射到格式化后文档；4) 撤销操作需保证单步完成。MarkView通过45行精心设计的代码解决了这些问题，包括异步加载Prettier核心及插件、保留中文段落原生换行、利用官方API处理光标映射，以及将全文替换封装为单事务操作确保撤销完整性。]]></description><category></category></item><item><title><![CDATA[File System Access API 实战：让网页真正读写本地文件]]></title><link>https://blog.csdn.net/bDreamer/article/details/163051095</link><guid>https://blog.csdn.net/bDreamer/article/details/163051095</guid><author>bDreamer</author><pubDate>Mon, 20 Jul 2026 17:03:08 +0800</pubDate><description><![CDATA[本文介绍了如何利用 File System Access API 实现 Markdown 编辑器的原生文件读写功能，并解决了一系列状态管理问题。主要内容包括：1）通过文件句柄直接读写原文件，支持 Ctrl+O/Ctrl+S 操作；2）句柄持久化存储与权限恢复机制；3）基于双基线（内容签名和修改时间）的外部修改检测策略，通过智能比对判断是否静默同步或提示用户决策。文章特别强调了权限管理、状态同步和异常处理的细节设计，展示了如何将浏览器API限制转化为合理的用户交互方案。]]></description><category></category></item><item><title><![CDATA[把 CodeMirror 6 调教成 Markdown 编辑器：扩展、装饰与门面]]></title><link>https://blog.csdn.net/bDreamer/article/details/163051035</link><guid>https://blog.csdn.net/bDreamer/article/details/163051035</guid><author>bDreamer</author><pubDate>Mon, 20 Jul 2026 17:00:34 +0800</pubDate><description><![CDATA[本文介绍了基于CodeMirror 6的MarkView编辑器核心实现思路，重点阐述了其设计哲学与关键技术点。CodeMirror 6采用"最小化基础+可扩展"理念，MarkView在minimalSetup基础上通过扩展实现多文档状态管理、主题切换等功能。文章详细说明了：1）Vue组件与编辑器逻辑的完全解耦；2）通过EditorState快照实现多文档隔离与撤销栈防污染；3）CSS变量替代Compartment实现无闪烁主题切换；4）围栏代码块语言高亮的懒加载策略及补全功能修复方案。]]></description><category></category></item><item><title><![CDATA[一条 Markdown 渲染管线的全部细节：Worker、源行标注与按需加载]]></title><link>https://blog.csdn.net/bDreamer/article/details/163050956</link><guid>https://blog.csdn.net/bDreamer/article/details/163050956</guid><author>bDreamer</author><pubDate>Mon, 20 Jul 2026 16:59:27 +0800</pubDate><description><![CDATA[MarkView 的右侧预览区，看起来只是「把 Markdown 变成 HTML」。但真正跑起来的是一条跨线程、按需加载、带序号防乱序的管线：marked 解析、KaTeX 公式、highlight.js 高亮全部在 Web Worker 里跑完，Mermaid 因为需要真实 DOM 被单独留在主线程，最后串行提交到预览区。]]></description><category></category></item><item><title><![CDATA[BroadcastChannel + IndexedDB：多标签页文档同步实战]]></title><link>https://blog.csdn.net/bDreamer/article/details/162896085</link><guid>https://blog.csdn.net/bDreamer/article/details/162896085</guid><author>bDreamer</author><pubDate>Wed, 15 Jul 2026 10:23:43 +0800</pubDate><description><![CDATA[探讨了纯前端 Markdown 工具在多标签页环境下的数据同步问题。]]></description><category></category></item><item><title><![CDATA[MarkView：纯前端 Markdown 实时预览工具的架构设计]]></title><link>https://blog.csdn.net/bDreamer/article/details/162895940</link><guid>https://blog.csdn.net/bDreamer/article/details/162895940</guid><author>bDreamer</author><pubDate>Wed, 15 Jul 2026 10:21:08 +0800</pubDate><description><![CDATA[MarkView 是一个纯前端的本地 Markdown 实时预览工具（https://markview.art）：左侧 CodeMirror 6 编辑，右侧实时渲染，所有数据保存在浏览器 IndexedDB 中，无需任何后端。支持暗色/浅色主题、命令面板、URL 分享，并可作为 PWA 离线安装，甚至能注册为系统的 `.md` 文件处理器——双击本地文件直接用它打开。]]></description><category></category></item><item><title><![CDATA[全栈开发AI聊天回复小程序]]></title><link>https://blog.csdn.net/bDreamer/article/details/161597669</link><guid>https://blog.csdn.net/bDreamer/article/details/161597669</guid><author>bDreamer</author><pubDate>Mon, 01 Jun 2026 16:56:01 +0800</pubDate><description><![CDATA[一款基于微信小程序的 AI 聊天回复助手，支持多语气风格、多图识别、会话持久化。]]></description><category></category></item><item><title><![CDATA[知乎网页版「摸鱼神器」：一键开启精简模式，上班划水更安全~]]></title><link>https://blog.csdn.net/bDreamer/article/details/161084915</link><guid>https://blog.csdn.net/bDreamer/article/details/161084915</guid><author>bDreamer</author><pubDate>Thu, 14 May 2026 15:46:51 +0800</pubDate><description><![CDATA[本文分享了一段JavaScript代码，可将知乎网页版伪装成文档阅读页面，隐藏导航栏、侧边栏等干扰元素，仅保留内容流。代码通过动态注入CSS样式和添加切换按钮实现一键切换功能，适合上班摸鱼时使用。文章详细介绍了使用方法、实现原理及注意事项，并提供了书签版代码方便一键执行。]]></description><category></category></item><item><title><![CDATA[全栈开发实时珠宝金价查询小程序]]></title><link>https://blog.csdn.net/bDreamer/article/details/159169706</link><guid>https://blog.csdn.net/bDreamer/article/details/159169706</guid><author>bDreamer</author><pubDate>Tue, 17 Mar 2026 17:17:32 +0800</pubDate><description><![CDATA[本文介绍了基于Python Flask和UniApp的全栈项目"金价排行榜"开发过程，该项目实现了珠宝品牌实时金价聚合查询功能。]]></description><category></category></item><item><title><![CDATA[OpenClaw浏览器自动化实战：让AI拥有“眼睛“和“双手“]]></title><link>https://blog.csdn.net/bDreamer/article/details/159169653</link><guid>https://blog.csdn.net/bDreamer/article/details/159169653</guid><author>bDreamer</author><pubDate>Tue, 17 Mar 2026 17:15:47 +0800</pubDate><description><![CDATA[详细记录在服务器上配置OpenClaw浏览器自动化功能的完整过程，包括基础配置、中文字体支持和实际应用案例。]]></description><category></category></item><item><title><![CDATA[OpenClaw完整部署指南：从本地到远程访问]]></title><link>https://blog.csdn.net/bDreamer/article/details/159169639</link><guid>https://blog.csdn.net/bDreamer/article/details/159169639</guid><author>bDreamer</author><pubDate>Tue, 17 Mar 2026 17:15:12 +0800</pubDate><description><![CDATA[详细记录OpenClaw的完整部署流程，包括UI页面访问、远程连接方案（Tailscale/SSH隧道）和通义千问大模型接入。]]></description><category></category></item><item><title><![CDATA[（一）AntV/X6 复杂图形应用架构解析：工厂模式与管理器体系]]></title><link>https://blog.csdn.net/bDreamer/article/details/156895898</link><guid>https://blog.csdn.net/bDreamer/article/details/156895898</guid><author>bDreamer</author><pubDate>Tue, 13 Jan 2026 11:47:10 +0800</pubDate><description><![CDATA[本文介绍了一种基于AntV/X6和Vue3的大型图形编辑器架构方案。通过工厂模式构建包含GraphManager、NodeManager、EdgeManager、LayoutManager和EventManager的管理器体系，实现模块解耦与高可维护性。方案特点包括：Vue组件化节点渲染、统一初始化与销毁流程、清晰职责划分，适用于流程图、ER图等复杂图形编辑场景。文中展示了核心工厂设计及关键管理器实现，为前端工程化处理图形编辑器提供了实践参考。]]></description><category></category></item><item><title><![CDATA[（二）AntV X6 布局管理器深度解析：迭代布局与父子嵌套]]></title><link>https://blog.csdn.net/bDreamer/article/details/156895815</link><guid>https://blog.csdn.net/bDreamer/article/details/156895815</guid><author>bDreamer</author><pubDate>Tue, 13 Jan 2026 11:45:57 +0800</pubDate><description><![CDATA[本文提出一种基于dagre的图编辑布局方案，采用迭代式方法解决多层级节点布局问题。系统通过自底向上的节点尺寸计算和自顶向下的位置应用，实现父子节点的自适应嵌套。关键技术包括：1）根据层级动态设置节点大小；2）根节点与子树分别布局；3）支持方向与间距配置。该方法在AntV X6框架中实现了稳定可控的布局流程，有效提升了复杂图结构的可读性。实验表明，该方案能良好处理父子节点嵌套与全局布局的兼容性问题。]]></description><category></category></item><item><title><![CDATA[（三）Vue3 + AntV/X6 自定义节点实践：组件化节点与事件联动]]></title><link>https://blog.csdn.net/bDreamer/article/details/156895617</link><guid>https://blog.csdn.net/bDreamer/article/details/156895617</guid><author>bDreamer</author><pubDate>Tue, 13 Jan 2026 11:44:46 +0800</pubDate><description><![CDATA[本文介绍了在Vue3中使用AntV/X6实现自定义节点组件化的实践方案。通过@antv/x6-vue-shape将Vue组件作为X6节点形状，实现UI与逻辑解耦。核心包括：使用Teleport容器挂载节点，通过事件系统实现节点交互联动，采用数据监听更新节点状态，以及利用NodeManager管理节点注册和容器挂载。文章详细展示了组件结构、事件触发机制、数据更新处理和样式绑定方法，最终形成了一套完整的组件化节点与业务交互解决方案，提升了图建模应用的可维护性和交互体验。]]></description><category></category></item><item><title><![CDATA[Vue3 富文本输入框组件深度解析]]></title><link>https://blog.csdn.net/bDreamer/article/details/150558213</link><guid>https://blog.csdn.net/bDreamer/article/details/150558213</guid><author>bDreamer</author><pubDate>Wed, 20 Aug 2025 17:10:55 +0800</pubDate><description><![CDATA[本文介绍了一个基于Vue3的富文本输入框组件，具有标签化输入、占位符切换、精确光标控制等核心功能。组件采用类型化数据模型设计，通过contenteditable属性和自定义标签系统实现功能。关键技术包括：使用零宽空格实现标签定位、TreeWalker优化文档遍历、封装Range/Selection API实现跨浏览器光标控制、以及复杂的键盘事件处理逻辑（如Enter、Backspace、Delete键的特殊处理）。该组件在保证用户体验的同时，提供了强大的富文本编辑能力。]]></description><category></category></item><item><title><![CDATA[简单微信小程序开发案例——瞬间听力测试]]></title><link>https://blog.csdn.net/bDreamer/article/details/150555702</link><guid>https://blog.csdn.net/bDreamer/article/details/150555702</guid><author>bDreamer</author><pubDate>Wed, 20 Aug 2025 15:53:47 +0800</pubDate><description><![CDATA[瞬间听力测试是一款基于Vue3+uni-app开发的微信小程序游戏，采用渐进式挑战模式（7-20位数字）和三种语音播报速度（舒缓/正常/急促）。项目技术亮点包括：1）SCSS主题系统动态生成渐变背景；2）Web Audio API程序化生成点击音效；3）微软TTS服务实现高质量语音合成；4）音频池优化策略提升响应速度。前端采用Composition API架构，后端通过Docker部署微软TTS镜像，支持MP3流式传输，实现低延迟的语音交互体验。]]></description><category></category></item></channel></rss>