本周工作思考
- 本周的主要工作是围绕着功能可靠性来做优化和调整,既包括了前端的功能,也包括了后端服务的功能,站在全栈的角度,以业务为支点会发现和学会一些以前不曾注意到的点。以接口粒度设计为例,如果以API设计原则或者微服务设计原则来看,接口粒度宜小不宜大,但是从全流程来看,大接口也有不少好处,如可控的异常处理,减少了接口出错的可能,报错兜底简单,监控也比较简单,流程也变成简单了。录制上传涉及到10左右的接口,有的需要相关依赖,有的需要并发,如果每个接口都是99.9%的可靠性,整个功能的可靠性为99%,但是如果每个接口是99.0%的可靠性,那么就会变为90%,所以这种情况每个接口的可靠性非常重要,同时前端在处理这些异步接口时,对每个接口采用异常上报 +重试的可靠性保障变得非常困难,如果要重试,整个流程的相关接口都要重新一次,就可能会涉及带非幂等的排查,如果针对单一接口的重试,又会涉及到延时和排队的问题。多接口处理让功能的复杂性直线上升,这非常考验前端的设计能力,也就是如何管理这些接口。 所以从这个角度说,接口可以适当的大一些,不要太小粒度,初始设计,能在一个接口的尽量在一个接口,在迭代中进行拆分,业务扩展,性能优化都可以触发解决的拆分,这类先总后拆的方式我认为好于先拆后总的方式。