最近工作了幾個(gè)月,在這里稍微反思一下有哪些常識(shí)需要提醒一下自己。
其一是很多東西并沒有想象中難怎披。
剛剛?cè)雸F(tuán)隊(duì)的時(shí)候,我覺得做的東西是個(gè)框架瓶摆,是個(gè)很高大上的東西凉逛,很多我很崇拜的人都在做,一定很難群井。于是我寫起代碼來(lái)束手束腳小心翼翼状飞,改一行代碼想一下午。后來(lái)看到了很多TODO和很多代碼庫(kù)里本身就不是很完美的代碼书斜,后知后覺這玩意兒其實(shí)也是人寫的诬辈。我們很容易用框架的時(shí)候用仰視的眼光去看做框架的人,用仰視的眼光去看待哪些我們不懂的領(lǐng)域荐吉。但其實(shí)不一定是因?yàn)樯蠈踊蚴巧嫌蔚娜吮任覀兏鼌柡Ρ涸悖皇谴蠹腋魉酒渎氂胁煌目剂慷选懏a(chǎn)品的更重視迅速的將某個(gè)非常具體的需求呈現(xiàn)出來(lái)样屠,寫框架的更重視多花些時(shí)間把API設(shè)計(jì)好穿撮,能夠滿足各種下游用戶的需求并且容易維護(hù)。
剛剛開始開發(fā)的時(shí)候痪欲,關(guān)于編譯的所有指令都是按照documentation照抄的悦穿,build出了什么問(wèn)題若沒有documentation便覺得十分無(wú)助。覺得寫build腳本也貌似很難的樣子业踢,所以有什么問(wèn)題只曉得給別人發(fā)feature request栗柒。當(dāng)時(shí)用heroku來(lái)deploy代碼用于移動(dòng)端測(cè)試。這個(gè)過(guò)程很坑知举,要等半個(gè)小時(shí)瞬沦。大家都冥冥中知道用firebase會(huì)快很多,但不知道為啥沒人弄雇锡。其實(shí)我也吐槽deploy時(shí)間長(zhǎng)很多次了蛙埂,拖了很久沒弄因?yàn)榕逻@個(gè)東西很難然后很久搞不出來(lái)。后來(lái)因?yàn)橐獪y(cè)一個(gè)需要經(jīng)常deploy的bug修復(fù)遮糖,heroku當(dāng)時(shí)剛好壞掉了绣的,不得不把firebase搞懂,就跑去研究了一下欲账。然后發(fā)現(xiàn)這玩意兒只不過(guò)是改掉幾個(gè)url然后一個(gè)scp屡江,索性寫了一個(gè)JS腳本加進(jìn)了gulp task。寫了這個(gè)才發(fā)現(xiàn)原來(lái)很簡(jiǎn)單赛不,原來(lái)所有的編譯腳本其實(shí)源代碼很好懂惩嘉。后來(lái)大約是documentation寫得不是很清楚,常有同事跑來(lái)問(wèn)這玩意兒怎么用踢故。然后反向體會(huì)到我剛開始給別人發(fā)問(wèn)題的時(shí)候文黎,其實(shí)應(yīng)該做的第一件事是找那玩意兒的源代碼看看惹苗,因?yàn)橐苍S自己改改其實(shí)不難。
總之耸峭,凡事應(yīng)該養(yǎng)成看源代碼的習(xí)慣桩蓉,上游和工具的維護(hù)者也都是人,大多數(shù)的小改進(jìn)比想象中簡(jiǎn)單劳闹。
其二是百封郵件不如當(dāng)面開個(gè)會(huì)院究。
上個(gè)季度同一個(gè)時(shí)差16小時(shí)的同事合作。我寫了個(gè)API本涕,同事在用业汰。關(guān)于這個(gè)API,同事發(fā)bug和問(wèn)題菩颖,我修bug回復(fù)問(wèn)題样漆,整個(gè)郵件蓋了100多層樓,簡(jiǎn)直坑爹晦闰。經(jīng)常雙方講不清楚bug到底是不是我這個(gè)環(huán)節(jié)的bug氛濒,修復(fù)方式為什么不能work。兩邊都有鍋鹅髓。后來(lái)不能忍了舞竿,早上6點(diǎn)爬起來(lái)同這位同事打了個(gè)視頻電話,不到一個(gè)小時(shí)全講清楚了窿冯。后來(lái)吸取了這個(gè)教訓(xùn)骗奖,又有別組的同事發(fā)issue,干脆直接走過(guò)去他們的樓把issue上的同事全部都逮著認(rèn)識(shí)了一下然后當(dāng)面問(wèn)了一下這一坨bug醒串。事情三言兩語(yǔ)就講清楚了执桌,省掉了兩邊一堆的郵件。
其三是其實(shí)很多失誤都源于誤會(huì)都源于“我以為你懂你以為我懂但我們各自懂的都不是同一個(gè)事兒”芜赌。
例子太多仰挣,但好像不好舉〔颍總之得出的教訓(xùn)就是膘壶,在多方合作的時(shí)候最好不要想當(dāng)然。因?yàn)橛械臅r(shí)候你的想當(dāng)然和別人的想當(dāng)然是完全兩碼事洲愤。比如說(shuō)有些團(tuán)隊(duì)的P0是兩周內(nèi)解決颓芭,有些的團(tuán)隊(duì)的P0是兩分鐘內(nèi)解決,又比如說(shuō)設(shè)計(jì)師眼中的“可以發(fā)布了”又同程序員眼中的“可以發(fā)布了”是兩碼事柬赐。凡事若有疑問(wèn)就干脆白紙黑字的寫下來(lái)亡问,開會(huì)各方確認(rèn)一下,然后得出結(jié)論再白紙黑子的寫下來(lái)肛宋,郵件總結(jié)一下州藕。這樣日后若不記得到底決定了什么束世,也有個(gè)記錄可循。
其四是很多看起來(lái)不是正事兒的東西其實(shí)是正事兒并且要費(fèi)很多時(shí)間床玻。
比如說(shuō)績(jī)效考核毁涉,比如說(shuō)寫面試反饋,比如寫設(shè)計(jì)文件笨枯,比如說(shuō)開會(huì)和溝通薪丁∮鑫鳎總之馅精,“唯有寫代碼才是正事兒”,大概是程序員生涯里最騙人的一句話了粱檀。
其實(shí)這些道理都很顯而易見洲敢,但太容易忘。