過去的一年涧尿,我從準(zhǔn)PM轉(zhuǎn)變成了一個(gè)前端

化繭期

去年的春節(jié)之際姑廉,我還在為自己的未來(lái)苦惱著翁涤。

我原本以為我可以成為一名優(yōu)秀的產(chǎn)品經(jīng)理。

還記得最早接觸產(chǎn)品是高中時(shí)期并鸵,那時(shí)候給某在線教育機(jī)構(gòu)提了一些粗略的建議园担,他們獎(jiǎng)了我一個(gè)實(shí)習(xí)生的身份粉铐,可以邊上學(xué)邊上班卤档。寒暑假可以上北京坐班劝枣。

在此期間舔腾,我一直將自己當(dāng)做一個(gè)準(zhǔn)PM看待,除了課堂上教的計(jì)算機(jī)基礎(chǔ)知識(shí)外和常規(guī)的產(chǎn)品助理工作內(nèi)容外哗脖,還讀了一些產(chǎn)品書籍比如《人人》才避、《失控》桑逝、《浪潮之巔》俏让、《用戶體驗(yàn)要素》等首昔。

但很不幸勒奇,這家公司內(nèi)部組織架構(gòu)產(chǎn)生了巨大的變動(dòng)撬陵,我轉(zhuǎn)不了正了。

偶然得到的去騰訊課堂實(shí)習(xí)的機(jī)會(huì)也失之交臂蟋定。

可學(xué)校的課還是要上的驶兜,實(shí)習(xí)是不可能實(shí)習(xí)的抄淑,學(xué)校里的老師個(gè)個(gè)都是人才驰后,說(shuō)話又好聽灶芝,不如在學(xué)校做點(diǎn)東西夜涕。

后來(lái)我就打造了一款這樣的產(chǎn)品:成績(jī)有毒女器,用來(lái)提供選課前的參考數(shù)據(jù)驾胆,比如哪個(gè)老師掛科最狠之類的。


成績(jī)有毒

這款產(chǎn)品巔峰時(shí)期發(fā)展了4000+用戶,當(dāng)然事格,全部是我們學(xué)校的學(xué)生驹愚。但最后還是死于管服務(wù)器的老師手下:他們覺得這是個(gè)黑客軟件劣纲,直接把教務(wù)系統(tǒng)換了一個(gè)...

產(chǎn)品雖然死掉了狰贯,卻讓我喜歡上前端這門最接近用戶和產(chǎn)品的技術(shù)了。從此我的職業(yè)生涯從產(chǎn)品修正為前端涮因。

破繭期

這就要從3月時(shí)我抱著試一試的心態(tài)參加了網(wǎng)易春招說(shuō)起了养泡。

春招

冥冥之中注定澜掩,網(wǎng)易會(huì)成功地奪走了我的第一次肩榕,我也體驗(yàn)到了面試這種痛并快樂著的活動(dòng)程梦。


網(wǎng)易春招面試通知

這個(gè)時(shí)期的我郎逃,還是只會(huì)切圖褒翰,js完全是靠著突擊紅寶書惡補(bǔ)的弱雞匀泊。既緊張又嬌羞的我各聘,在經(jīng)驗(yàn)豐富的小哥哥小姐姐面試官面前躲因,完全就是一只待宰的小肥羊...

這場(chǎng)網(wǎng)易春招筆面試的結(jié)果自然是慘敗的大脉,后來(lái)好不容易又抓住一個(gè)騰訊的面試機(jī)會(huì)镰矿,然而一面掛...

我的春招就以2戰(zhàn)2敗的戰(zhàn)績(jī)收?qǐng)隽恕?/p>

也許是失敗更能激起人的斗志,在接下來(lái)的兩個(gè)月里宙刘,我做了成績(jī)有毒牢酵,并準(zhǔn)備以它作為簡(jiǎn)歷上的項(xiàng)目經(jīng)歷去面試茁帽。順便再讀了《YDJS》潘拨、《CSS 揭秘》铁追、《Pro Angular》琅束、《HTTP權(quán)威指南》等書籍算谈,以及freecodecamp然眼、leetcode高每、js 30 days的刷題屿岂,就為秋招一雪前辱。

秋招

17年的秋招鲸匿,似乎比以往來(lái)的更早些爷怀。還未進(jìn)入狀態(tài),阿里就拿了我的一血:2017.07.16 阿里

