项目规划
原文链接:https://aping-dev.com/index.php/archives/13/
1. 主体流程
1.1. 前期调研
- 体验竞品功能,形成对竞品的初步认知。
- 结合可用资源(如已有的 API)确定产品需实现的功能。
- 列出功能的利弊,形成功能调研文档。
1.2. 概要设计
- 列出功能点,描述总体流程。
- 使用流程图、时序图、架构图、交互图进行说明。
- 实现基础框架和各模块之间的交互接口。
1.3. 详细设计
- 将各模块功能分配给负责人,必要时进一步调研并给出详细设计。
- 细化各功能点,列出多种实现方案及其利弊。
- 涉及产品决策时,需及时与产品沟通。
- 调用第三方接口时,需充分调研其行为。
- 设计数据库表时,根据 SQL 语句设计索引,并使用
EXPLAIN
、SHOW PROFILES
等进行验证。
- 涉及状态转换时,绘制状态图并考虑各种状态冲突。
- 考虑各种异常情况,如并发、程序崩溃、数据库错误、消息队列消息丢失等,并设计相应的重试机制和幂等处理。
- 在操作资源前,判断资源是否存在、状态是否正常等。
1.4. 技术评审
- 各模块负责人完成详细设计后,进行技术评审,讨论实现方案,及时发现方案的不足。
- 模块负责人需提前准备方案的利弊分析,并参考评审意见形成最终决策。
- 交流时,需从基本信息开始讲述,不假设参与者已知相关内容。
1.5. 开发
- 开发过程中注意抽象相似的函数或模块,避免重复改动,便于后续开发。
- 遵循约定的编程规范。
- 设计变动时,及时同步更新文档,方便协作。
1.7. 代码 Review
- 代码 Review 是一项辛苦的工作,需感谢提出意见的同事。
1.8. 测试
- 单元测试:使用 Python 的
unittest.TestCase
对各个单元进行测试,保持测试代码的整洁。
- 模块自测:包括接口参数、功能、内部逻辑测试,可使用 Postman 进行 API 测试,保持测试代码的整洁。
- 交叉测试:
- 了解对方模块的功能,通过文档或面谈。
- 自行设计,比较与模块负责人的差异,审视彼此的缺陷考虑,有助于提升。
- 模块负责人修复交叉测试的 Bug 后,需对涉及的接口进行回归测试,防止引入新的 Bug。
- 集成测试:对整个系统进行测试,确保各模块协同工作正常。
1.9. 上线
1.10. 内测
1.11. 公测 & 运营
- 向用户提供优惠活动,吸引用户体验并反馈问题。
- 产品经理撰写文案,介绍产品特点、优势,为产品造势。
1.12. 项目回顾
- 总结项目中的良好实践,形成经验积累,在未来项目中推广。
2. 并行流程
2.1. 人力预估
- 对投入的人力进行大致估计,随着项目进展,可能需要调整。
2.2. 行为规范
- 提前告知开发人员需遵循的规范,包括:
- 编程规范,如编码风格约定。
- 各类文档撰写规范,包括需求文档、实现文档、接口文档、测试文档等。
2.3. 进度预估
- 包括总体项目完成时间、各阶段完成时间、各模块负责人对各自模块完成时间的预估,及时发现风险点。
2.4. 资源申请
2.5. 进度对齐