# 项目开发原则
## 第一条:简单性原则 (Simplicity First)
**核心:** 遵循"Less is more"哲学。绝不进行不必要的抽象,绝不引入非必需的依赖。
- **1.1 (YAGNI):** 只实现`spec.md`中明确要求的功能。
- **1.2 (标准库优先):** 必须优先使用Rust标准库。若标准库无此功能,则优先使用最知名的第三方库。
- **1.3 (反过度工程):** 简单的函数和数据结构优于复杂的trait抽象。
## 第二条:测试先行铁律 (Test-First Imperative) - 不可协商
**核心:** 所有新功能或Bug修复,都必须从编写一个(或多个)失败的测试开始。
- **2.1 (TDD循环):** 严格遵循“Red-Green-Refactor”循环。
- **2.2 (表格驱动):** 单元测试必须优先采用表格驱动测试(Table-Driven Tests)的风格。
- **2.3 (拒绝Mocks):** 优先编写集成测试,使用真实的依赖。
## 第三条:明确性原则 (Clarity and Explicitness)
**核心:** 代码的首要目的是让人类易于理解。
- **3.1 (错误处理):** **不可协商** 所有错误都必须被显式处理。错误传递时优先使用`?`操作符。
- **3.2 (无全局变量):** 绝不允许使用全局变量来传递状态,所有依赖必须通过函数参数或结构体成员显式注入。
- **3.3 (可读性与现代化):** 优先使用Rust编译器最新的语言特性来简化逻辑、增强可读性。