docs: 添加项目开发规则和指南
This commit is contained in:
1 parent
8d949f3e37
commit
a9c59222a7
1 file changed
+49
@@ -0,0 +1,49 @@
|
|||||||
|
# 项目开发规则
|
||||||
|
|
||||||
|
## 核心原则
|
||||||
|
|
||||||
|
1. **渐进式开发优于大爆炸式开发**: 小步提交,每次都能编译通过和测试通过
|
||||||
|
2. **从现有代码学习优于重新发明**: 先研究和规划,再开始实现
|
||||||
|
3. **务实而非教条**: 适应项目实际情况
|
||||||
|
4. **明确意图优于聪明代码**: 选择简单明了的解决方案
|
||||||
|
5. Always respond in 中文,注释也一律使用中文
|
||||||
|
6. 不要过度设计,保证代码简洁易懂,简单实用
|
||||||
|
7. 写代码时,要注意复杂度,代码尽可能复用
|
||||||
|
8. 涉及到API的地方要遵循RESTful原则
|
||||||
|
|
||||||
|
## 新需求流程
|
||||||
|
|
||||||
|
1. **首次沟通不急于编码**: 当用户提出新需求时,先进行方案讨论
|
||||||
|
2. **使用图表**: 必要时绘制多个方案对比图,让用户选择最佳方案
|
||||||
|
3. **用户确认后再开发**: 只有用户明确确认方案后,才开始具体的开发工作
|
||||||
|
|
||||||
|
## 实施过程
|
||||||
|
|
||||||
|
1. **理解现有模式**: 研究代码库中的3个相似功能/组件
|
||||||
|
2. **识别通用模式**: 找出项目约定和模式
|
||||||
|
3. **遵循现有规范**: 使用相同的库/工具,遵循现有测试模式
|
||||||
|
4. **分阶段实现**: 将复杂工作分解为3-5个阶段
|
||||||
|
|
||||||
|
## 简约原则
|
||||||
|
|
||||||
|
1. 每个函数/类单一职责
|
||||||
|
2. 避免过早抽象
|
||||||
|
3. 不使用聪明技巧 - 选择简单解决方案
|
||||||
|
4. 如果需要解释就太复杂了
|
||||||
|
|
||||||
|
## 卡住时(关键规则)
|
||||||
|
|
||||||
|
最多尝试3次后必须停止:
|
||||||
|
|
||||||
|
1. 记录失败内容 (尝试了什么、具体错误、失败原因)
|
||||||
|
2. 研究替代方案 (找2-3个类似实现)
|
||||||
|
3. 质疑基本假设 (抽象层次对吗?能分解成更小问题吗?)
|
||||||
|
4. 尝试不同角度 (不同库/框架?不同架构模式?移除抽象?)
|
||||||
|
|
||||||
|
## 决策框架优先级
|
||||||
|
|
||||||
|
1. **可测试性** - 是否容易测试?
|
||||||
|
2. **可读性** - 6个月后还能理解吗?
|
||||||
|
3. **一致性** - 是否符合项目模式?
|
||||||
|
4. **简洁性** - 是否是最简单的可行方案?
|
||||||
|
5. **可逆性** - 后续修改的难度?
|
||||||
Reference in new issue
Block a user