《Gemini-Voyager 从入门到精通》(15) - 工程实践

第16章 工程实践 📖 《Gemini-Voyager 从入门到精通》系列连载 --- 16.1 TypeScript 类型系统 项目严格使用 TypeScript,禁止使用 any 类型。 类型安全实践 --- 16.2 测试策略 使用 Vitest 框架,遵循 TDD 工作流程。 TDD 流程 ---…

目录
  1. 第16章 工程实践
  2. 16.1 TypeScript 类型系统
  3. 类型安全实践
  4. 16.2 测试策略
  5. TDD 流程
  6. 16.3 代码质量保障
  7. 提交前检查
  8. 提交格式

第16章 工程实践

📖 《Gemini-Voyager 从入门到精通》系列连载

16.1 TypeScript 类型系统

项目严格使用 TypeScript,禁止使用 any 类型。

类型安全实践

┌─────────────────────────────────────────────────────────────────┐
│                    TypeScript 类型安全实践                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   1. 禁止 any 类型                                              │
│   ✗ const value: any = getData();                            │
│   ✓ const value = getData() as Folder;                       │
│                                                                 │
│   2. Branded Types (区分语义类型)                              │
│   type FolderId = string & { readonly brand: unique symbol };  │
│   type ConversationId = string & { readonly brand: ... };      │
│                                                                 │
│   3. 类型守卫 (收窄 unknown 类型)                               │
│   function isFolder(x: unknown): x is Folder { ... }         │
│   if (isFolder(data)) { data.name /* 类型安全 */ }            │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘


16.2 测试策略

使用 Vitest 框架,遵循 TDD 工作流程。

TDD 流程

┌─────────────────────────────────────────────────────────────────┐
│                    TDD 工作流程                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   1. 编写测试                                                   │
│   2. 运行测试 (预期失败)                                       │
│   3. 编写实现代码                                               │
│   4. 再次运行测试 (预期通过)                                   │
│   5. 重构代码                                                   │
│                                                                 │
│   命令:                                                         │
│   bun run test        - 运行所有测试                           │
│   bun run test:watch - 监听模式                               │
│   bun run test:coverage - 检查覆盖率                           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘


16.3 代码质量保障

完整的代码质量保障体系。

提交前检查

git commit -m "feat: add new feature"
        │
        ▼
   ESLint 检查: bun run lint
        │
        ▼
   TypeScript 检查: bun run typecheck
        │
        ▼
   测试检查: bun run test
        │
        ▼
   Commitlint 检查 (提交格式)

提交格式

<type>(<scope>): <description>

类型: feat, fix, refactor, docs, test, build, ci, perf, style, chore
示例: feat(folder): add drag and drop support


⏳ 下一部分将介绍实战篇
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens