到这个Q结束, 真的就开发iOS一年了, 在从iOS开发菜鸟走向不那么菜的过程中, 现在进入到了一个比较迷茫的时期, 似乎没什么问题解决不了, 又似乎什么问题都解决不了。
2016年二季度工作计划
1 完成学习路线图的剩余部分, 力求对iOS开发无死角, 至少在和别人的交流上不会出现别人说了一个名词自己连听都没听过.(基础侧)
2 深入学习MVVM的VM数据绑定方式, 以最好的方式在项目中保证自己的代码可读性最高, 力求所有View上的代码可复用, 逻辑层的代码逻辑清晰代码简洁, 力求页面部分能清晰理出控制器的职责.
3 将学过的东西通过自己的项目(WeTogether)巩固加深理解, 做出一个有下载, 上传, 初具社交类软件规模的项目.(实战侧)
4 深入研究MJExtension和YYKit框架, 对runTime有更深的理解. 尝试写出protobuf协议解析的类似框架, 一行代码将PBModel转XXModel. (提升侧)
5 有时间学习下React Native.(忙里偷闲)
完成情况
1 除了一些真的很少用的比如iCloud,CoreImage框架, iPad开发外其他的都已经完成了学习的任务, 而且也在实际开发中能够熟练使用FMDB, AFN,Masonry这些框架, 不过对于一些低版本的系统, 可能这些框架还是存在这样或者那样的问题, 不过好在这些问题都已经解决了。完成度80%.
2 在多人团队合作开发的项目中有时候要把这里做好真的很难, 你不写很low的代码不代表别人不写, 你很难控制别人, 所以在逻辑层, 现在出现了这样的情况, 别人的代码都是手动解析协议, 而我使用MJExtension框架, 这样就造成了代码上的不美观, 但我不觉得我这里错了! 在View复用上, 由于业务的需要, 我封装了一些业务逻辑在控件里, 控件以异步的方式加载, 控件内部回去做网络请求, 实际上这样的业务控件较比那些通过model去设置view的控件用起来更方便, 加上Masonry的使用更好的发挥了这些控件的作用, 但是对于性能, 不知道会不会有所影响。 完成度90%.
3 当发现研究一些框架比实际做出些东西更有提升的时候, 这里又被忽略了。完成度 0%.
4 这里应该是最有成就的一块了, github上各种优秀的开源框架, 下图是我mac上存在的一些开源框架, 不是每个都细读了, 但至少每个我都看了。虽说深入研究, 但对于知识的纵向比对是欠缺的, 比如现在主流的MJ, YY, Mantle, 到底有什么区别, 还没仔细研读。完成度 95%.
5 这个也是被遗漏的角落, 在网上已经被吹的神乎其技的时候, 还是感觉这里学习成本可能有些高, 暂时还没入门, 只是大概看了下。完成度10%.
总的来说, 这是进入iOS开发以来最迷茫的一个Q, 中间做了公司的一个比较大的需求, 竭尽全力将学到的知识用到实际的项目中, 然而并没什么卵用啊, 还是很多人不理解你! 在学习上已然没有了早期阅读各位大大源码上的诸多困难, 基本上可以通过代码理解大大们的一些思想了, 但是一些gcd和宏还有runloop上的高端用法还不是很清楚。
为了消灭迷惘, 继续前行, 下面是2016年第三季度工作计划(全面提升学习深度):
1 必须完成React Native的入门学习, 不管多难多麻烦,一定要在这个Q结束前能够达到简单实战的效果。(必须完成的)
2 扫清gcd和宏还有runloop上的高端用法。项目中全面使用缓存策略, 对于有需要的数据, 进行写数据库操作, 普通数据必须先从内存上取, 没有才去请求网络, 虽然不差流量, 但也不能浪费用户的流量。(基础侧)
3 深入研究组件化, XMPP, HTTP2这些貌似很高大上实际也不是很麻烦的纸老虎。(技能学习侧)
4 研究各种可以提升性能的框架, 力求多少人用都不卡。(提升侧)
5 学习Swift的基本用法, 力求能看懂简单的语法。(忙里偷闲侧)