项目规划

项目规划

原文链接:https://aping-dev.com/index.php/archives/13/

1. 主体流程

1.1. 前期调研

  • 体验竞品功能,形成对竞品的初步认知。
  • 结合可用资源(如已有的 API)确定产品需实现的功能。
  • 列出功能的利弊,形成功能调研文档。

1.2. 概要设计

  • 列出功能点,描述总体流程。
  • 使用流程图、时序图、架构图、交互图进行说明。
  • 实现基础框架和各模块之间的交互接口。

1.3. 详细设计

  • 将各模块功能分配给负责人,必要时进一步调研并给出详细设计。
  • 细化各功能点,列出多种实现方案及其利弊。
  • 涉及产品决策时,需及时与产品沟通。
  • 调用第三方接口时,需充分调研其行为。
  • 设计数据库表时,根据 SQL 语句设计索引,并使用 EXPLAINSHOW PROFILES 等进行验证。
  • 涉及状态转换时,绘制状态图并考虑各种状态冲突。
  • 考虑各种异常情况,如并发、程序崩溃、数据库错误、消息队列消息丢失等,并设计相应的重试机制和幂等处理。
  • 在操作资源前,判断资源是否存在、状态是否正常等。

1.4. 技术评审

  • 各模块负责人完成详细设计后,进行技术评审,讨论实现方案,及时发现方案的不足。
  • 模块负责人需提前准备方案的利弊分析,并参考评审意见形成最终决策。
  • 交流时,需从基本信息开始讲述,不假设参与者已知相关内容。

1.5. 开发

  • 开发过程中注意抽象相似的函数或模块,避免重复改动,便于后续开发。
  • 遵循约定的编程规范。
  • 设计变动时,及时同步更新文档,方便协作。

1.7. 代码 Review

  • 代码 Review 是一项辛苦的工作,需感谢提出意见的同事。

1.8. 测试

  • 单元测试:使用 Python 的 unittest.TestCase 对各个单元进行测试,保持测试代码的整洁。
  • 模块自测:包括接口参数、功能、内部逻辑测试,可使用 Postman 进行 API 测试,保持测试代码的整洁。
  • 交叉测试
    1. 了解对方模块的功能,通过文档或面谈。
    2. 自行设计,比较与模块负责人的差异,审视彼此的缺陷考虑,有助于提升。
    3. 模块负责人修复交叉测试的 Bug 后,需对涉及的接口进行回归测试,防止引入新的 Bug。
  • 集成测试:对整个系统进行测试,确保各模块协同工作正常。

1.9. 上线

  • 项目打包、部署,进行灰度上线。

1.10. 内测

  • 专门的测试人员对上线项目进行测试,及时发现问题。

1.11. 公测 & 运营

  • 向用户提供优惠活动,吸引用户体验并反馈问题。
  • 产品经理撰写文案,介绍产品特点、优势,为产品造势。

1.12. 项目回顾

  • 总结项目中的良好实践,形成经验积累,在未来项目中推广。

2. 并行流程

2.1. 人力预估

  • 对投入的人力进行大致估计,随着项目进展,可能需要调整。

2.2. 行为规范

  • 提前告知开发人员需遵循的规范,包括:
    • 编程规范,如编码风格约定。
    • 各类文档撰写规范,包括需求文档、实现文档、接口文档、测试文档等。

2.3. 进度预估

  • 包括总体项目完成时间、各阶段完成时间、各模块负责人对各自模块完成时间的预估,及时发现风险点。

2.4. 资源申请

  • 申请所需资源,如域名、运维机器、配额等。

2.5. 进度对齐

  • 在约定的时间点进行进度对齐,及时发现风险点。

标签: none

添加新评论