💡
原文中文,约15300字,阅读约需37分钟。
📝
内容提要
作者在地铁上加班时萌生了用手机编写代码的想法,开发了一个远程 AI 编程助手项目。现有的 AI 编程助手多为命令行工具,无法在手机上使用。作者希望通过浏览器实现移动办公,使用 Blazor Server 处理流式输出和会话管理,最终实现了随时随地编写代码的功能。
🎯
关键要点
- 作者在地铁上加班时产生了用手机编写代码的想法,开发了远程 AI 编程助手项目。
- 现有的 AI 编程助手多为命令行工具,无法在手机上使用,作者希望通过浏览器实现移动办公。
- 使用 Blazor Server 处理流式输出和会话管理,实现随时随地编写代码的功能。
- AI 编程助手的流式输出对用户体验至关重要,选择 Blazor Server 是因为其 SignalR 长连接特性。
- 适配器模式用于统一处理不同 CLI 工具的差异,避免代码复杂化。
- 会话管理使用 IndexedDB 存储用户对话,避免频繁读写服务器数据库。
- 进程管理采用持久化进程模式,提升用户体验,减少启动开销。
- 会话恢复功能允许用户继续上次的工作,需保存会话 ID。
- 移动端适配重视响应式布局和触摸优化,确保用户体验。
- 每个会话一个独立的工作目录,确保文件隔离,避免混淆。
- Markdown 渲染与代码高亮使用 Markdig 和 Monaco Editor,提升内容展示效果。
- 项目支持国际化,使用 JSON 资源文件动态加载语言。
- 总结了开发过程中遇到的各种问题和解决方案,展望未来的优化方向。
❓
延伸问答
如何在手机上编写代码?
通过开发一个远程 AI 编程助手项目,使用浏览器实现移动办公,用户可以在手机上输入需求,服务器执行并实时推送结果。
为什么选择 Blazor Server 作为技术栈?
Blazor Server 的 SignalR 长连接特性可以实现低延迟的流式输出,适合处理 AI 编程助手的实时交互需求。
如何管理用户的会话和数据?
使用 IndexedDB 存储用户对话,避免频繁读写服务器数据库,同时支持会话恢复功能。
项目中如何处理不同 CLI 工具的差异?
采用适配器模式,通过统一的接口处理不同 CLI 工具的输出格式,避免代码复杂化。
移动端适配有哪些重要考虑?
重视响应式布局和触摸优化,确保交互元素的触摸区域足够大,以提升用户体验。
开发过程中遇到了哪些挑战?
遇到的挑战包括流式输出的处理、会话管理的实现、不同 CLI 工具的输出格式差异等。
➡️