我天真地以為答得不錯(cuò)带欢,殊不知這種感覺是面試掛前的先兆运授。之后的一個(gè)月時(shí)間洪囤,阿里的面試狀態(tài)一直是面試中徒坡,可是我知道,已經(jīng)涼了瘤缩。即便我還做了筆試題喇完。

8月16號(hào),我迎來(lái)了面試轟炸:

最后貌似還是抓住了秋招的尾巴剥啤,在8月31號(hào)成功上車锦溪,拿到了現(xiàn)在的offer不脯。

不過人生就像一顆巧克力,你永遠(yuǎn)不知道下一顆是什么味道刻诊。9月6號(hào)防楷,騰訊突然給了我面試機(jī)會(huì):2017.09.06 騰訊≡蜓模可是复局,鵝廠的內(nèi)推批是9月7號(hào)結(jié)束...這次面試自然沒了下文。

上完學(xué)校的最后一堂課后粟判,我踏上了歸家的旅途亿昏,準(zhǔn)備好好放松一下秋招一直以來(lái)緊繃的神經(jīng)。

可是命運(yùn)之神就是那么愛開玩笑档礁,鵝廠再次給了我面試機(jī)會(huì):2017.10.16 騰訊角钩。持續(xù)放松了一個(gè)月的我,自然不堪一擊呻澜。

成長(zhǎng)期

回到家后递礼,拿到offer的喜悅被騰訊的一面掛沖散的一干二凈。這種結(jié)果仍舊提醒著我:你個(gè)菜雞羹幸。

的確脊髓,這個(gè)時(shí)間節(jié)點(diǎn)相比于我上半年對(duì)前端的知識(shí)儲(chǔ)備,已經(jīng)豐富了很多睹欲,算是踏入了前端的圈子供炼。但還不夠,我還是太嫩了窘疮。

綜合各個(gè)面試官的反饋袋哼,在前端領(lǐng)域內(nèi)我目前至少有四處軟肋:

  1. 缺乏前端工程化經(jīng)驗(yàn)
  2. 沒有深入理解庫(kù)、框架設(shè)計(jì)原理和源碼
  3. 缺乏服務(wù)端常識(shí)和經(jīng)驗(yàn):包括后端語(yǔ)言闸衫、操作系統(tǒng)等
  4. 缺乏性能優(yōu)化經(jīng)驗(yàn)

如果說(shuō)我要成為一名優(yōu)秀的前端工程師或者Web工程師的話涛贯,這就是我的痛點(diǎn),痛點(diǎn)找到后蔚出,接下來(lái)就該做需求分析并考慮如何解決問題了:這當(dāng)然沒有什么比實(shí)習(xí)更適合去引導(dǎo)我去做這兩件事了弟翘。

11月1號(hào),我抵達(dá)北京骄酗,開始了我的實(shí)習(xí)之旅稀余,用了將近一個(gè)月的時(shí)間熟悉環(huán)境與適應(yīng)工作:2017.11.06-2017.12.01實(shí)習(xí)小記

這三月有余,又讓我對(duì)不少事物產(chǎn)生了新的體驗(yàn)和感悟:

工程化

我先拜讀了工程化的兩本經(jīng)典著作:

讀完之后我得出一個(gè)結(jié)論:工程化其實(shí)就是將項(xiàng)目控制在自己可控范圍內(nèi)的各種辦法趋翻。這些理論需要我在實(shí)際的開發(fā)中睛琳,不斷思考、驗(yàn)證、調(diào)整师骗。

