在傳統(tǒng)行業(yè)努力著的互聯(lián)網(wǎng)人

“回望這段經(jīng)歷我依然覺得當(dāng)初的選擇沒有錯(cuò),六個(gè)月的時(shí)間收獲太多,是我生涯中的一次際遇”。這是幾個(gè)月前在博客中寫的一篇文章:《在傳統(tǒng)行業(yè)努力著的互聯(lián)網(wǎng)人》

兩個(gè)不錯(cuò)的人,一件看著不錯(cuò)的事

接到萬(wàn)科物業(yè)hr的電話,有些錯(cuò)覺。物業(yè)公司要做App?hr說公司要做社區(qū)o2o,基于萬(wàn)科業(yè)主資源的優(yōu)勢(shì),所以萬(wàn)科做這件事有很大的優(yōu)勢(shì),一件看著不錯(cuò)的事。于是我抱著“去看看吧”的心態(tài)去面試了。 面試一切都是很常規(guī)的流程沒有筆試,這比我想象中的好,沒想到傳統(tǒng)企業(yè)的面試還挺務(wù)實(shí)的,坐下來就聊聊。技術(shù)總監(jiān):網(wǎng)易、豆瓣經(jīng)歷,牛逼的全棧工程師,年輕,有情懷,聊著感覺不錯(cuò),氣場(chǎng)對(duì)應(yīng)。 團(tuán)隊(duì)負(fù)責(zé)人:十年互聯(lián)網(wǎng)老將,豆瓣產(chǎn)品,原來他們是一伙的。他的面談方式相當(dāng)?shù)膄ree style,面試過程感覺不錯(cuò)。

他們對(duì)我還是挺認(rèn)可的,后續(xù)的電話溝通中也希望我能考慮下,希望能一起“大干一場(chǎng)”。經(jīng)過幾輪的糾結(jié)(當(dāng)時(shí)手頭有其他offer,獵頭推薦的,好幾次差點(diǎn)被獵頭說服了),最終選擇了“大干一場(chǎng)”。

百?gòu)U待興

“劣幣驅(qū)逐良幣就是牛逼的人覺得和混日子人一起沒有未來,然后走了;混日子的人發(fā)現(xiàn)沒有牛逼的人去攻關(guān)扛著自己也沒法混,然后也走了…”。這是我們負(fù)責(zé)人很久以前朋友圈發(fā)的一條感嘆。 剛進(jìn)前兩個(gè)星期,相當(dāng)壓抑,團(tuán)隊(duì)氣氛很消極,而我剛好深陷重災(zāi)地帶。進(jìn)去第一個(gè)星期開始熟悉產(chǎn)品業(yè)務(wù),首先下載代碼,當(dāng)初版本控制還是使用的svn。然后慢慢的開始發(fā)現(xiàn)了很多問題,代碼的問題入的問題,總結(jié)為歷史的問題。

一、沒有歷史的項(xiàng)目。

進(jìn)去沒幾天,我想知道我們的app上過哪些渠道,然后找產(chǎn)品問,產(chǎn)品貌似不知道渠道包時(shí)啥意思,然后問了項(xiàng)目組所有的人,沒有一個(gè)能說清楚的;我想知道歷史發(fā)過哪些版本,每個(gè)版本是否做記錄,我找之前的兩位Android工程師問,他們就開始翻svn的提交日志,版本沒打打tag的么?

二、工程師的技術(shù)水平和態(tài)度讓產(chǎn)品降低了標(biāo)準(zhǔn)

一次我發(fā)現(xiàn)《助這兒》首頁(yè)的“消息”小紅點(diǎn)顯示的未讀條是和實(shí)際未讀條數(shù)不對(duì),經(jīng)過調(diào)試,log后端返回的數(shù)據(jù),發(fā)現(xiàn)后端數(shù)據(jù)的問題,我去找后端開發(fā)工程師,他的回答讓我很驚訝:“在我看來這不是bug”,我問他為什么,他說一直的這樣啊,我當(dāng)時(shí)很絕望,我錯(cuò)了么?這讓我對(duì)這位開著轎車來萬(wàn)科物業(yè)上了三年班的工程師“另眼相看”,我相信產(chǎn)品經(jīng)理也是多么的無奈。后來這位哥們也和我們的技術(shù)經(jīng)理撕過幾次,原因是后來我們使用GitHub托管代碼,review代碼比較嚴(yán)格,估計(jì)技術(shù)總監(jiān)看了他的代碼然后叫他如何如何改正,哥們受不了了,覺得技術(shù)總監(jiān)老是針對(duì)他。

三、胡亂堆疊的結(jié)構(gòu)而后不斷沉淪與墮落的代碼

