接手一个别人写的系统,最难的不是「看懂代码」,而是「判断哪里要改、哪里不改、改的风险多大」。 本文给出一套我们用了 50+ 个项目的 6 步评估法。

第 1 步:环境与依赖盘点(1 天)

  • 操作系统、运行时版本、扩展、依赖包
  • 服务器配置、域名、SSL、CDN
  • 代码仓库、分支策略、CI/CD 状态
  • 数据库、缓存、消息队列等中间件

第 2 步:架构与代码结构(2-3 天)

  • 分层(MVC / DDD / 一锅炖)
  • 模块边界、依赖方向、循环引用
  • 公共组件、工具函数、第三方库
  • 测试覆盖率、文档完整度

第 3 步:可观测性现状(1 天)

  • 日志:是否结构化、是否可检索、保留多久
  • 监控:业务指标 vs 技术指标、告警阈值
  • 链路追踪:跨服务调用是否可追溯
  • 备份:策略、频率、恢复演练

第 4 步:安全基线检查(1-2 天)

  • OWASP Top 10 快速过一遍
  • 依赖 CVE 扫描(npm audit / composer audit)
  • 权限矩阵:角色、用户、最小权限
  • 密钥管理:硬编码、环境变量、密钥服务

第 5 步:业务与团队上下文(1 天)

  • 业务核心链路、最怕出问题的环节
  • 历史故障 TOP 5、原因、修复
  • 团队能力、交接文档、知识分布

第 6 步:输出《健康度报告》

综合以上 5 步,输出 3 张表:

  1. 健康度雷达图:代码 / 性能 / 安全 / 运维 / 业务 5 维
  2. TOP 10 风险清单:含影响、紧急度、修复成本
  3. 30/60/90 天建议:分阶段实施计划

常见误区

  • 只看代码不看业务 → 改了不重要的部分
  • 只看架构不看运维 → 上线后才发现备份缺失
  • 只输出问题不输出优先级 → 客户无法决策

如果你也接手了「无文档、无交接、无 owner」的旧项目,提交项目体检,我们 24 小时内响应。