每一年到这个时候,总须要回顾过去,展望将来。2013这一年学到了不少东西,收货了不少,也成长了不少。主要在技术和生活上面,让本身有了记录一下的冲动。前端
在技术上面,这一年接触了不少新的东西,让本身眼界开阔很多,同时也开始自我提高,疯狂的在github上面玩开源,只是不少都惨不忍睹。python
今年最开始接触的新东西就是openresty,一个集成nginx的web应用开发框架。android
最开始,咱们项目的架构采用的是前端nginx作proxy,而后将请求反向代理到后端python tornado的方式实现的。可是随着压力的增长以及一些新功能的上线,这套架构开始显现其局限性,首当其冲的在于慢,虽然能够经过增长tornado进程的方式来进行负载均衡处理,但我总以为不是长久之计。ios
同时,随着业务逻辑的复杂,一些操做须要多个service协同完成,而后在返回给用户,而在什么地方组织多个service的数据以及逻辑也成了咱们的一个难题。nginx
鉴于上述几个缘由,我开始研究openresty,由于以前有3年多lua开发的经验,因此很是容易上手。同时,经过研读openresty的一整套源码,真正的了解了nginx以及之上的openresty的运行机制。能够这么说,这段时间我从一个连nginx配置都不会写的小白程序员一跃成为了名义上精通nginx开发的屌丝程序员。c++
天然,我开始在项目中推广openresty,这也获得了你们的支持,如今虽然咱们不少代码仍然是使用python在编写,可是对于不少高性能模块咱们已经逐步转向了openresty。git
在使用openresty的时候,还提交了几个bug,这点颇为自豪,同时也写了一些东西,譬如 Introduction To Nginx程序员
接触go纯属偶然,在上半年终于完结了一个持续时间特长的项目以后,整个组的童鞋都陷于一个无事可干的真空期,也就是在这段时间,第一次学习了go,马上就被它的简单强大所吸引,尤为是在服务器并发编程方面,那但是很是的强悍。github
因而,我带着两个彻底不懂go的童鞋开始了咱们推送服务器的编程之旅。最开始的时候,由于两位童鞋只会python,为了尽快的出功能,一些后台的服务采用tornado搭建,而我用go写了挂载大量长链接的comet服务。web
这里不得不说go开发服务的快捷,在goroutine以及channel的机制下面,没有了层层的callback,没有了死锁,我只用了3天就弄出了comet,并且能持续稳定运行。
鉴于用go成功开发了comet,我让另外两个童鞋也开始用go重构先前写的python逻辑,进展也很顺利。
不过对于我来讲,go如今最大的一个问题在于内存占用,go如今默认的stack大小为8k,对于须要挂载百万链接的comet来讲,内存开销实在太大,虽然如今机器的配置彻底不须要我担忧,但总以为有点不爽。不过若是优化,也是后续的事情了。
今年,对于我来讲,居然吃了两次螃蟹,第一个就是openresty,而第二个就是go,并且很幸运的是都能在项目中实施。
今年,我真正的开始了一个算是比较大的开源项目:libtnet,它是一个参考tornado的c++高性能网络库。之因此写libtnet,主要是为了后续能用到comet上面,同时也让我本身对多年的网络编程作一个总结。
之前总说本身精通网络编程啥啥的,其实内心面也知道是用来忽悠的,毕竟精通这个词没多少年的沉淀是不可能的。可是经过写libtnet,不说精通,至少让我又对不少网络编程的东西了解了。
不过libtnet的问题在于使用c++进行开发,同时大量采用function + bind的开发模式,对于组内的童鞋来讲理解上面还比较困难,若是在项目中实施颇有可能面临只有我一我的维护的窘境。
今年没事的时候也涉猎了一些移动开发的方面,包括android以及ios。在android上面开发了一些小应用,只是都是自娱自乐。在ios上面使用cocos2d-x开发了一个小游戏demon,也当是消遣了。
不过在明年准备好好的尝试一下该领域的开发。尤为是ios上面,毕竟老婆都有了土豪金了,为了展现老公的程序员风采,再怎么也得弄一个出来。
今年在公司,我开始尝试站着上班,不得不说这对我工做效率的提高有很大的帮助,站着上班,不光减肥,还能让我专心工做,由于任何的聊天浏览网页都是一件很耗费力气的事情。这里也不得不佩服本身的毅力,天天居然都能坚持站7,8个小时。
生活上面今年最主要就是几件事情:
可能对于我来讲,明年在生活上面最大的事情就是要照顾孩子了。
总之,2013过的很快,但也过的很充实,但愿本身在2014里面愈来愈好,能有更大的突破。