第一部分主要讲了网络层应当如何跟业务层进行数据交互,进行数据交互时采用怎样的数据格式,以及设计时代码结构上的一些问题,诸如继承的处理,回调的处理,交互方式的选择,reformer的设计,保持数据可读性等等等等,主要偏重于设计(这可是艺术活,哈哈哈)。
第二部分讲了网络安全上,客户端要做的两点。当然,从网络安全的角度上讲,服务端也要做很多很多事情,客户端要做的一些边角细节的事情也还会有很多,比如做一些代码混淆,尽可能避免代码中明文展示key。不过大头主要就是这两个,而且也都是需要服务端同学去配合的。主要偏重于介绍。(主要是也没啥好实践的,google一下教程照着来就好了)。
第三部分讲了优化,优化的所有方面都已经列出来了,如果业界再有七七八八的别的手段,也基本逃离不出本文的范围。这里有些优化手段是需要服务端同学配合的,有些不需要,大家看各自情况来决定。主要偏重于实践。
有些地方还是做得不够好,比如拦截器和继承。而且当时的优化手段只有本地cache,安居客没有那么多IP可以给我ping,当年也没流行SPDY,而且API也还不支持HTTPS,所以当时的代码里面没有在这些地方做优化,比较原始。然而整个架构的基本思路一直没有变化:优先服务于业务方。另外,安居客的网络层多了一个service的概念,这是我这篇文章中没有讲的。主要是因为安居客的API提供方很多,二手房,租房,新房,X项目等等API都是不同的API team提供的,以service作区分,如果你的app也是类似的情况,我也建议你设计一套service机制。现在这些service被我删得只剩下一个google的service,因为其他service都属于敏感内容。