每一年到這個時候,總須要回顧過去,展望將來。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裏面愈來愈好,能有更大的突破。