
关于
持续改进、防错和标准化指南。适用于用户希望提升代码质量、重构或讨论流程改进时使用
name: kaizen description: "持续改进、防错和标准化指南。当用户想要提升代码质量、重构或讨论流程改进时使用此技能。" risk: unknown source: community date_added: "2026-02-27"
Kaizen:持续改进
概述
小步改进,持续进行。从设计阶段就防错。遵循有效的方法。只构建需要的东西。
核心原则: 许多小改进胜过一次大变更。在设计时预防错误,而不是事后修复。
何时使用
始终应用于:
- 代码实现和重构
- 架构和设计决策
- 流程和工作流改进
- 错误处理和验证
理念: 通过渐进式进步和预防来实现质量,而非通过大量努力追求完美。
四大支柱
1. 持续改进 (Kaizen)
小而频繁的改进会累积成重大收益。
原则
渐进优于革命:
- 做出能提升质量的最小可行变更
- 一次一个改进
- 在下一步之前验证每个变更
- 通过小胜利建立动力
始终让代码变得更好:
- 遇到小问题时随手修复
- 工作时进行重构(在范围内)
- 更新过时的注释
- 看到死代码时删除它
迭代精炼:
- 第一版:让它能工作
- 第二遍:让它清晰
- 第三遍:让它高效
- 不要试图一次完成所有三步
// Iteration 2: Make it clear (refactor) const calculateTotal = (items: Item[]): number => { return items.reduce((total, item) => { return total + (item.price * item.quantity); }, 0); };
// Iteration 3: Make it robust (add validation) const calculateTotal = (items: Item[]): number => { if (!items?.length) return 0;
return items.reduce((total, item) => { if (item.price < 0 || item.quantity < 0) { throw new Error('Price and quantity must be non-negative'); } return total + (item.price * item.quantity); }, 0); };
每一步都是完整的、经过测试的、可工作的
</Good>
<Bad>
```typescript
// Trying to do everything at once
const calculateTotal = (items: Item[]): number => {
// Validate, optimize, add features, handle edge cases all together
if (!items?.length) return 0;
const validItems = items.filter(item => {
if (item.price < 0) throw new Error('Negative price');
if (item.quantity < 0) throw new Error('Negative quantity');
return item.quantity > 0; // Also filtering zero quantities
});
// Plus caching, plus logging, plus currency conversion...
return validItems.reduce(...); // Too many concerns at once
};
过于复杂,容易出错,难以验证 </Bad>
实践中
实现功能时:
- 从能工作的最简版本开始
- 添加一个改进(错误处理、验证等)
- 测试和验证
- 如果时间允许则重复
- 不要试图立即使其完美
重构时:
- 一次修复一个代码异味
- 每次改进后提交
- 全程保持测试通过
- 在"足够好"时停止(收益递减)
代码审查时:
- 建议渐进式改进(而非重写)
- 优先级:关键 → 重要 → 锦上添花
- 首先关注影响最大的变更
- 接受"比之前更好"即使不完美
2. Poka-Yoke(防错)
设计在编译/设计时就能防止错误的系统,而非运行时。
原则
使错误不可能发生:
- 类型系统捕获错误
- 编译器强制执行契约
- 无效状态不可表示
- 尽早捕获错误(在生产之前)
为安全而设计:
- 快速且明显地失败
- 提供有帮助的错误消息
- 使正确路径显而易见
- 使错误路径困难
分层防御:
- 类型系统(编译时)
- 验证(运行时,尽早)
- 守卫(前置条件)
- 错误边界(优雅降级)
类型系统防错
<Good> ```typescript // Error: string status can be any value type OrderBad = { status: string; // Can be "pending", "PENDING", "pnding", anything! total: number; };// Good: Only valid states possible type OrderStatus = 'pending' | 'processing' | 'shipped' | 'delivered'; type Order = { status: OrderStatus; total: number; };
// Better: States with associated data type Order = | { status: 'pending'; createdAt: Date } | { status: 'processing'; startedAt: Date; estimatedCompletion: Date } | { status: 'shipped'; trackingNumber: string; shippedAt: Date } | { status: 'delivered'; deliveredAt: Date; signature: string };
// Now impossible to have shipped without trackingNumber
类型系统防止了整类错误
</Good>