小碼農(nóng)的碎碎念之2016個(gè)人技術(shù)總結(jié)

重金難酬大夢想,寸功不負(fù)小碼農(nóng)

題圖來自我在四月份借元代吳澄的《勉學(xué)吟》組詩中一句亚隅,再湊一句痘儡,做的一首小(shun)拙(kou)詩(liu)。當(dāng)時(shí)的我正處在一個(gè)挺糾結(jié)的狀態(tài)中枢步,聊以此來給自己打氣沉删。

轉(zhuǎn)眼又過了大半年,2016年的陽歷陰歷都已落幕醉途,在新年伊始再回頭看看這過去一年矾瑰,真是特別有感觸。因?yàn)檫@一年過得可謂跌宕起伏精彩紛呈隘擎,所有努力的殴穴、新鮮的、憧憬的货葬、不確定的采幌、甚至是后悔的經(jīng)歷,到最后都?xì)w為充實(shí)的成長震桶。在這篇文章里我先數(shù)一數(shù)自己這一年在技術(shù)上的些許收獲休傍。

年初

PySpark

在2016年開年之時(shí),我在數(shù)據(jù)組做游戲數(shù)據(jù)的撈取蹲姐、計(jì)算和存儲等工程相關(guān)的東西磨取,也做了一兩個(gè)報(bào)表網(wǎng)站的API。其中一個(gè)網(wǎng)站的API算是2015年末寫的吧柴墩,用了一些在當(dāng)時(shí)部門里比較沒人試過的東西忙厌,比如用OpenResty來異步化DB連接、動態(tài)加載DB Model江咳、和SA合作嘗試Docker部署之類的(萬分感謝SA大大提供的Docker Swarm集群)逢净,現(xiàn)在看來挺有過度設(shè)計(jì)的嫌疑,一些配置也沒有達(dá)到最佳實(shí)踐歼指,但是至少那個(gè)站在挺少的資源配給下爹土,做到了還算不錯(cuò)的性能。

后來一個(gè)同事把這個(gè)網(wǎng)站前后端一口氣都接走了东臀。老板們安排讓我把工作重心完全轉(zhuǎn)到用PySpark來做我們電商平臺的數(shù)據(jù)工程着饥。就是在這段時(shí)間,我開始接觸Spark上的RDD和Dataframe API惰赋。由于Spark的MapReduce編程范式要求宰掉,代碼里函數(shù)化的程度比之前的項(xiàng)目都高不少呵哨,尤其用了非常非常多的閉包來傳遞上下文,也算是比較少有的函數(shù)式編程練習(xí)機(jī)會了轨奄。

年中

Pandas

要說用Spark有什么遺憾的話孟害,最大的應(yīng)該是當(dāng)時(shí)還沒來得及用上Luigi或者Airflow之類比較現(xiàn)代的pipeline管理工具,只是初步調(diào)研了一圈挪拟;另一個(gè)是當(dāng)時(shí)一直做著工程上的東西挨务,沒有機(jī)會接觸分析和建模層面,就沒有怎么接觸到Spark的MLlib API玉组。不過這個(gè)也不算太可惜谎柄,因?yàn)槲液髞肀蛔サ搅艘粋€(gè)新部門,重點(diǎn)幫公司的大游戲做營收優(yōu)化惯雳。于是我在Spark集群內(nèi)網(wǎng)里要到了一臺機(jī)子朝巫,搭了個(gè)Jupyter,在上面跑Pandas和Scikit-learn石景。在這個(gè)部門劈猿,我需要開始短平快地用腳本從游戲數(shù)據(jù)生成報(bào)表,然后提供給運(yùn)營組的同事做精確營銷之類的準(zhǔn)定——需求服務(wù)面的專一性和時(shí)效性就決定了用Spark取出來的數(shù)據(jù)量小到一定程度時(shí)潮孽,就可以盡量用一些抽象程度高的API和類庫來節(jié)省時(shí)間揪荣,不需要考慮計(jì)算過程的可擴(kuò)展性。

其實(shí)做報(bào)表吧往史,也不全是我工作所有內(nèi)容仗颈,平時(shí)還是有一些數(shù)據(jù)準(zhǔn)備工作是比較工程化的。在一些項(xiàng)目里怠堪,我們需要直接用Hadoop的接口操作HDFS揽乱,于是就用上了Scala——這也算是今年比較獨(dú)特的技術(shù)經(jīng)驗(yàn)了。關(guān)于對Scala的愛恨情仇粟矿,在另一篇博客里有比較詳細(xì)的描述,這里就不展開了损拢。

年末

不忘初心

年末是全年最開心的階段陌粹,開心到我都不知道要配什么圖好了……

我被最初招我進(jìn)公司的老板調(diào)回一開始的部門,專心做游戲活動宣傳網(wǎng)站及API福压。在此之前我雖然有很長時(shí)間在這個(gè)部門里掏秩,但主要做的網(wǎng)站比較報(bào)表向,以內(nèi)部使用為主荆姆,項(xiàng)目比較注重?cái)?shù)據(jù)計(jì)算流程蒙幻;現(xiàn)在在這個(gè)組里做面向外部玩家和用戶的網(wǎng)站,就更加注重網(wǎng)站外觀注重服務(wù)性能胆筒。

