AFNetworking源码解析与面试考点思考
最近重读了AFNetworking 3.x的源码,算是温故而知新吧。也梳理了一些优秀的代码细节和面试考点,罗列下来,发现这个库小而精致,简直初学者的宝藏库。 开源库怎么看? 先说个题外话,阅读优质的开源代码库,绝对是程序员们快速提升自我的有效途径,而怎样高效率的去阅读源码同样也是一个问题,不知道有没有人和我之前一样,碰到过读倒是读了,但总感觉收获不大的情况。 这里分享一下我的一些读码经验: 多思考,多抛出问题,比如说 整体的代码结构是怎样的?类与类之间的关系是怎样的?为什么要这么设计? 代码有没有涉及到多线程,其线程模型是怎样的?哪类问题可以适用这种多线程的方案? 代码中使用了哪些设计模式?具体是怎么实现的? 也可以关注代码细节,遇到不熟悉的用法不要放过,多刨根究底才能夯实基础 关于 AFNetworking 的一些优秀代码细节,我这里也整理了一部分,可以查阅后文 一定要记笔记和总结,能分享更好。 参考费曼学习法,我认为这一点是最好的加深理解和强化记忆的手段。随着年龄的增大,记忆力会有所衰退,有个笔记能够回顾,能节约大把再次记忆的时间。此外,多与人分享还能够提升自己的影响力,与人交流验证,也能够为自己查缺补漏。 AFNetworking 3.x的代码结构 还是说回到 AFNetworking 这里,AF的代码结构大部分人应该都了解,这里我简单介绍下。 AFNetworking 3