今天是2016年晚上9点,拖了大半天,终于打开电脑开始写一下今年的总结。总结主要分成两个部分,对2016年计划完成部分的总结和自己成长变化的记录,还有就是2017年的计划。

2016年3月份,我所在的公司因为运营不佳,然后我们这一帮小伙伴被迫从公司集体离职了,很是突然,也反映了创业的艰辛。
离职之后,我并没有什么沮丧,而是在家里面积极准备学习,打算这一次去BAT试试。在这两周里面,我的状态很好,热情很高,将iOS高级编程那本书从头看一遍,对GCD、ARC、Block、NSOperation又有了更深刻的认识,同时也对Runtime重新学习了一遍。

不过,在面试之前,我的同学让我去他公司,然后把我说服了,我就去了他的公司。

不过,在入职之后,我接到了阿里的面试,然后去了面试,当然结果怎么样,我都没打算去的。面试的是阿里文学,在五道口。面试的过程,是一个年龄比我大的哥们,他问了我一些以前做过的东西,然后又问了一些技术我会不会,基本模式就是:你会xxx么?我答:会(或者不会)。感觉整个过程,两个人找不到一个点,深入讨论,达到共鸣。最后,当然是没戏了。(汗!一轮都没过?)整个面试过程中,我印象很深刻的是,第一是Runtime、Runloop、GCD、NSOperation这些主流的内容咋都没问?或者是不是我应该引导面试官去问?第二是其中面试官问了Pop用过没?Core Graphics用过没?我当时一下没反应过来,说没用过。面试回来之后,后来才知道Core Graphics是个什么,这我不是经常用的么?怎么当时对这个名词一点印象都没有。然后又一想,我如果是面试官,这个东西都不知道,鬼才让他过呢。

好吧,面试咱们就说到这里,下面继续。

进入了新的公司之后,我第一个事情就是一个月开发安卓版的两个app(iOS的时候,已经外包给我们做了)。当然,我不是用原生开发,而是用ReactNative来进行开发,这个我前面陆陆续续学了两个月左右。汗,当时我对ReactNative是没有真正用在项目里面过的,只是在学习过程中,感觉自己基本的东西都会了,做个项目也是不成问题。

真正做的时候,才发现,原来的想法是多么美好的。首先就是我对安卓不是很了解,对其中的一些配置都不太会。例如对当前开发项目添加依赖的Module,琢磨了半天都没搞出来,后来还是通过问朱冬和网上查资料才搞定的,一个小小的问题,将我挡在门外一两天。后来,又陆续碰到一些问题,好在有以前的前同事的帮助,都磕磕碰碰迈过去了,这里很感谢朱冬和豹,多谢他们的帮助才迈过去的。

这里就说下ReactNative开发的感受吧,它开发调试起来特别快,比原生iOS开发快很多。但是,它也有一个致命的问题,那就是很多原生组件都没有。其中,我就专门开发了一个友盟的推送react-native-umeng-push,用来实现我们的推送。但,若是一个纯前端人员,他们怎么办?自己学?等着别人开发出来?当然,这个致命问题,随着时间推移,原生组件越来越多,就会好很多。

开发完app之后,测试之后,然后上线。

上线之后,我就没事干了?当然不是,我开始了另一项任务。

我来公司的第二个事情就是将公司接口框架整一下。当时和小伙伴讨论一两周,最后确定了接口的框架,然后由我来实现。这里说一下,我们公司的接口框架是php语言的CI+codeigniter-restserver。我主要做了下面一些事情,一是将接口建立了开发环境和生产环境,将它们的配置完全分开,用一个配置来进行控制;二是实现了一个数据转换类,让以前一大堆switch解放出来,使开发接口变的简单;三是封装数据库类,使操作数据库更方便;四是封装一些公共方法、整合第三方库,例如统一的数据返回方法、参数检查方法、数组操作、短信发送等。

当然,在后期开发过程中,我陆续完善了一些东西,可以说这个框架也是经过了几个版本,现在算是稳定了。当然,使用过程,现在还存在一些问题,后期要是有时间,还需要改善。

我来公司的第三个事情就是微信公众号开发,当时公司申请了一个服务号,需要做一个深水炸弹的项目。然后我研究了大概一周的时间,将微信公众号中我们需要的功能实现了一遍,做了一个demo出来。后来,在这个demo的基础上,我们实现了整个项目。当然,整个实现逻辑是我来做的,接口也是我做得,前端是前端的小伙伴实现的。当然,其实我也算是参与了前端开发,因为我在前端的代码中添加了微信分享的代码,共同调试了微信登录的流程。后来,前端小伙伴离职了,我重新开发了第二版本,这个版本主要是前端界面的开发。