我想以這幾個(gè)角度來(lái)談?wù)勎椰F(xiàn)在所理解的前端工程化:

  1. 模塊化和組件化
    1.1 CSS模塊化
    現(xiàn)在的前端項(xiàng)目越做越大历等,但很多人卻忽略了對(duì)CSS的工程化,一個(gè)或者幾個(gè)項(xiàng)目里CSS代碼千奇百怪辟癌。好在Less寒屯、Sass、PostCss等給我們提供了嵌套黍少、變量寡夹、混入、函數(shù)等強(qiáng)大的功能厂置。

    比如說(shuō)要出,業(yè)務(wù)各產(chǎn)品線的UI和通用頁(yè)面設(shè)計(jì)需要統(tǒng)一風(fēng)格,但只有個(gè)別樣式如顏色农渊、背景等不一樣,不同產(chǎn)品線就可以通過$example-bg-color和@mixin example-header()等變量或颊、mixin輕松實(shí)現(xiàn)出自己的頁(yè)面砸紊。

    1.2 JS模塊化
    大部分前端項(xiàng)目都考慮了這一點(diǎn)。比如一個(gè)vue項(xiàng)目:

    • 路由模塊可以交給vue-router做
    • 狀態(tài)管理可以交給vuex做
    • 工具函數(shù)和時(shí)間函數(shù)可以交給lodash和moment做
    • 一些項(xiàng)目里用到的公用代碼可以放進(jìn)一個(gè)commons文件夾下

    但是囱挑!這只是以功能來(lái)劃分模塊醉顽,并沒有以設(shè)計(jì)層次來(lái)劃分模塊。比如說(shuō)有一個(gè)頁(yè)面平挑,它里面有一個(gè)非常大的表單(有15-20個(gè)表單項(xiàng))游添,這些表單項(xiàng)有表格、樹通熄、單選唆涝、多選、單行輸入框唇辨、多行輸入框廊酣、開關(guān)等多種類型,它們之間的業(yè)務(wù)邏輯也被設(shè)計(jì)的很復(fù)雜(產(chǎn)品本身就很復(fù)雜)赏枚,而后端給的數(shù)據(jù)結(jié)構(gòu)也非常惡心亡驰,是一個(gè)對(duì)象套數(shù)組套對(duì)象的數(shù)據(jù)結(jié)構(gòu),你需要從里面拿出一個(gè)個(gè)表單項(xiàng)(有些樹的子樹還分散到各個(gè)對(duì)象里)饿幅。這時(shí)如果只把代碼寫在一個(gè)vue文件中凡辱,估計(jì)過一個(gè)星期就只有上帝才能看得懂了。

    不過栗恩,如果此時(shí)我們假設(shè)后端給的數(shù)據(jù)結(jié)構(gòu)就是標(biāo)準(zhǔn)透乾、純凈的呢?那是不是直接用就行了?如果后端不能提供的話续徽,我們就需要對(duì)數(shù)據(jù)進(jìn)行一定的處理蚓曼,這就是一個(gè)數(shù)據(jù)處理中間層。同理钦扭,我們發(fā)送數(shù)據(jù)給后端之前也可以先給這一層處理纫版。當(dāng)這樣的情況多起來(lái)之后,我們還可以再抽象一層-->BFF

    1.3 組件化
    組件化其實(shí)就是CSS模塊化+JS模塊化的封裝客情,使用組件的人壓根不關(guān)心里面的細(xì)節(jié)其弊。而世上本沒有通用組件,業(yè)務(wù)組件用的地方多了膀斋,也就有了通用組件梭伐。

    后端習(xí)慣把前端組件叫做控件,因?yàn)镃#仰担、Java的安卓甚至MFC就是這樣稱呼封裝起來(lái)的一個(gè)組件的糊识。而Angular、React摔蓝、Vue的組件和Jquery的插件也沒有本質(zhì)上的區(qū)別赂苗,只是一坨代碼的封裝產(chǎn)物罷了。

    不過區(qū)別還是有的贮尉,沒有使用MVVM框架的組件注定難以維護(hù)拌滋,因?yàn)槟切┐a只有上帝看得懂。

  2. TDD(測(cè)試驅(qū)動(dòng)開發(fā))還是BDD(行為驅(qū)動(dòng)開發(fā))猜谚?
    B端的產(chǎn)品败砂,業(yè)務(wù)邏輯復(fù)雜的讓開發(fā)者都不知道如何使用它的功能。每次提測(cè)魏铅,測(cè)試們都用盡幾千個(gè)測(cè)試用例換來(lái)的幾百個(gè)bug昌犹。

    即使是我們組的大牛之一,我的二面面試官览芳,都不敢輕易重構(gòu)他的代碼:“我可不想憑空多出幾百個(gè)回歸性bug祭隔。”

    這種情況對(duì)前端路操、后端疾渴、測(cè)試都是一種摧殘。

    “TDD還是BDD(先寫測(cè)試用例還是先設(shè)計(jì)預(yù)期行為)屯仗?”這個(gè)問題擺在了我們眼前搞坝。

    而前端的自動(dòng)化測(cè)試又主要分為兩部分:e2e測(cè)試(關(guān)注界面)和單元測(cè)試(關(guān)注數(shù)據(jù))。如果先寫測(cè)試用例的話魁袜,會(huì)占據(jù)一部分開發(fā)者的時(shí)間桩撮,并且前端功能變更的頻率非常高敦第,說(shuō)不定會(huì)得不償失。

    倘若采用BDD的話店量,我們的設(shè)想是這樣的:產(chǎn)品經(jīng)理的PRD用自然語(yǔ)言把功能描述出來(lái)(設(shè)計(jì)好預(yù)期行為)芜果,然后工程師開始開發(fā),之后將這些自然語(yǔ)言(比如第一步:打開xx頁(yè)面融师,第二步:點(diǎn)擊xx按鈕...第n步:得到xx結(jié)果)轉(zhuǎn)化成測(cè)試用例保存起來(lái)右钾,最后進(jìn)行批量測(cè)試,得到測(cè)試結(jié)果和報(bào)告旱爆。

    關(guān)于具體的技術(shù)舀射,我也做了一個(gè)簡(jiǎn)單的調(diào)研,目前開源界我能找到的最好的這類工具是阿里的uirecorder怀伦,但它也只能錄制生成測(cè)試用例脆烟,并不支持自然語(yǔ)言生成測(cè)試用例。無(wú)圖瀏覽器是一個(gè)很好的突破口房待,比如google的puppeteer邢羔。

    前端主要的開源測(cè)試工具

  1. 溝通
    前端工程師在一個(gè)工作流中處的位置很特別,它需要與設(shè)計(jì)桑孩、產(chǎn)品张抄、測(cè)試、后端進(jìn)行溝通交流洼怔。

    程序間溝通況且需要一個(gè)協(xié)議,人與人之間更需要建立一套協(xié)議了(我認(rèn)為B端產(chǎn)品尤其需要)左驾,這需要熟悉各自崗位背景才能雙贏镣隶。根據(jù)開發(fā)流程來(lái)說(shuō),我們需要有至少五個(gè)規(guī)范:

    3.1 前端規(guī)范(腳手架诡右、npm包管理安岂、CI、靜態(tài)資源管理等)
    3.2 產(chǎn)品規(guī)范(原型帆吻、PRD域那、需求變更規(guī)范)
    3.3 設(shè)計(jì)規(guī)范(比如Ant、Material)猜煮、可從此衍生出適合自己業(yè)務(wù)場(chǎng)景的UI庫(kù)次员、圖表庫(kù)等
    3.4 前后端規(guī)范(接口)
    3.5 測(cè)試規(guī)范(測(cè)試用例、自動(dòng)化測(cè)試)

    不過此等大計(jì)不是我們這種碼農(nóng)能影響的王带,只能希望各方老大們能達(dá)成一致淑蔚,減少我們搬磚碼農(nóng)在非編碼問題上的時(shí)間浪費(fèi)。

  2. 自動(dòng)化
    “聰明的程序員擁有高明的偷懶技巧愕撰∩采溃”面對(duì)一個(gè)需要兩小時(shí)解決的任務(wù)醋寝,不如花一小時(shí)五十五分鐘寫一個(gè)自動(dòng)化工具然后五分鐘解決它。下面是我對(duì)前端可自動(dòng)化部分的認(rèn)識(shí)带迟,雖然部分功能我們自己還沒實(shí)現(xiàn)......

  • mock接口和接口管理
    在后端沒開發(fā)完接口或者接口GG的時(shí)候音羞,擁有一個(gè)可mock的接口管理平臺(tái)是多么的幸福。我們使用的是大搜車團(tuán)隊(duì)開發(fā)的easy-mock仓犬。

  • 腳手架
    在項(xiàng)目數(shù)量和種類都很多的時(shí)候嗅绰,有一個(gè)好的腳手架會(huì)讓一線開發(fā)人員專注開發(fā)業(yè)務(wù)。

    在我的幻想中婶肩,當(dāng)開始一個(gè)新項(xiàng)目時(shí):

    • 有多種項(xiàng)目模板供我選擇办陷。比如庫(kù)項(xiàng)目、業(yè)務(wù)類項(xiàng)目律歼、CMS類項(xiàng)目民镜。
    • 能一鍵生成組件、頁(yè)面险毁、靜態(tài)頁(yè)面等制圈。
    • 切換proxy地址的時(shí)候可以不重新構(gòu)建。
    • 除了配置文件畔况,還支持環(huán)境變量鲸鹦、CLI來(lái)配置項(xiàng)目,簡(jiǎn)單項(xiàng)目也可零配置跷跪。
    • ......
  • CI
    每天寫完代碼后馋嗜,生產(chǎn)環(huán)境自動(dòng)構(gòu)建+打包+測(cè)試+線上監(jiān)控是件多美好的事情~