每天都能碰到奇葩代碼,經(jīng)常會(huì)聽到“尼瑪,這TM誰(shuí)寫的代碼?”這樣的吐槽,開始覺得這樣不好,會(huì)傳遞一些負(fù)能量,但是從另一個(gè)角度講這未必是壞事,我們?cè)谕虏蹌e人的代碼的時(shí)候同時(shí)也反思到,將來別人會(huì)不會(huì)吐槽我們的代碼?這就使得我們格外的注意自己的代碼設(shè)計(jì),因?yàn)槲覀兩钌钪涝a給后來人帶來的痛苦和惡心。 關(guān)于代碼的黑歷史真是太多了,知乎上有篇文章叫做《你見過的最想笑的,最奇葩的,最逗逼的代碼是什么?》,看了很多人的答案,我好想說,我都遇到了,太多了,這里僅僅截取兩個(gè)來看看吧。這就是一位4年工作經(jīng)驗(yàn)的工程師寫出來的代碼,還不讓改,這讓強(qiáng)迫癥的我們很是痛苦。誰(shuí)都寫過奇葩代碼,這些不可怕,最可怕的是,抱殘守缺,不愿意接受改變,不愿意接受優(yōu)秀思維方法或者工具。這位哥們,讓我很傷感。某一天我又看到一段他關(guān)于連接服務(wù)器l正式環(huán)境和測(cè)試環(huán)境url的代碼:

//public static final String BASE_URL = "http://xxx.vanke.com/";

public static final String BASE_URL = "http://aaa.vanke.com/";

你能看懂哪個(gè)是正式環(huán)境那個(gè)事測(cè)試環(huán)境么?只有他看得懂,或許過一段時(shí)間以后他自己回頭看也不知道了。我問他為啥要這樣寫?他給我演示了注釋快捷鍵,然后振振有詞說:這樣注釋很方便。怪不得在他寫的很多代碼里我看到了成片成片的方法被注釋的痕跡。 不到一個(gè)星期,我開始懷疑我是不是做了一個(gè)錯(cuò)誤的選擇?很是糾結(jié),又想起了那句:“劣幣驅(qū)逐良幣就是牛逼的人覺得和混日子人一起沒有未來,然后走了;混日子的人發(fā)現(xiàn)沒有牛逼的人去攻關(guān)扛著自己也沒法混,然后也走了…”,雖然我也不是太優(yōu)秀的人,但至少我一直在追求進(jìn)步,下了這么大的決心來這就是希望能能把這事兒做成,這樣的情況能做好嗎?做為一個(gè)互聯(lián)網(wǎng)團(tuán)隊(duì)不該是這樣的,看到不好的代碼我有努力去改變,但是我去很難去改變一個(gè)人的思維習(xí)慣,既然選擇了就再努力一下吧。好吧,看到問題我會(huì)告訴你,你不改我改過來,這攤事兒你搞不定我來搞,事實(shí)證明后來產(chǎn)品和設(shè)計(jì)師都喜歡來找我,然后“混日子”的人被架空了(萬(wàn)科有錢愿意養(yǎng)閑人就養(yǎng)著吧,我目的很明確,來這就是希望能把這事做好,你可以不參與,但別礙著我),再后來被“架空的”人走了,這是早晚的結(jié)局。后來和技術(shù)總監(jiān)交流過,畢竟我們要干實(shí)事,需要有正向輸出的人,和人品道德無關(guān),和思維方式及做事的習(xí)慣有關(guān),我們沒能力也沒這么多精力說教,不合適的,離開對(duì)雙方都有好處。

四、各種老it系統(tǒng)高度依賴混陷焦油坑

也許這是很多傳統(tǒng)公司都有的問題,系統(tǒng)老、舊,各種數(shù)據(jù)邏輯耦合。關(guān)于老、舊最典型的例子就是在家開vpn還IE only(只能通過IE瀏覽器使用),這讓在家處理問題的哥們情何以堪?然后就是就是各種系統(tǒng)的交織混亂。比如我門App后端是A,A里面的大部分?jǐn)?shù)據(jù)和邏輯分散在老系統(tǒng)B和C中(實(shí)際還有D、E、F…),而B、C分別在很久很久以前由不同的外包公司開發(fā)的,然后A又是由不同的外包公司完成的,一錘子買賣之后又經(jīng)歷了一批平庸的團(tuán)隊(duì),在填一個(gè)坑的同時(shí)又不知不覺的創(chuàng)造了兩個(gè)坑。最后我們來了,慢慢的看到了千瘡百孔系統(tǒng),我們多么希望原本就沒有A,甚至沒有B和C,重鑄高塔遠(yuǎn)比在搖搖欲墜的高塔上建筑順手得多。 或許是因?yàn)樵缙趯?duì)技術(shù)的無知或不重視,萬(wàn)科物業(yè)正在痛苦的償還著巨額技術(shù)債,甚至在將在短時(shí)期內(nèi)無法擺脫這個(gè)困擾。好在高層擁抱互聯(lián)網(wǎng)的態(tài)度越來越堅(jiān)決,對(duì)技術(shù)的態(tài)度越來越重視。

革命

開發(fā)工具