我来公司做的第四件事情就是前端开发,当时缺乏开发人员,我和同学一个去开发接口,另外一个开发前端,然后让我选择,然后我选择了前端,刚好需要学习,2016年的计划就有这里面一个。然后,开始从Angular官网的教程开始学习,看代码,还有就是看看《用AngularJS开发下一代Web应用》,大概一周的样子吧,然后开始参与项目,开始做了起来。前期做的时候,对Angular了解稍微多点,写一些JS逻辑代码是没有问题的,但是对html、css却是了解甚少,还不太会写页面。好在有些页面都很类似,然后将前面同事的代码搞过来,边改边学边写,这样进行起来。后来,陆陆续续真正的知道前端怎么开发,知道了标签的使用,知道如何使用bootstrap,知道了CSS的使用,现在写一些基本的页面已经没什么问题了,没有以前看到一个页面完全不会下手的窘迫。当然,这个过程中,Angular的官方文档没少看,ui-router中的官方文档也没少看。很值得一提的是,最近,鉴于我们开发中一些存在的一些问题,我研究了webpack,然后引入了webpack。还需要提的是,现在开发处于快速迭代的过程中,短短三个月时间,我们已经迭代了6个版本了,每1到2周一个版本。

所以,2016年在新的公司共做了四个事情:

  • app开发
  • 前端接口框架搭建和开发
  • 微信公众号开发
  • 前端网站开发

聊了在公司做了的事情,再聊聊我们团队吧。我们团队都很年轻,很有激情很有干劲,整个氛围都很好。每周,我们都有分享会,当然不仅仅局限于技术。每周,我们都有写周报,对上周工作做的好、不好的地方、需要改进的地方以及需要帮助地方总结,起初我是非常拒绝的,感受特别不好的,但是做着做着,我发现我喜欢上了,每周回顾下上周所做的工作啊,反思一下上周哪些地方做的不好,然后需要怎么改进,当然最喜欢的就是强行找一个优点来称赞自己,让自己信心十足,哈哈。除了我们团队,有个人必须的提一下,就是我们的“鼓励师”,她的加班精神真是没得说(一周休息个半天吧),让我很佩服,借用一句话,沉迷挣钱无法自拔。

除了工作中的事情,稍微说下生活中的事情吧。

六七月份的时候,大家各自奔波,大彭离开了北京,回了湖南;刘应去了东北出差等。然后,我们本来租了个五居室就这样解散了,我们搬入了北土城一个老的房子中。老房子问题多,厕所漏水、下水道堵住、电路有问题,以前住的新房子从来没有这种问题。不过,搬家了,离公司比较近,女朋友也离公司比较近,所以总体上还不错,女朋友再也不用起那么早了,那么累了。

除了这些,2016年经同学介绍,我下载了“得到”app,订阅了李笑来老师的《通往财富自由之路》和刘润老师的《5分钟商学院》,里面学习到了很多知识,知道了一些很有用的概念,不过因为自己践行的很少,所以学习到的知识不及里面百分之一。

在去年写年度总结时,我的年计划如下:

  1. 2016年要学习一门新的技术,暂时选定的是H5。
  2. github上好好维护自己的项目,做出一个有点名气的项目来。
  3. 做一个自己的网站和App,越炫酷越好。
  4. 好好维护自己的博客,每个月至少一篇博客。
  5. 带着女朋友好好去旅游一次

其中,学习一门新的技术,算是完成了;github我维护了react-native-umeng-push算是勉强完成;做一个给别人用的网站和App,但是不够酷炫,也完全不是自己心目中的,所以算是没完成;至于博客方面,勉勉强强完成;带女朋友去旅游,这个在2016年端午节,我们去了内蒙古。所以,总体上,5个完成了4个,还需要加油。

学着百度一样,我也评选了一下我的年度缺点和优点:

  • 2016年,我的年度缺点: 拖沓。
  • 2016年,我的年度优点:不断学习新技术。

而我的2017年的指挥官命令:夯实基础

内容具体包括以下:

  1. 重学数据结构和算法,将算法达到刷bat面试题毫无压力的水平
  2. 重学操作系统,对整个系统原理有清晰的了解,能达到做一些大学试卷无压力水准
  3. 学习设计模式,对iOS中的常用设计模式,都能灵活运用,知道分析它们之间适应的场景以及某个场景下的优劣
  4. 选一个著名的(10000star以上)的框架学习,并且成为其中的主要开发者之一。