在公司里面开发的情景通常是在本机写好代码,然后部署到开发机上再和别人联调。之前用的办法是每次写好代码,都 push 到自己的分支上,然后 SSH 到开发机,切到 tmux,切换分支,拉一下代码,然后再用 vim 手动把运行配置改为 test,再启动服务,真是太麻烦了!

上面的方法除了麻烦,还有就是如果想要测试某个功能的时候都要 commit push,当合并到 master 分支之后无疑会增加很多垃圾的 commits。

这时候就想到可以实用 rsync 来把代码同步到开发机上,自己手动写脚本每次改完运行一次还是太麻烦,于是就在 PyCharm 上找了一下有没有类似的功能,果然这么实用的功能强大的 PyCharm 肯定早就集成好了,需要在设置里面配置一下就可以了:

别忘了把 Deployment Options 再设置一下,避免每次手动点上传:

这样开发流程就变成了这样:

  1. 接到需求,根据单子建立自己的分支
  2. 编写代码
  3. 开发完毕后同步到开发机上进行测试,没问题了之后提交 commit
  4. 和其他端的同学联调进行测试,有问题回到 2,没问题继续下一步
  5. 找人 Review 代码,没问题了之后申请合并到 Master 分支
  6. 部署到测试环境,提请测试
  7. 测试不通过回到 2,没问题继续下一步
  8. 部署到灰度环境,提请测试
  9. 测试不通过回到 2,没问题继续下一步
  10. 申请上线
  11. 线上回测,测试不通过回到 2,没问题就万事大吉啦!

可以看出开发一个需求的周期还是挺长的,不过因为流程比较规范,可以很大程度上避免线上的重大事故。而之前在一家创业公司实习的时候,因为人手和时间的限制,基本上是自己写完代码测试一下,然后给 leader review 了之后就合并到 master 发布了,基本上每天一个小版本的迭代速度,虽然保证了开发速度,但是质量却不能保证,所以线上存在着很多 bug,不过这也是小公司没办法的地方,早期必须快速作出产品才行。