源碼

無(wú)論是出于準(zhǔn)備面試的源碼問題還是學(xué)習(xí)優(yōu)秀代碼的動(dòng)機(jī),今年我還是陸陸續(xù)續(xù)地讀了Vue和Moon吵瞻、Lodash葛菇、zepto和jquery、element的部分源碼橡羞。

  1. 首先明確框架/庫(kù)解決了什么問題眯停?比如說(shuō):
    1.1 Vue解決的主要問題就是將Dom->數(shù)據(jù)和數(shù)據(jù)->Dom的轉(zhuǎn)換過程屏蔽了,不需要工程師手動(dòng)操作dom卿泽,而只需要關(guān)注數(shù)據(jù)就ok了莺债。
    1.2 lodash解決的是js原生工具api不夠用的情況,比如求數(shù)組的并集交集签夭,對(duì)函數(shù)進(jìn)行節(jié)流防抖動(dòng)等齐邦。
    1.3 zepto和jquery解決的也是js原生api不夠用的情況,只不過比lodash涉及到范圍更廣第租,比如DOM侄旬、BOM等。為什么今天我們說(shuō)jquery不值得用了煌妈,因?yàn)殡S著js本身的發(fā)展儡羔,很多原生api也逐漸完善宣羊,根本不需要借助第三方庫(kù)也能實(shí)現(xiàn)一樣的效果了。
    1.4 element解決的是通用UI組件不夠用的情況汰蜘,比如表格仇冯、單選框、多選框族操、樹形多選框苛坚、警告框等。
  2. 它是怎么解決問題的色难?
    弄清框架/庫(kù)解決的問題域之后泼舱,我們就可以探索它們解決這個(gè)問題的具體過程了,這個(gè)過程通常是打斷點(diǎn)調(diào)試一步步跟蹤源碼走向枷莉,比如說(shuō):
    Vue的屏蔽手動(dòng)更新DOM的過程娇昙,會(huì)有:
  • 創(chuàng)建Vue實(shí)例的過程(為什么我們要new Vue()?為什么組件的data需要返回一個(gè)函數(shù)?)
  • 從HTML中收集所謂的依賴過程(為什么v-if="flag"這個(gè)指令能夠起到和js代碼一樣的效果笤妙?{{}}里面為什么可以放三元表達(dá)式而不能放流控制語(yǔ)句冒掌?)
  • 對(duì)數(shù)據(jù)創(chuàng)建觀察者的過程(為什么數(shù)據(jù)一變,頁(yè)面也更新了蹲盘?雙向綁定又是怎么回事股毫?)
  • vdom的創(chuàng)建、diff召衔、patch過程(為什么可以通過render函數(shù)直接渲染模板铃诬?vdom到底是怎么節(jié)約性能損失的?)
  • 生成ast和可執(zhí)行代碼的過程(同一個(gè)vue文件有多個(gè)v-for和v-if苍凛,它們的作用域是怎么決定的趣席?)
  • ......
  1. 框架/庫(kù)/API的設(shè)計(jì)思路是怎么樣的?
    跟完細(xì)節(jié)后毫深,我們又回到宏觀層面上,去思考這個(gè)框架/庫(kù)到底是基于什么設(shè)計(jì)理念的毒姨。比如說(shuō):
    3.1 Vue為什么有人說(shuō)它是數(shù)據(jù)驅(qū)動(dòng)(MVVM)和組件化的哑蔫?這個(gè)思想來(lái)自于軟件領(lǐng)域的哪里?這樣做對(duì)前端工程師來(lái)說(shuō)有什么好處弧呐?
    3.2 lodash為什么有人說(shuō)它是函數(shù)式的闸迷?這個(gè)思想來(lái)自于軟件領(lǐng)域的哪里?這樣做對(duì)前端工程師來(lái)說(shuō)有什么好處俘枫?
    3.3 jquery為什么有人說(shuō)它是鋒利的腥沽?它堅(jiān)挺這么多年的原因何在?為什么還有那么多的前端工程師離不開jquery鸠蚪?
    3.4 element為什么需要有一套設(shè)計(jì)原則今阳?為什么組件要分通用組件和業(yè)務(wù)組件师溅,它們的界線在哪?寫好一個(gè)組件對(duì)一個(gè)前端工程師有多重要盾舌?

