社交 App 生产部署实施手册:多区域架构、数据库容灾与故障切换
适用场景:你已经在 Frankfurt(法兰克福)、San Jose(圣何塞)、Singapore(新加坡)各有 1 台 VPS,希望正式部署一个社交 App,让用户就近连接,同时具备基本的高可用、数据安全、故障切换、备份恢复和可运维能力。 示例技术栈:Ubuntu LTS + Cloudflare + Caddy + Docker Compose + PostgreSQL 18 + Wir...
适用场景:你已经在 Frankfurt(法兰克福)、San Jose(圣何塞)、Singapore(新加坡)各有 1 台 VPS,希望正式部署一个社交 App,让用户就近连接,同时具备基本的高可用、数据安全、故障切换、备份恢复和可运维能力。 示例技术栈:Ubuntu LTS + Cloudflare + Caddy + Docker Compose + PostgreSQL 18 + Wir...
只有一台 VPS、一个公网 IP,却要同时运行 sing-box 的 VLESS + Vision + Reality 和多个 Web/API App,又不想让任何客户端改端口——这是一道很典型的“单端口复用”题。本文给出一套按顺序可直接落地的方案:Reality 客户端继续连接公网 IP:443,每个 App 继续使用标准 https://域名,而公网 TCP 443 只由 HAProxy...
本文是一套面向多仓、多阶段、数小时级甚至数天回归的工程实践。当测试链路从分钟级扩展到数小时级,真正拖慢交付的往往不是“测试太多”,而是执行顺序不合理、证据失效判断粗糙、构建和环境被重复创建,以及失败后从头盲目重跑。 本文给出一套不减少测试、不放宽断言、不降低覆盖率门槛的提效方法:把测试执行组织为 Fast、Impacted、Candidate、Release 四层;用“输入闭集”判断哪些证...
如果你在做双机开发——Mac 负责 Xcode / iOS Simulator,Debian 台式机负责后端、Docker、数据库和编译——那么 Mac 与 Debian 之间最值得优先投入的,往往不是更快的 Wi‑Fi,而是一根 Cat6 网线直连。 本文介绍一套 双网卡有线直连 方案: Mac 的 Ethernet 与 Debian 的一张网卡通过独立网线 点对点直连,SSH ...
如果你手里恰好有一台 Mac mini(Apple 平台开发)和一台 i9-13900K / 64GB RAM / RTX 4090 的高配 Linux 服务器,很容易陷入两种纠结: 把什么都塞在 Mac 上跑,结果内存、磁盘很快吃紧; 或者反过来,想让服务器”替代” Mac,却忘了 iOS 开发离不开 Xcode 与 Simulator。 这篇文章给出的是一个折中且务实的方...
当一个 App 已经完成需求梳理、架构整改和任务拆分之后,真正困难的往往不再是”应该怎么改”,而是: 如何把几十甚至上百个整改任务稳定、可控、可验证地落地到代码里。 如果使用 VS Code 中的 Codex 进行开发,一个很自然的想法是: 开一个窗口 A,让 Codex 负责实施; 开一个窗口 B,让另一个 Codex 对 A 的实施进行独立审查; 再增加一个 ...
现在很多 App 都支持这样的登录方式: 账号 + 密码 ↓ Authenticator 6 位验证码 ↓ 登录成功 用户可以使用 Google Authenticator、Microsoft Authenticator、1Password、Authy 等应用生成动态验证码。 表面上看,这个功能似乎就是:生成一个二维码,然后让用户输入 6 位验证码。 但真正做成生...
随着 Codex、Claude Code、Cursor Agent 等 AI 编码代理逐渐参与真实软件工程,团队会遇到一个非常现实的问题:如何让 AI 不仅“写出能运行的代码”,还能够长期遵守项目的架构约束、工程规范和质量标准?仅靠每次任务中临时编写 Prompt,通常无法解决这个问题。 任务 Prompt 更适合描述“这一次要做什么”,而项目还需要一份长期生效的规则,用于回答以下问题: ...
在开发项目时,我们经常会遇到一种情况:本地仓库里既有源码,也有文档、设计稿、开发笔记等内容;但服务器部署时,其实只需要运行代码、配置文件和构建脚本,并不希望把 docs/、设计文档等非运行文件也拉到服务器上。 很多人第一反应是使用 .gitignore,但这个场景下 .gitignore 通常解决不了问题——如果文档已经被 Git 跟踪并提交到了远程仓库,服务器执行 git pull 时仍...
在使用 Codex、AI 编程助手或类似 Agent 工具处理大型工程任务时,很多人都会遇到一个问题:任务一开始表现不错,但执行一段时间后就停了,或者只完成了一部分,最后留下半成品。 这类问题不一定是模型”不够聪明”,更多时候是任务组织方式不适合长时间执行。对于复杂工程任务,不能只靠一句”请完整实现,不要停下来”。更好的方式是把任务工程化,让它具备清晰边界、阶段划分、权限策略、进度记录和验...