owner 选择

  • 要区分出执行者(码农)和owner,owner能关注业务,持续迭代与重构,码农需要不断等指令输入
  • 对owner的培养:业务熟悉/关键节点check(规划/排期/人员安排/系统稳定性sla)

对业务方

如果问题持续由业务方反馈过来,系统一定有问题,一定要花时间找出来,给业务方交待

重构

  • 重构第一版一定是在100%兼容老业务的基础上行动,兼容是第一优先级,兼容也是为了理解业务
  • 区分重构和重写:重构是小步快跑,随时可以切换,重写是一刀切
  • 一开始就要定好切换方案

ddd

  • 降低系统复杂度效果极其明显
  • 划分好领域:有独立输入输出的模块,都可以当做领域来处理,对外屏蔽细节
  • 领域的主键:能唯一标识域内的数据,比如logistic是logistic_id,express是express_id+tracking_num
  • 领域的交互:尽早集成+先把交互定义好
  • 领域与子域的交互:区分边界,让不同域处理好对应的事,比如express域下的channel子域,在快递鸟channel的notify处理上

项目管理

  • 明确排期/交付标准/责任
  • 文档也要交付
  • 编码的排期只占30%,理解业务/设计/规划/文档/自测/上线后check

开发

  • 定义好规范,约定大于配置,形成统一的语言,减少沟通成本
  • 快速迭代,快速上线,粒度不要超过一天,快速检查开发的功能是否有问题
  • 极简设计,对外屏蔽一切细节,外部只关注输入和输出

监控

  • 一定要做到比业务方先发现问题
  • 业务整体指标>领域间>领域内