人和動(dòng)物的區(qū)分是看會(huì)不會(huì)使用工具,是工具觸發(fā)了猿人的思考,最終進(jìn)化成了現(xiàn)在聰明的人類。雖然現(xiàn)在我們更強(qiáng)調(diào)的是思維上的超越,但是在有些階段我們還是要借助先進(jìn)的工具來改變我們的思維習(xí)慣。

團(tuán)隊(duì)溝通工具:BearyChat。在之前是用郵件溝通的,很難想象在互聯(lián)網(wǎng)開發(fā)這樣的高效協(xié)作需求下是怎么溝通的。

團(tuán)隊(duì)任務(wù)管理工具:Trello。可以創(chuàng)建白板,白板上創(chuàng)建任務(wù)card,并能和BearyChat互通。

代碼托管及版本控制:GitHub。這個(gè)是我的最愛,程序員的書臉,同樣能互通BearyChat,最重要的是有了它我們才能更好的做代碼review,控制代碼質(zhì)量增加工程師自己的討論氛圍。

apk托管工具:fir.im。非常喜歡這類輕工具,編譯、上傳、更新、通知到BearyChat,一鍵打通任督二脈,再也不用擔(dān)心測(cè)試、產(chǎn)品人員拿著手機(jī)來喊你打包了。

AndroidStudio:估計(jì)很多團(tuán)隊(duì)還在用Eclipse,但就做Android開發(fā)來說AndroidStudio已經(jīng)在各方已經(jīng)遠(yuǎn)遠(yuǎn)超越Eclipse了。 最后站在客戶端開發(fā)的角度總結(jié)一張工具協(xié)作圖:

代碼review流程。

使用GitHub協(xié)作管理,程序員要提交自己負(fù)責(zé)的代碼之前,其他相關(guān)合作人員要review他的代碼,發(fā)現(xiàn)問題會(huì)發(fā)起討論,覺得代碼不夠好就要繼續(xù)優(yōu)化,直到大家都覺得ok為止。這個(gè)不是很復(fù)雜的一件事兒,但是相信很多團(tuán)隊(duì)都沒有認(rèn)真做好這個(gè),因?yàn)槲抑敖?jīng)歷過的公司就很少有這個(gè)習(xí)慣,但是就程序員的提高上來說這個(gè)太有必要了,有這個(gè)流程之后寫代碼的人才會(huì)覺得不是一個(gè)人在寫,項(xiàng)目再忙也不能僅止于功能的實(shí)現(xiàn),代碼是要給別人看的,才會(huì)有意識(shí)去寫高質(zhì)量的代碼??戳撕芏啻a,我發(fā)現(xiàn)高質(zhì)量的代碼是渣代碼之間的差別其實(shí)相當(dāng)小,究其緣由就是細(xì)微的思維意識(shí)差別,所以代碼review重在改變程序員寫代碼時(shí)候的意識(shí),當(dāng)這種強(qiáng)迫的意思變成一種習(xí)慣時(shí),也許這個(gè)程序員在開始產(chǎn)生質(zhì)的變化了。

掙扎中的收獲

三個(gè)月過去了,總算為停滯了六個(gè)月的項(xiàng)目帶來一點(diǎn)起色。兩個(gè)App分別在網(wǎng)絡(luò)流量、內(nèi)存、流暢度上都得到了一定的優(yōu)化,《助這兒》擱置了幾個(gè)月的報(bào)事、搶單功能總算有了樣子,《住這兒》管家功能也提上了日程。 最重要的是團(tuán)隊(duì)氛圍已經(jīng)慢慢行程,工程師技術(shù)討論環(huán)境完全得益以GitHub的使用和代碼review的流程。由于豆瓣流的關(guān)系,時(shí)不時(shí)還能請(qǐng)來極光推送的CTO還有餓了么的架構(gòu)師這樣的牛人來做分享。到目前為止整個(gè)團(tuán)隊(duì)除了豆瓣流還有北郵的高材生、經(jīng)驗(yàn)豐富的老大哥以及幾個(gè)深大的小鮮肉?;蛟S有一天我會(huì)離開,回到純互聯(lián)網(wǎng)公司中,但我希望我能留下一些東西:有我耕耘的一片土地!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,157評(píng)論 25 708
  • 她叫Alice,在1989年被發(fā)現(xiàn),從1992年開始被追蹤錄音。在其他鯨魚眼里,Alice就像是個(gè)啞巴。她這么多年...
    阿凡達(dá)盒姜來閱讀 4,018評(píng)論 2 4
  • 面試的時(shí)候,是自尊和自傲遭到碾壓和粉碎最徹底的時(shí)候。面試官的一個(gè)個(gè)問題,尖銳到像一把針,毫不避諱的刺過你的心臟,刺...
    小沙發(fā)閱讀 428評(píng)論 0 0
  • 釣魚是很多人熱愛的活動(dòng)。有些人,為了釣魚,可以說想出了無數(shù)方法,以提高釣魚的技巧和收獲。有些人,只要能釣到魚就行,...
    胡義華閱讀 455評(píng)論 0 0

友情鏈接更多精彩內(nèi)容