安全

年輕時(shí)墓臭,我非常羨慕黑客。現(xiàn)在妖谴,我很佩服從事安全行業(yè)的人窿锉。

我現(xiàn)在所在的這個(gè)部門,正嘗試著將以往巫師般的膝舅、個(gè)人英雄主義的安全行業(yè)改造成工業(yè)化的嗡载、團(tuán)隊(duì)協(xié)作的。

我司提出了一個(gè)理念:數(shù)據(jù)驅(qū)動(dòng)安全仍稀。以前純憑經(jīng)驗(yàn)和運(yùn)氣攻擊和防御洼滚,腳本小子都能造成巨大的損失。而現(xiàn)在琳轿,一切都需要有據(jù)可循判沟,攻擊行為可以通過大數(shù)據(jù)分析辨別出來(lái),攻擊場(chǎng)景也可以還原崭篡,甚至化防為攻挪哄,主動(dòng)出擊,干他一炮琉闪。

整個(gè)公司好幾千號(hào)人就為實(shí)現(xiàn)這個(gè)目標(biāo)而努力迹炼,而我,為了理解其中的奧義颠毙,也做了一個(gè)demo斯入,順便當(dāng)作本科的畢業(yè)設(shè)計(jì):


架構(gòu)圖

拿我們學(xué)校某服務(wù)器的Web日志做了一個(gè)簡(jiǎn)單的測(cè)試:

