跨层检查Skill check-cross-layer

跨层检查是一种软件开发技能,用于在代码实施后验证更改是否全面考虑所有维度,特别是跨层数据流、代码重用、导入路径和一致性检查,以预防常见bug并提高代码质量。关键词:跨层检查、代码验证、软件测试、数据流、代码重用、软件开发、测试清单。

测试 0 次安装 0 次浏览 更新于 3/13/2026

name: check-cross-layer description: “跨层检查”

跨层检查

检查您的更改是否考虑了所有维度。大多数bug源于“没有想到”,而非技术能力不足。

注意:这是一个实施后的安全网。理想情况下,在编写代码之前阅读实施前检查清单


相关文档

文档 目的 时机
实施前检查清单 编码前的问题 编写代码前
代码重用思考指南 模式识别 实施期间
/trellis:check-cross-layer (本指南) 验证检查 实施后

执行步骤

1. 识别更改范围

git status
git diff --name-only

2. 选择适用的检查维度

根据您的更改类型,执行以下相关检查:


维度A:跨层数据流(当涉及3层或更多时必需)

触发条件:更改涉及3层或更多

常见位置
API/路由 routes/, api/, handlers/, controllers/
服务/业务逻辑 services/, lib/, core/, domain/
数据库/存储 db/, models/, repositories/, schema/
UI/表示层 components/, views/, templates/, pages/
实用工具 utils/, helpers/, common/

检查清单

  • [ ] 读取流:数据库 -> 服务 -> API -> UI
  • [ ] 写入流:UI -> API -> 服务 -> 数据库
  • [ ] 类型/模式在层之间正确传递?
  • [ ] 错误正确传播到调用者?
  • [ ] 每个层处理加载/待处理状态?

详细指南.trellis/spec/guides/cross-layer-thinking-guide.md


维度B:代码重用(当修改常量/配置时必需)

触发条件

  • 修改UI常量(标签、图标、颜色)
  • 修改任何硬编码值
  • 在多个地方看到类似代码
  • 创建新的实用工具/辅助函数
  • 刚刚完成跨文件的批量修改

检查清单

  • [ ] 先搜索:有多少地方定义了这个值?
    # 在源文件中搜索(根据项目调整扩展名)
    grep -r "value-to-change" src/
    
  • [ ] 如果2个或更多地方定义相同值 -> 应提取到共享常量
  • [ ] 修改后,所有使用站点都更新了吗?
  • [ ] 如果创建实用工具:是否已存在类似实用工具?

详细指南.trellis/spec/guides/code-reuse-thinking-guide.md


维度B2:新实用工具函数

触发条件:即将创建新的实用工具/辅助函数

检查清单

  • [ ] 先搜索现有的类似实用工具
    grep -r "functionNamePattern" src/
    
  • [ ] 如果类似存在,可以扩展它吗?
  • [ ] 如果创建新的,是否在正确位置(共享 vs 特定领域)?

维度B3:批量修改后

触发条件:刚刚在多个文件中修改了类似模式

检查清单

  • [ ] 您检查了所有具有类似模式的文件吗?
    grep -r "patternYouChanged" src/
    
  • [ ] 有任何遗漏的文件应该也更新吗?
  • [ ] 应该抽象此模式以防止未来重复吗?

维度C:导入/依赖路径(当创建新文件时必需)

触发条件:创建新的源文件

检查清单

  • [ ] 使用正确的导入路径(相对 vs 绝对)?
  • [ ] 没有循环依赖?
  • [ ] 与项目的模块组织一致?

维度D:同层一致性

触发条件

  • 修改显示逻辑或格式化
  • 同一领域概念在多个地方使用

检查清单

  • [ ] 搜索其他使用相同概念的地方
    grep -r "ConceptName" src/
    
  • [ ] 这些用法一致吗?
  • [ ] 应该共享配置/常量吗?

常见问题快速参考

问题 根本原因 预防措施
更改一处,遗漏其他 未搜索影响范围 更改前使用grep
数据在某一层丢失 未检查数据流 跟踪数据源到目的地
类型/模式不匹配 跨层类型不一致 使用共享类型定义
UI/输出不一致 同一概念在多个地方 提取共享常量
类似实用工具已存在 未先搜索 创建前搜索
批量修复不完整 未验证所有出现 修复后使用grep

输出

报告:

  1. 您的更改涉及哪些维度
  2. 每个维度的检查结果
  3. 发现的问题和修复建议