我們組里氣氛特別自由開放邮破,項(xiàng)目更新周期也短一些诈豌,很多想推進(jìn)的改動都可以去嘗試,效果好的話抒和,在新項(xiàng)目里推廣開也是很快的事情矫渔。我們已經(jīng)順利地把很多活動宣傳網(wǎng)站放到Docker上了,運(yùn)維就可以交給SA摧莽,不再需要自己去服務(wù)器里重啟庙洼,有性能需求的時(shí)候也可以隨時(shí)橫向擴(kuò)容;本地開發(fā)環(huán)境的架設(shè)用docker-compose以后方便了很多镊辕,不再需要用一個(gè)專門的開發(fā)虛擬機(jī)來為項(xiàng)目各種安裝依賴包各種改自己本地測試DB連接參數(shù)油够。新的項(xiàng)目到手時(shí)候還有一套挺順手的Cookiecutter模板來生成比較簡潔的基本項(xiàng)目結(jié)構(gòu)。這些流程上的改變征懈,希望都能讓組里筒子們在開發(fā)體驗(yàn)上有所提高吧石咬。

這里插一段題(zhao)外(pin)話(tie):我能知道Cookiecutter這個(gè)工具還要感謝我們廠贊助了坡縣PyCon 2016,讓我能直接圍觀Python社區(qū)里的新鮮玩意受裹。會上有兩個(gè)Keynote Speakers(Greenfeld夫婦)就是Cookiecutter的作者碌补。如果沒有這次PyCon SG的參會經(jīng)驗(yàn),我們可能還得自己造輪子來準(zhǔn)備模板項(xiàng)目棉饶。喜歡在開發(fā)社區(qū)交流學(xué)習(xí)的朋友想來我們廠的話厦章,歡迎簡信上找我喲。

再回到技術(shù)總結(jié)照藻,在性能上我們的改進(jìn)也不少袜啃。我們之前在一些WSGI的異步部署配置上沒有做到很好的實(shí)踐。在跟其他部門的前輩們學(xué)習(xí)之后幸缕,我把他們的一些經(jīng)驗(yàn)借鑒到我們組的項(xiàng)目中群发,性能提升挺明顯的。在此也要感謝一下我們廠能從國內(nèi)一線大廠挖來這么多大牛发乔,讓我這在坡縣成長的小碼農(nóng)也能偷師一發(fā)熟妓。

還有一個(gè)我們性能相關(guān)的調(diào)整在于對Nginx的調(diào)研。我們在推廣了前后端分離的網(wǎng)站架構(gòu)之后栏尚,對API的性能就可以有更好的細(xì)粒度控制——有一些報(bào)文很長而更新時(shí)效不敏感的API起愈,就可以提到Nginx的緩存里。這樣的調(diào)整對單API的吞吐量提升非常明顯译仗,明顯到這些API對服務(wù)器的壓力簡直都可以忽略不計(jì)抬虽。

其實(shí)我們的調(diào)研不止于Nginx的核心功能,還用上了OpenResty——在我用OpenResty寫完一個(gè)性能要求比較高的API做嘗試之后纵菌,陸續(xù)又有兩個(gè)同事用上了OpenResty阐污。目前服務(wù)跑得挺穩(wěn)定的,用了OpenResty的同事反饋也不錯(cuò)咱圆。之后我們可能還會繼續(xù)用OpenResty給我們的內(nèi)部API做統(tǒng)一網(wǎng)關(guān)什么的笛辟,都已經(jīng)寫進(jìn)2017的愿望列表里啦功氨。

最后提一下我在2016農(nóng)歷年末的一個(gè)嘗試,兩年以來一直很想通過Vue來學(xué)習(xí)前端姿勢的我隘膘,終于下決心用Vue來寫一個(gè)比較復(fù)雜的游戲活動站疑故。一開始還只用了vue-cli默認(rèn)的Webpack項(xiàng)目模板,到現(xiàn)在已經(jīng)用上Vue + vuex + vue-router的全家桶了弯菊。不過由于手生纵势,開發(fā)過程中有一些小的磕磕碰碰,但是現(xiàn)在還不至于影響業(yè)務(wù)設(shè)計(jì)——希望自己的前端能力可以趕快成長起來 :)


不知不覺已經(jīng)嘚吧嘚吧寫了這么一大串亂七八糟的流水賬管钳,who cares 反正也沒什么人會看钦铁。

2017,繼續(xù)加油吧才漆!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牛曹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子醇滥,更是在濱河造成了極大的恐慌黎比,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸳玩,死亡現(xiàn)場離奇詭異阅虫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)不跟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門颓帝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窝革,你說我怎么就攤上這事购城。” “怎么了虐译?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵瘪板,是天一觀的道長。 經(jīng)常有香客問我漆诽,道長篷帅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任拴泌,我火速辦了婚禮,結(jié)果婚禮上惊橱,老公的妹妹穿的比我還像新娘蚪腐。我一直安慰自己,他們只是感情好税朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布回季。 她就那樣靜靜地躺著家制,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蟆技。 梳的紋絲不亂的頭發(fā)上罢猪,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天通惫,我揣著相機(jī)與錄音,去河邊找鬼涵但。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帖蔓,可吹牛的內(nèi)容都是我干的矮瘟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼塑娇,長吁一口氣:“原來是場噩夢啊……” “哼澈侠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起埋酬,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤哨啃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后写妥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拳球,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年耳标,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了醇坝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡次坡,死狀恐怖呼猪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砸琅,我是刑警寧澤宋距,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站症脂,受9級特大地震影響谚赎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诱篷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一壶唤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棕所,春花似錦闸盔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躲撰。三九已至,卻和暖如春击费,著一層夾襖步出監(jiān)牢的瞬間拢蛋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工蔫巩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谆棱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓批幌,卻偏偏與公主長得像础锐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子荧缘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容