他坐在餐厅,MacBook Air 安静地躺在背包里,根本没开机。掏出手机,打开 Codex,对着一个 Expo 应用下了一道修改指令——用的不是本地代码,而是远在家里的那台旧游戏 PC。等改动完成,直接切到手机上的 App,结果已经跑在上面了。
“如果笔记本都关了,所谓的‘本地开发’到底发生在哪儿?”他事后回想,自己一开始折腾这套环境,只是想把手头已有的硬件用到极致,没想到餐厅里那一刻,突然意识到整件事的意义比省点算力要大得多。
那台塔式机是早年攒来打游戏的个人 PC,配 Ryzen 5 5600G、16 GB 内存、约 1 TB 硬盘,不是专门为 AI 编程代理买的工作站。起初他试着保留 Windows,跑 WSL、Docker,再靠远程桌面连到自己的 16 GB 内存 MacBook Air 上。每个组件单独看都合理,叠在一起却浑身别扭:Windows 要吃内存,WSL 要吃内存,Docker 还要吃内存,还要额外渲染、串流一个他压根不想用的远程桌面。
“能用,但没法舒服地用。”他说。机器的有限容量都花在支撑开发环境本身,真正想跑的服务反倒被挤到角落。于是他索性给塔式机刷了 Ubuntu,让它专注干一件事:管好代码仓库、Docker 容器、数据库、开发服务器、构建任务和编程代理。MacBook 则继续做它擅长的工作——跑浏览器、编辑器界面,以及所有需要他盯着的事情。
没有两边磁盘的精确跑分对比,他也不想假装这是严格对照实验。但切分之后,日常体感明显顺了。现在的分工简单得像个清单:
1. MacBook Air 当客户端
VS Code、Codex、浏览器、通讯工具全在这边,轻薄本回归“注意力入口”。
2. Ubuntu 塔式机掌管一切计算端
OpenSSH、Docker、PostgreSQL、后端、前端服务、Metro、Android 构建,以及需要触碰代码的代理工具,全都由它承担。
3. Tailscale 搭起私密网络
给每台机器一个稳定名字,不再操心 IP 飘来飘去。注意这里用的是普通 OpenSSH,不是 Tailscale SSH,后面那条链路完全基于 Tailscale 提供的稳定隧道。
4. VS Code Remote SSH 抹掉距离
从 MacBook 远程打开 Ubuntu 上的仓库,就像文件就在本地;集成终端实际上跑在 Ubuntu 上,需要访问代码的扩展也都安装在远端。启动开发服务器后,端口自动转发到 MacBook 的 localhost,浏览器刷新就像在本机一样。
正是这套架构,让餐馆里的操作成为可能。手机上的 Codex 连上远端的开发工作区,那里有完整的仓库构建链路,而笔记本在包里全程关机。当他切回 App 看到改动生效时,所谓的“本地开发”早已不在手边这台设备上运转了——它被重新定义在那个永远在线、随时能拉起来的家用塔式机上了。
热门跟贴