畢設(shè)首頁(yè).png

畢設(shè)攻擊分布.png

順便給g2-vue提了個(gè)pr,用來(lái)支持更復(fù)雜的G2圖表組件化蛀蜜。

算法

以前我也認(rèn)為刻两,前端面試考那么多算法干什么?工作中又用不到滴某,來(lái)到我司后磅摹,我承認(rèn)我錯(cuò)了。無(wú)論是平常中業(yè)務(wù)涉及到的UI組件霎奢、還是解決一些純JS問題時(shí)户誓、抑或是要實(shí)現(xiàn)交互性強(qiáng)的組件和可視化應(yīng)用時(shí),沒有算法的支撐幕侠,根本寸步難行帝美。

下面是一些比較典型的例子:

可視化

我對(duì)可視化這門讓數(shù)據(jù)空間映射到圖形空間的學(xué)科的認(rèn)識(shí)應(yīng)該還是個(gè)門外漢:

  • Echarts和highCharts基于配置驅(qū)動(dòng)
  • G2基于數(shù)據(jù)驅(qū)動(dòng)
  • svg和canvas是二維可視化的基礎(chǔ)
  • webgl和threejs是三維可視化的基礎(chǔ)
  • 地圖由瓦片+Geo數(shù)據(jù)構(gòu)成

附上兩個(gè)入門資料:

文檔翻譯

這是一個(gè)意料之外的收獲,就是前端文檔翻譯組織印記中文晤硕,有個(gè)同事是創(chuàng)始人之一悼潭。webpack庇忌、node中文文檔都出于這個(gè)組織。他說(shuō):“我就想給前端開源社區(qū)做點(diǎn)貢獻(xiàn)女责,讓國(guó)內(nèi)的開發(fā)者學(xué)習(xí)時(shí)更輕松一點(diǎn)漆枚。”

他這對(duì)開源社區(qū)的態(tài)度抵知,讓我欽佩不已墙基。于是,我加入了Ionic文檔的翻譯工作中刷喜。

ionic中文文檔雛形

在這期間残制,收獲了不少在公司得不到的git經(jīng)驗(yàn)。因?yàn)檫@是一個(gè)真正的開源項(xiàng)目掖疮,在眾多分支中初茶,如何保證合并、pr浊闪、同步等操作的順利進(jìn)行恼布,是有很大的挑戰(zhàn)性的。

