1. 确认需求
    1. 思考需求的功能性,复杂性,可行性,周期性。。。
  2. 迭代的思想
    1. 快速定位产品的核心功能,去除细枝末节,用最短的时间开发第一代产品
    2. 如何定位核心的功能
      1. 产品的目标是什么?核心用户是谁?应用的场景?
  3. 功能的实现
    1. 任务拆解,拆分产品的最小功能
    2. 需要解决最短时间可完成的功能
    3. 最快的可扩展性的代码实现基本的功能
    4. 对于需要可能频繁变更的功能增加扩展性吗,同样的功能复用性
    5. 遵循DRY(Don’t Repeat Yourself)原则
  4. 数据库设计
    1. 表名称,字段名称清晰易读
    2. 每张表独立职责,不存储无关的信息,相关信息放一张表
    3. 长文本和短文本存储分离
    4. 当前数据和历史数据分离
    5. 设置合适的索引
    6. 不使用关联查询
      1. 如果数据量大的时候,为了扩展,需要分库,这样无法join
    7. 删除数据,逻辑删除
  5. 技术方案文档编写
    1. 系统设计
    2. 流程设计
    3. 任务调度设计
    4. 。。。
  6. 代码质量保证
    1. code review
    2. 单元测试
    3. 自动化测试