看見大家都在寫年終總結(jié),技術(shù)與文采都很low的我也按捺不住來湊湊熱鬧。
如果說2015年算是真正走進(jìn)了前端行業(yè)的大門,那么2016年就是全速?zèng)_刺的一年,在這一年我做了三個(gè)從無到有的項(xiàng)目,也用了一些比較新的技術(shù)。
首先是一個(gè)mac端的聊天客戶端,由于公司覺得c++做桌面軟件真的很慢,于是便將目光投向了我們前端團(tuán)隊(duì),當(dāng)然我們老大接了。原因就是electron這個(gè)神器的存在。我們開始項(xiàng)目時(shí)手機(jī)端和win端已經(jīng)做的差不多了,而我們卻是從0開始,當(dāng)然最終我們趕上了他們的進(jìn)度。再次不得不驚嘆前端的潛力時(shí)巨大的。整個(gè)項(xiàng)目整體架構(gòu)分為三層,后臺(tái) 、sdk、 ui層。當(dāng)然我們是負(fù)責(zé)ui層,當(dāng)時(shí)用的框架是angular(插一句但是已經(jīng)有人給我安利vue,但是感覺國人的玩意不太可靠也沒去研究)。sdk是由c++提供,然后github上找了一個(gè)包nan 將c++編譯為.node文件,這樣我們就可以引入這個(gè)文件來使用。在這其中遇到最大的坑就是客戶端經(jīng)常跑死,經(jīng)過無數(shù)次的踩坑最重總結(jié)出經(jīng)驗(yàn),全是c++造成的。只要他們某個(gè)地方報(bào)錯(cuò),客戶端就會(huì)卡死。最重項(xiàng)目也按時(shí)交付了,而且得到了公司的好評(píng)(雖然現(xiàn)在回看那時(shí)的代碼寫的跟屎一樣)
第二個(gè)項(xiàng)目是一個(gè)手機(jī)端的,嵌入原生app,這應(yīng)該是我入行以來學(xué)到最多東西的一個(gè)項(xiàng)目,不得不說手機(jī)端的坑著實(shí)多啊。做這個(gè)項(xiàng)目的時(shí)候我已經(jīng)注意到了vue,某個(gè)周六看了一天就被vue吸引了,感覺就是angular跟react的合體,簡(jiǎn)單實(shí)用而且體積小。于是回來在團(tuán)隊(duì)中各種安利vue,最重說服大家前端框架采用vue。這期間踩了好多手機(jī)端的坑,什么touch事件啊,點(diǎn)擊穿透事件等等。加油總結(jié)了一下手機(jī)端調(diào)試的方法。為了前后端分離這個(gè)項(xiàng)目還引入了nodejs,node做的事不多,但正是用了node才讓我了解了更多關(guān)于后臺(tái)的事情,日志,linux,nginx等等。
第三個(gè)項(xiàng)目是一個(gè)webIm,縱然很不情愿再用angular,但最重還是因?yàn)榇蠹叶紝?duì)angular比較熟悉而選擇了它,開始我們討論需要兼容ie幾,得到的答案是ie8,于是乎我們做了各種努力試圖說服產(chǎn)品跟老大放棄ie8,但我們的努力是徒勞的。不過后來后臺(tái)參與進(jìn)來后,告訴我們這次mqtt數(shù)據(jù)格式都是protobuf,查閱caniuse protobuf兼容到ie10,多么歡欣鼓舞的消息啊,于是呼連ie9我們都不得不放棄了。這個(gè)項(xiàng)目中聊天我們采用的是websocket實(shí)現(xiàn)聊天的數(shù)據(jù)通信,但是不得不吐槽的是掃碼登錄部分竟然用的短連接,而且為了保護(hù)后臺(tái),沒次受到相應(yīng)后演示兩秒再去發(fā)下一次請(qǐng)求,這樣頁面的相應(yīng)時(shí)間上就有一個(gè)最多3秒的延時(shí),找了后臺(tái)幾次但是都無力讓他們修改。