#郑爽回应#这起“代孕”事件发生后,因为郑爽“弃养”有违社会公序良俗而备受批评,郑爽目前的局面可以说是受到了近乎“一边倒”的谴责。但从对舆情的应对能力看,其背后似乎没有一个稍有智慧的团队。
大家可以看看郑爽的这个回应,200多个字,都写不通顺,弄得好像是英语回应,一个汉语不够精通的人,翻译出来的汉语作品一样。
断断续续看到其父亲的一些音频,感觉这一家子都比较“够呛”。当然,郑爽的父亲“护女”心切,在一定程度上还是可以理解的。
大家可以看看郑爽的这个回应,200多个字,都写不通顺,弄得好像是英语回应,一个汉语不够精通的人,翻译出来的汉语作品一样。
断断续续看到其父亲的一些音频,感觉这一家子都比较“够呛”。当然,郑爽的父亲“护女”心切,在一定程度上还是可以理解的。
#郑爽回应# 这起“代孕”事件发生后,因为郑爽“弃养”有违社会公序良俗而备受批评,郑爽目前的局面可以说是受到了近乎“一边倒”的谴责。但从对舆情的应对能力看,其背后似乎没有一个稍有智慧的团队。
大家可以看看郑爽的这个回应,200多个字,都写不通顺,弄得好像是英语回应,一个汉语不够精通的人,翻译出来的汉语作品一样。
断断续续看到其父亲的一些音频,感觉这一家子都比较“够呛”。当然,郑爽的父亲“护女”心切,在一定程度上还是可以理解的。
大家可以看看郑爽的这个回应,200多个字,都写不通顺,弄得好像是英语回应,一个汉语不够精通的人,翻译出来的汉语作品一样。
断断续续看到其父亲的一些音频,感觉这一家子都比较“够呛”。当然,郑爽的父亲“护女”心切,在一定程度上还是可以理解的。
图中这个生产事故,看起来是git导致的,看起来是员工的问题,看起来把他开除了就万事大吉了。然而在我看来,以后如果不改进开发和发布流程,以后还可能会出现类似的问题,哪怕精通git。
这个生产事故,首先要分成两个问题来分析:
一个是git的开发流程是不是有问题?
另一个就是生产环境发布的流程是不是有问题?
我们先来看git的开发流程:“不会使用git,乱提交,乱合并分支、把别人的代码搞不见了,把分支、版本搞乱了。”
这个问题虽然这个操作的同学有问题,但是在我看来这个项目组甚至这个公司的项目管理存在大的问题。
我们组经常会有新人加入,部分新人进来之前可能都没用过git,新人加入第一个任务,都是有老司机带着操作:怎么在git开分支?怎么写commit的message?怎么开PR?一步步操作一遍,以后照葫芦画瓢就好了。记不住还有操作手册可以查询,可以随时问。
另外我们的开发流程也是基于标准的github flow,https://t.cn/A65AFkdt 一般没有人会去操作其他人的分支,每个人在做某个任务的时候都是在单独的分支操作,出了问题也不会影响其他人。
代码要合并,也要先有代码审查,要有人审查通过才允许合并,这可以减少很多人为错误。
我们的git权限是完全开放的,组员都有权限去合并、删除分支,也出现过force commit导致覆盖master代码的问题,但是git是分布式的,只要有一个人机器上有最新的代码,就能同步回去,另外每次版本发布,都有打tag,通过tag就可以很方便的恢复。
所以说,只要你流程合理,有适当的培训,是不用担心这种问题出现的,也不需要每个人都精通git。
然后再说生产环境上线的问题。生产环境的发布,是一个很严肃的事,不是什么代码都能往上面放的。在发布之前,起码要先部署测试环境测试一遍吧?在部署测试环境后,起码要跑一遍自动化测试吧?
像我们的系统,都有比较好的自动化测试覆盖,首先在每一次代码commit、每一次合并代码,CI都会跑自动化测试,自动化测试跑不过的话,是不能合并的,更不能部署测试环境的。这种GIT代码合并错了不太可能部署到测试环境的,因为自动化测试这一关就过不了。
如果没有自动化测试代码,那么在部署生产环境之前,至少应该有QA验收一下吧,如果QA验收一下,很多问题也能在部署之前发现。
最后在上线后,也应该有合理的监控手段,一有问题马上自动触发报警,马上回滚或者修复。
我们的系统对于一些关键的指标都有实时的监控,设置阈值,超过阈值就报警。比如说如果我们服务在短时间内404/500错误超过一定比例,会马上触发报警,oncall的同事会第一时间手机收到电话和短信报警,那么就要马上上线解决,不至于酿成很大的事故。
所以如果能梳理好一个好的上线发布监控流程,这样的问题基本上可以避免,就算出现问题,也能第一时间处理,避免升级成更大问题。
#软件工程之美#
这个生产事故,首先要分成两个问题来分析:
一个是git的开发流程是不是有问题?
另一个就是生产环境发布的流程是不是有问题?
我们先来看git的开发流程:“不会使用git,乱提交,乱合并分支、把别人的代码搞不见了,把分支、版本搞乱了。”
这个问题虽然这个操作的同学有问题,但是在我看来这个项目组甚至这个公司的项目管理存在大的问题。
我们组经常会有新人加入,部分新人进来之前可能都没用过git,新人加入第一个任务,都是有老司机带着操作:怎么在git开分支?怎么写commit的message?怎么开PR?一步步操作一遍,以后照葫芦画瓢就好了。记不住还有操作手册可以查询,可以随时问。
另外我们的开发流程也是基于标准的github flow,https://t.cn/A65AFkdt 一般没有人会去操作其他人的分支,每个人在做某个任务的时候都是在单独的分支操作,出了问题也不会影响其他人。
代码要合并,也要先有代码审查,要有人审查通过才允许合并,这可以减少很多人为错误。
我们的git权限是完全开放的,组员都有权限去合并、删除分支,也出现过force commit导致覆盖master代码的问题,但是git是分布式的,只要有一个人机器上有最新的代码,就能同步回去,另外每次版本发布,都有打tag,通过tag就可以很方便的恢复。
所以说,只要你流程合理,有适当的培训,是不用担心这种问题出现的,也不需要每个人都精通git。
然后再说生产环境上线的问题。生产环境的发布,是一个很严肃的事,不是什么代码都能往上面放的。在发布之前,起码要先部署测试环境测试一遍吧?在部署测试环境后,起码要跑一遍自动化测试吧?
像我们的系统,都有比较好的自动化测试覆盖,首先在每一次代码commit、每一次合并代码,CI都会跑自动化测试,自动化测试跑不过的话,是不能合并的,更不能部署测试环境的。这种GIT代码合并错了不太可能部署到测试环境的,因为自动化测试这一关就过不了。
如果没有自动化测试代码,那么在部署生产环境之前,至少应该有QA验收一下吧,如果QA验收一下,很多问题也能在部署之前发现。
最后在上线后,也应该有合理的监控手段,一有问题马上自动触发报警,马上回滚或者修复。
我们的系统对于一些关键的指标都有实时的监控,设置阈值,超过阈值就报警。比如说如果我们服务在短时间内404/500错误超过一定比例,会马上触发报警,oncall的同事会第一时间手机收到电话和短信报警,那么就要马上上线解决,不至于酿成很大的事故。
所以如果能梳理好一个好的上线发布监控流程,这样的问题基本上可以避免,就算出现问题,也能第一时间处理,避免升级成更大问题。
#软件工程之美#
✋热门推荐