作为一名技术人员,不断地追求代码的质量是前进的不竭动力. 有时候人需要再逼一下自己!
2016年一季度工作计划
1 提升对iOS的工作原理的基本认识,至少在某一方面(性能,底层runTime,runLoop工作原理,动画)有超过别人的能力.
2 工作再忙也要抽时间写blog,总结自己近一段时间的得失.
3 研究项目架构MVC,MVVM模式的区别,并将公司的项目融入到更好的模式中,让代码变得简单.
4 对于自己手里写出的代码,力求严谨,对以前不好的实现方式进行改进.
完成情况
1 完成目标, 对iOS的工作原理有一定的了解, 当看技术大牛的博文的时候再也不会因为runTime, runLoop, KVC/KVO这些晦涩的名字所吓倒, 并能够使用Instruments在项目中实战检测内存泄露及CPU消耗过多的地方,并对代码进行优化.
2 基本完成, 由于时间有限, 不能面面俱到的将所有工作细节搬进blog, 但对于KVO, 单例, copy等这些平时很少用到的东西能够通过demo的形式去理解.
3 浅尝辄止, 在工作中,尝试用ViewModel对ViewController进行瘦身, 但这里做的还是不够好, 由于对原代码本身工作方式了解不够透彻,导致代码虽然节俭了些,但是却多出一些bug, 自己还不够强大, 无法一个人完成无缝无bug的代码迁移.
4 非常好, 不仅将自己代码中的问题进行了改进, 还把其它看着恶心的代码也改了.
工作之余, 通过学习下面的路线图
这份路线图的上半部分已经学习完了, 开始觉得这些基础的东西没什么, 不太重视, 但是实际开发中, 如果对这些基础的东西不够了解, 就会造成疑惑, 单说@property这东西, 就可以学一天了.
总的来说这是收获颇丰的一季, 从无知到知道如何去学习iOS, 学习使用开源框架(MJExtension, SDWebImage, AFNetworking, Masonry), 学习使用XCode插件(KSImageNamed, VVDocumenter, ESJsonFormat). 从懒得敲代码(其实连基础都不牢靠, 写起代码到处都是问题)到遇到问题自己写demo来查问题, 从iOS门外汉到可以和微博,gitHub上的大牛问一问,你的框架怎么用,为什么要这么用,还有什么bug. 有很多大牛都是90后, 感觉压力好大.
这里附上这一季对我影响重大的大牛的微博或者gitHub的地址
1 李明杰(小码哥教育的创始人, 曾在传智讲课, MJExtension, MJRefresh的作者) 李明杰新浪微博
2 叶孤城(不知道真名叫什么, 经常会分享些高质量的文章, 在微博上很活跃) 叶孤城新浪微博
3 唐巧(猿题库iOS开发, 感觉很牛的一个人, 写的文章层次都很深, 搞iOS很久的样子, 对iOS一些基本原理有很独到的见解) 唐巧博客
4 戴铭(滴滴iOS开发, GitHub上有关于Autolayout和MVVM的demo, 感觉是对技术有很高追求的人,不人云亦云, 专心做自己的技术) 戴铭新浪微博
5 郭曜源(一位90后的iOS开发, 好像搞iOS也没很久, 网名ibireme, YYKit的作者, 就职于优酷土豆) 郭曜源博客
其实活跃的大牛圈子还是很小的, 可以通过一个找到另外一个, 而且他们很多都是互相关注, 有东西互相转发的, 但更多的大牛是隐匿在GitHub上的老外, 从GitHub上和他们issue上看, 他们不仅技术牛,而且都很谦虚.
为了成为低调奢华有内涵还谦虚的大牛, 下面是2016年第二季度工作计划(路还是要一步一步走的):
1 完成学习路线图的剩余部分, 力求对iOS开发无死角, 至少在和别人的交流上不会出现别人说了一个名词自己连听都没听过.(基础侧)
2 深入学习MVVM的VM数据绑定方式, 以最好的方式在项目中保证自己的代码可读性最高, 力求所有View上的代码可复用, 逻辑层的代码逻辑清晰代码简洁, 力求页面部分能清晰理出控制器的职责.
3 将学过的东西通过自己的项目(WeTogether)巩固加深理解, 做出一个有下载, 上传, 初具社交类软件规模的项目.(实战侧)
4 深入研究MJExtension和YYKit框架, 对runTime有更深的理解. 尝试写出protobuf协议解析的类似框架, 一行代码将PBModel转XXModel. (提升侧)
5 有时间学习下React Native.(忙里偷闲)