當(dāng)然搁宾,英語(yǔ)閱讀能力也得到了很大的提升折汞,但離翻譯境界的信達(dá)雅境界還差得很遠(yuǎn),希望大家多提issue和pr盖腿。

其他

其實(shí)爽待,在實(shí)習(xí)的過程中,還遇到了很多問題翩腐,但它們?cè)谒阉饕婺窨睢⑽臋n、issue茂卦、論壇和社區(qū)何什、Stack Overflow上是可以找到準(zhǔn)確答案的,所以我就不贅述了等龙。

最后要說(shuō)的話

還有一個(gè)意料之外的收獲处渣,就是在年會(huì)上中了一個(gè)森海塞爾HD650,雖然我并不是耳機(jī)發(fā)燒友而咆,不過還是挺開心的霍比。如果哪位讀者對(duì)這個(gè)耳機(jī)感興趣可以私聊我~

雖然實(shí)習(xí)工作內(nèi)容只和我的痛點(diǎn)重合了第一點(diǎn)和第二點(diǎn)幕袱,但也接觸到了更多可以學(xué)習(xí)的點(diǎn)暴备,比如算法、可視化们豌、安全等涯捻。但人的精力是有限的浅妆,我需要對(duì)它們進(jìn)行最大可能的試錯(cuò)才能決定自己是否適合往那邊發(fā)展。拿前端這個(gè)工種作為立足崗位障癌,發(fā)展的方向還是有很多的呢~

最后祝大家狗年旺旺旺~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凌外,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涛浙,更是在濱河造成了極大的恐慌康辑,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿亮,死亡現(xiàn)場(chǎng)離奇詭異疮薇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)我注,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門按咒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人但骨,你說(shuō)我怎么就攤上這事励七。” “怎么了奔缠?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵掠抬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我添坊,道長(zhǎng)剿另,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任贬蛙,我火速辦了婚禮雨女,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阳准。我一直安慰自己氛堕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布野蝇。 她就那樣靜靜地躺著讼稚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绕沈。 梳的紋絲不亂的頭發(fā)上锐想,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音乍狐,去河邊找鬼赠摇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藕帜。 我是一名探鬼主播烫罩,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼洽故!你這毒婦竟也來(lái)了贝攒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤时甚,失蹤者是張志新(化名)和其女友劉穎隘弊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荒适,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡长捧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吻贿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片串结。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舅列,靈堂內(nèi)的尸體忽然破棺而出肌割,到底是詐尸還是另有隱情,我是刑警寧澤帐要,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布把敞,位于F島的核電站,受9級(jí)特大地震影響榨惠,放射性物質(zhì)發(fā)生泄漏奋早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一赠橙、第九天 我趴在偏房一處隱蔽的房頂上張望耽装。 院中可真熱鬧,春花似錦期揪、人聲如沸掉奄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)姓建。三九已至,卻和暖如春缤苫,著一層夾襖步出監(jiān)牢的瞬間速兔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工活玲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涣狗,地道東北人帜矾。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像屑柔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子珍剑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,846評(píng)論 25 707
  • 步驟 1.將雞肉切塊掸宛,用清水洗凈表面雜質(zhì)。 2.冷水下鍋招拙,將水煮開唧瘾,讓雞肉隨水溫的上長(zhǎng)而排出血水與雜質(zhì)。 3.水開...
    果凍萍萍閱讀 286評(píng)論 0 0
  • 因?yàn)樽罱荚诨旧习阉袝r(shí)間都花在了做一件事情上所以突發(fā)奇想别凤,如果之前都人生或者從今以后自己都都基本把所有時(shí)間都花...
    無(wú)限游戲指引閱讀 270評(píng)論 0 0
  • 廣東的鶴山古勞鄉(xiāng)饰序,鎮(zhèn)名因以古,勞兩姓建村而名规哪。它是珠江三角洲原始的“美麗水鄉(xiāng)”求豫,被譽(yù)為“東方威尼斯”。 古勞水鄉(xiāng)诉稍,...
    木子羅閱讀 1,352評(píng)論 8 25
  • 拂曉繞堤行 放眼處 究竟如夢(mèng) 恍然一去千萬(wàn)里 念故人 思親情 意攬起 睡罷夢(mèng)已殘 曙光現(xiàn) 月掛西天 自忖人生三萬(wàn)天...
    惠風(fēng)龢暢閱讀 240評(píng)論 0 3