...

一(yī / yì /yí)個(gè)技術總監的(de)忠告:精通那麽多技術,你爲(wéi / wèi)何還是(shì)受不(bù)到(dào)重用?

2021-07-19

這(zhè)篇文章我們繼續說(shuō)架構師大(dà)劉的(de)故事:

老田升職了(le/liǎo),年薪漲到(dào)了(le/liǎo)百萬級别!

這(zhè)是(shì)大(dà)劉在(zài)加班搞技術攻堅的(de)時(shí)候,聽别的(de)同事聊了(le/liǎo)那麽一(yī / yì /yí)嘴。

大(dà)劉心裏不(bù)是(shì)滋味兒。老田和(hé / huò)大(dà)劉其實在(zài)這(zhè)家公司之(zhī)前就(jiù)是(shì)同事了(le/liǎo),老田能到(dào)這(zhè)家公司,說(shuō)起來(lái)還是(shì)大(dà)劉推薦的(de)。

但是(shì),在(zài)公司的(de)這(zhè)幾年,老田越來(lái)越受領導賞識,到(dào)如今,晉升成功,赫然成了(le/liǎo)大(dà)劉的(de)上(shàng)司。大(dà)劉百思不(bù)得其解。

大(dà)劉和(hé / huò)老田本身在(zài)前家公司都是(shì)高級程序員,前後腳跳槽到(dào)了(le/liǎo)現在(zài)這(zhè)家公司。

大(dà)劉來(lái)的(de)早,成了(le/liǎo)架構師。老田呢,技術本就(jiù)不(bù)如大(dà)劉,被大(dà)劉拉來(lái)後,先是(shì)當了(le/liǎo)個(gè)高級工程師,隻是(shì)爲(wéi / wèi)了(le/liǎo)避嫌,沒跟大(dà)劉一(yī / yì /yí)個(gè)團隊。

後來(lái),老田被那時(shí)候的(de) Leader 賞識,做了(le/liǎo)帶項目的(de)組長,再後來(lái),就(jiù)是(shì)現在(zài)成功的(de)晉升總監了(le/liǎo)。而(ér)大(dà)劉,好幾年了(le/liǎo)卻依然在(zài)架構師這(zhè)崗位原地(dì / de)踏步,動彈不(bù)得。

大(dà)劉陷入了(le/liǎo)濃濃的(de)迷茫,他(tā)自問自己工作态度毫無問題,做事情也(yě)兢兢業業。公司的(de)技術攻關,經常也(yě)是(shì)大(dà)劉牽頭搞定。公司的(de)技術培訓,作爲(wéi / wèi)架構師的(de)大(dà)劉俨然是(shì)一(yī / yì /yí)個(gè)非常權威的(de)大(dà)牛講師。

就(jiù)算是(shì)老田,也(yě)需要(yào / yāo)時(shí)不(bù)時(shí)去找大(dà)劉請教一(yī / yì /yí)些技術難題和(hé / huò)技術方向。可是(shì),即使這(zhè)樣,在(zài)公司技術領域造詣很深的(de)大(dà)劉,卻依然沒有獲得進身之(zhī)階,被老田壓了(le/liǎo)一(yī / yì /yí)頭。

大(dà)劉沒忍住,找了(le/liǎo)個(gè)不(bù)忙的(de)日子(zǐ),拉着老田去了(le/liǎo)個(gè)小飯館,在(zài)飯桌上(shàng),大(dà)劉就(jiù)說(shuō)起了(le/liǎo)他(tā)自己的(de)尴尬處境以(yǐ)及對老田升職加薪的(de)不(bù)解。

老田對大(dà)劉并沒有藏着掖着,在(zài)飯桌上(shàng),他(tā)和(hé / huò)大(dà)劉坦誠溝通了(le/liǎo)他(tā)的(de)經驗,并列出(chū)了(le/liǎo)他(tā)認爲(wéi / wèi)他(tā)可以(yǐ)升職加薪的(de)一(yī / yì /yí)些非常突出(chū)的(de)能力。

二人(rén)酒足飯飽,大(dà)劉回到(dào)家後,仔細琢磨深究,他(tā)總結了(le/liǎo)以(yǐ)下幾點。

1. 盡量努力的(de)多去閱讀别人(rén)的(de)代碼,越多越好

這(zhè)點大(dà)劉開始并沒當回事,可是(shì)在(zài)和(hé / huò)老田溝通的(de)過程中,大(dà)劉發現,老田理解的(de)閱讀别人(rén)的(de)代碼和(hé / huò)他(tā)理解的(de)閱讀代碼是(shì)兩回事。

大(dà)劉閱讀代碼,特别喜歡看那些開源的(de)好代碼。跟着文檔品讀那些開源的(de)優秀代碼的(de)卓越之(zhī)處,每當看到(dào)妙處,大(dà)劉都覺得學到(dào)了(le/liǎo)新東西,感覺自己技術進步了(le/liǎo)許多。

但是(shì),當大(dà)劉閱讀自己公司的(de)各種代碼的(de)時(shí)候,大(dà)劉是(shì)相當沒有耐心的(de)。他(tā)覺得别人(rén)代碼寫的(de)太次了(le/liǎo),他(tā)把這(zhè)些代碼統統成爲(wéi / wèi)“屎山”。

而(ér)老田恰恰相反。老實說(shuō),老田對市面上(shàng)各種開源框架的(de)了(le/liǎo)解水平,對各種中間件的(de)内部原理理解都是(shì)遠遠不(bù)如大(dà)劉的(de),經常還需要(yào / yāo)咨詢大(dà)劉。

但是(shì),對于(yú)公司的(de)各項目代碼,老田卻是(shì)了(le/liǎo)如指掌,對各項目中的(de)那些代碼和(hé / huò)問題都是(shì)有十分深入的(de)了(le/liǎo)解。

那麽最終升職加薪不(bù)是(shì)大(dà)劉,這(zhè)是(shì)爲(wéi / wèi)什麽?

二人(rén)聊完之(zhī)後,大(dà)劉終于(yú)明白了(le/liǎo)。

首先,公司除了(le/liǎo)需要(yào / yāo)大(dà)劉的(de)技術能力,更需要(yào / yāo)的(de)是(shì)作爲(wéi / wèi)技術專家解決公司實際問題的(de)能力。

由于(yú)大(dà)劉抵觸閱讀公司很多項目的(de)代碼,所以(yǐ),往往大(dà)劉的(de)某些技術方案在(zài)落地(dì / de)的(de)時(shí)候會出(chū)現脫節。有時(shí)候,又由于(yú)對項目代碼的(de)不(bù)理解,甚至沒有給出(chū)有效的(de)解決方案。

而(ér)老田,由于(yú)對公司項目代碼了(le/liǎo)解的(de)很深入,雖然技術能力或者說(shuō)知識面不(bù)如大(dà)劉,但是(shì)卻總是(shì)能給出(chū)最合理的(de)解決方案來(lái)。

長此以(yǐ)往,老田反而(ér)比大(dà)劉更展示出(chū)了(le/liǎo)一(yī / yì /yí)位高級技術人(rén)員應該具有的(de)能力。

很多程序員和(hé / huò)大(dà)劉其實是(shì)一(yī / yì /yí)樣的(de),他(tā)們不(bù)喜歡自己公司的(de)很多代碼,認爲(wéi / wèi)這(zhè)些代碼質量極差,文檔也(yě)非常欠缺,對自己的(de)成長幫助不(bù)大(dà)。

其實這(zhè)個(gè)觀念其實是(shì)很有問題的(de)。

對這(zhè)些所謂“屎山”的(de)代碼,你如果全都讀進去,研究下去,你起碼會有兩個(gè)好處:

  1. 你能具體知道(dào)代碼爛在(zài)什麽地(dì / de)方,那麽以(yǐ)後你的(de)代碼就(jiù)不(bù)會出(chū)現同樣的(de)問題——由于(yú)你知道(dào)了(le/liǎo)爛代碼爛在(zài)哪裏,你一(yī / yì /yí)定能寫出(chū)更好的(de)代碼,從而(ér)讓那些屎山的(de)代碼逐漸會被自己寫的(de)好代碼所替代。這(zhè)樣一(yī / yì /yí)比較,你的(de)專業能力會顯得非常突出(chū),讓更多的(de)人(rén)認可你這(zhè)位架構師的(de)能力。

  2. 你對公司這(zhè)些代碼讀的(de)越多,掌握的(de)越多,你越不(bù)可替代——對公司這(zhè)些代碼讀的(de)越通透,你越能更快速輕松地(dì / de)把控這(zhè)些代碼,讓以(yǐ)後對這(zhè)些代碼的(de)變革變得更容易。而(ér)輕松修改、革新這(zhè)些代碼的(de)能力,就(jiù)會變成你在(zài)這(zhè)家公司不(bù)可替代性的(de)重要(yào / yāo)因素。

所以(yǐ),各種代碼,無論質量好壞,都需要(yào / yāo)能讀懂讀通,并且讀的(de)越多越好。

能讀懂讀通任何質量的(de)代碼,才是(shì)真正的(de)掌握了(le/liǎo)閱讀代碼的(de)能力。讀的(de)越多,則能識别代碼質量的(de)能力就(jiù)越強,将來(lái)自己就(jiù)越能寫出(chū)更好質量的(de)代碼。

2. 能準确判斷項目的(de)發展方向

大(dà)劉和(hé / huò)老田談的(de)時(shí)候,讓大(dà)劉印象最深刻的(de)就(jiù)是(shì),老田對項目發展狀态的(de)精準判斷。

三年前,倆人(rén)一(yī / yì /yí)起搞了(le/liǎo)個(gè)供公司所有業務項目用的(de)監控系統,目的(de)是(shì)解決公司項目錯誤無法及時(shí)發現和(hé / huò)處理的(de)問題。

當時(shí),這(zhè)套監控系統公司要(yào / yāo)的(de)急,大(dà)家匆匆設計了(le/liǎo)一(yī / yì /yí)版,就(jiù)趕緊趕鴨子(zǐ)上(shàng)架的(de)做了(le/liǎo)一(yī / yì /yí)版。

技術方案也(yě)沒花太多心思,怎麽快怎麽來(lái)。搞完之(zhī)後,大(dà)劉覺得這(zhè)項目以(yǐ)後也(yě)就(jiù)這(zhè)樣了(le/liǎo),公司内部項目,既沒有發展,也(yě)沒有什麽前景。

可是(shì),如今和(hé / huò)老田溝通後,大(dà)劉才吃驚的(de)發現,老田居然一(yī / yì /yí)直跟着這(zhè)個(gè)項目,并對這(zhè)項目進行了(le/liǎo)無數次總結分析和(hé / huò)優化。

随着不(bù)斷地(dì / de)改進,這(zhè)套項目竟然發展出(chū)來(lái)了(le/liǎo)一(yī / yì /yí)套非常完備的(de) APM 系統,使用體驗非常不(bù)錯。公司的(de)商務給客戶出(chū)解決方案的(de)時(shí)候,經常也(yě)會連帶着把這(zhè)套監控系統包含到(dào)解決方案裏。客戶的(de)反饋也(yě)很好,爲(wéi / wèi)公司拿下了(le/liǎo)更多的(de)訂單。

而(ér)大(dà)劉自己呢,爲(wéi / wèi)公司的(de)核心系統設計了(le/liǎo)一(yī / yì /yí)套底層的(de)服務調度編排框架,公司很多系統的(de)底層都依賴于(yú)這(zhè)套框架。

雖然這(zhè)套框架大(dà)劉自己認爲(wéi / wèi)寫的(de)很棒,但是(shì)由于(yú)部署複雜,對應的(de)一(yī / yì /yí)些輔助工具鏈也(yě)由于(yú)大(dà)劉的(de)忽視,沒有及時(shí)開發出(chū)來(lái)。導緻後續的(de)新項目,大(dà)家甯肯用一(yī / yì /yí)些開源框架自己改進,也(yě)不(bù)再使用大(dà)劉的(de)這(zhè)套框架。

分析起來(lái),其實這(zhè)也(yě)算是(shì)大(dà)劉和(hé / huò)老田對各自項目的(de)發展判斷能力的(de)差距導緻的(de)。

老田根據用戶反饋和(hé / huò)市場行情,他(tā)感覺監控系統本身應該是(shì)有前途的(de)。并在(zài)調研了(le/liǎo)市面上(shàng)競對産品的(de)基礎上(shàng),讓這(zhè)套監控系統迸發出(chū)來(lái)了(le/liǎo)絢爛的(de)色彩。

而(ér)大(dà)劉,高開低走,寫出(chū)來(lái)一(yī / yì /yí)個(gè)好框架,但是(shì)由于(yú)對框架的(de)預期判斷錯誤,加上(shàng)對用戶反饋重視不(bù)夠,最終導緻本來(lái)應該非常出(chū)彩的(de)框架就(jiù)此沉淪了(le/liǎo)下去。

3. 去主動管理會議

作爲(wéi / wèi)公司比較重要(yào / yāo)的(de)技術專家,大(dà)量的(de)會議是(shì)免不(bù)了(le/liǎo)的(de)。

大(dà)劉對此非常煩惱,經常因爲(wéi / wèi)這(zhè)些冗長的(de)會議,耽誤了(le/liǎo)許多手頭的(de)工作。

特别是(shì),大(dà)劉作爲(wéi / wèi)架構師,需要(yào / yāo)大(dà)塊連續的(de)時(shí)間去思考技術難題,解決系統問題,以(yǐ)及考慮新項目的(de)架構設計。但是(shì)頻繁的(de)會議,把大(dà)劉的(de)時(shí)間攪和(hé / huò)的(de)支離破碎。

對于(yú)這(zhè)個(gè)問題,大(dà)劉在(zài)飯桌上(shàng)請教了(le/liǎo)老田。老田說(shuō),他(tā)也(yě)面對了(le/liǎo)這(zhè)些問題,好在(zài)他(tā)通過一(yī / yì /yí)些自己的(de)方法,很大(dà)程度緩解了(le/liǎo)這(zhè)些問題。

老田做了(le/liǎo)如下幾個(gè)事情:

  1. 老田對第二天的(de)會議提前和(hé / huò)參會各方溝通,開會時(shí)間盡量協調到(dào)一(yī / yì /yí)起,這(zhè)樣老田能騰出(chū)一(yī / yì /yí)整塊兒時(shí)間,把當日所有可能的(de)會議都集中開完。後續老田就(jiù)會有連續的(de)時(shí)間去深度工作了(le/liǎo)。

  2. 老田會在(zài)開會前一(yī / yì /yí)天,把會議内容和(hé / huò)可能出(chū)現的(de)問題都預先做功課。一(yī / yì /yí)方面是(shì)防止會議開着開着跑題;二是(shì)萬一(yī / yì /yí)出(chū)現争議問題,老田可以(yǐ)列舉出(chū)來(lái)事先準備的(de)技術方案,這(zhè)樣也(yě)能加快會議進度。

  3. 還有,對于(yú)一(yī / yì /yí)些不(bù)那麽重要(yào / yāo)的(de)會議,老田一(yī / yì /yí)定會态度堅決的(de)避開或者指派别人(rén)參加。

4. 版本控制工具的(de)熟練應用

這(zhè)個(gè)問題是(shì)老田主動和(hé / huò)大(dà)劉提出(chū)來(lái)的(de)。

老田發現,對于(yú)版本工具使用不(bù)當,會耽誤開發人(rén)員很多時(shí)間。而(ér)版本控制工具,即使一(yī / yì /yí)些工作多年的(de)程序員,往往也(yě)經常會使用不(bù)當。

這(zhè)些不(bù)當的(de)使用,會造成許多問題。比如,各種各樣的(de)代碼沖突、版本重疊,莫名其妙的(de)代碼丢失。

對此,老田每次負責一(yī / yì /yí)個(gè)新項目,都會嚴格指定版本工具的(de)使用規範,會花時(shí)間對開發人(rén)員統一(yī / yì /yí)培訓版本工具的(de)使用。同時(shí),也(yě)會把各種技巧、注意事項、常用命令整理好,放在(zài)内部的(de)共享文檔中。

老田的(de)這(zhè)些舉措,在(zài)實踐中,大(dà)大(dà)改善了(le/liǎo)版本控制工具不(bù)當使用造成的(de)問題。

有一(yī / yì /yí)個(gè)項目組在(zài)規範使用之(zhī)後,竟然比之(zhī)前的(de)開發速度快了(le/liǎo)三分之(zhī)一(yī / yì /yí)。可想而(ér)知,這(zhè)個(gè)問題有多嚴重了(le/liǎo)。

5. 不(bù)要(yào / yāo)把解決方案複雜化

老田和(hé / huò)大(dà)劉談了(le/liǎo)談關于(yú)技術和(hé / huò)技術落地(dì / de)之(zhī)間存在(zài)的(de)問題。

老田和(hé / huò)大(dà)劉都發現有些程序員特别喜歡炫技,這(zhè)些炫技某些時(shí)候會導緻整個(gè)系統複雜化,最終産出(chū)反而(ér)不(bù)盡如人(rén)意。

老田舉了(le/liǎo)個(gè)例子(zǐ),比如,一(yī / yì /yí)套内部使用的(de)資産管理系統,中間有一(yī / yì /yí)個(gè)需要(yào / yāo)調用公司其他(tā)項目接口的(de)小功能,這(zhè)種簡單的(de)東西交給了(le/liǎo)一(yī / yì /yí)個(gè)比較年輕的(de)程序員。

結果這(zhè)個(gè)程序員又是(shì)考慮對方接口不(bù)穩定的(de)情況,又是(shì)考慮這(zhè)個(gè)功能會有使用過度頻繁的(de)情況,還使用了(le/liǎo)緩存去儲存一(yī / yì /yí)些狀态,防止頻繁調用數據庫。

對于(yú)這(zhè)種情況,從純技術角度,當然會鼓勵人(rén)們想的(de)越全面越好。但是(shì),在(zài)實際落地(dì / de)的(de)時(shí)候,你要(yào / yāo)明白這(zhè)隻是(shì)一(yī / yì /yí)個(gè)公司内部使用的(de)小項目,沒必要(yào / yāo)爲(wéi / wèi)了(le/liǎo)各種概率很低的(de)風險,把明明很小的(de)一(yī / yì /yí)個(gè)功能給做的(de)很複雜。

針對這(zhè)種問題,就(jiù)需要(yào / yāo)技術 Leader 及早發現、介入,防止出(chū)現過度設計、過度開發。

6. 把任務安排的(de)井井有條

老田其實和(hé / huò)大(dà)劉一(yī / yì /yí)樣,每天雜事兒很多,每天的(de)任務也(yě)很多。大(dà)家對這(zhè)些任務的(de)管理能力自然就(jiù)有高有低。

老田對于(yú)任務緊急程度的(de)判斷都是(shì)經過深思熟慮、實際分析過的(de),任務之(zhī)間的(de)先後順序,也(yě)和(hé / huò)任務交付人(rén)認真溝通過。對一(yī / yì /yí)些根本沒必要(yào / yāo)的(de)任務,老田會态度堅決的(de)對這(zhè)些任務說(shuō) No。

大(dà)劉自我總結,他(tā)這(zhè)方面做的(de)不(bù)好。首先,他(tā)安排任務容易被任務交付人(rén)的(de)情緒影響,對方催的(de)急,他(tā)就(jiù)優先安排。其次,任何任務大(dà)劉都沒有拒絕過,頂多是(shì)排期靠後。最後,大(dà)劉沒有考慮任務和(hé / huò)任務之(zhī)間的(de)關系,有些任務之(zhī)間是(shì)關聯的(de),完全可以(yǐ)融合一(yī / yì /yí)起搞定,大(dà)劉卻沒有思考,從而(ér)割裂開安排,這(zhè)也(yě)是(shì)很大(dà)的(de)問題。

比如上(shàng)次,大(dà)劉接到(dào)兩個(gè)任務:1、去掉 VMware;2、MQ 版本升級。

這(zhè)兩個(gè)任務都需要(yào / yāo)業務系統停服才能幹,大(dà)劉當時(shí)也(yě)沒在(zài)意,兩個(gè)任務放在(zài)兩天,連續兩天停服,雖說(shuō)每天停的(de)時(shí)間不(bù)長吧……

這(zhè)倆任務完全可以(yǐ)放在(zài)一(yī / yì /yí)起,利用一(yī / yì /yí)次停服集中解決。這(zhè)樣對用戶影響更小,業務部門也(yě)不(bù)會那麽不(bù)滿。

7. 不(bù)要(yào / yāo)死闆的(de)寫代碼

很多程序員知識面很寬,基本功也(yě)非常紮實。但是(shì),有一(yī / yì /yí)種能力,是(shì)學校教不(bù)出(chū)來(lái)、面試也(yě)不(bù)容易看出(chū)來(lái)的(de),就(jiù)是(shì)代碼能力。

所謂的(de)代碼能力,有的(de)是(shì)指寫代碼不(bù)出(chū) Bug 的(de)能力,有的(de)是(shì)指算法落地(dì / de)能力……但這(zhè)裏想說(shuō)的(de),是(shì)不(bù)寫死闆的(de)呆代碼的(de)能力。

這(zhè)是(shì)什麽意思呢?

我們都知道(dào),程序員少不(bù)了(le/liǎo)要(yào / yāo)維護老項目。在(zài)維護項目的(de)時(shí)候,我們面對各種不(bù)斷的(de)新需求,經常要(yào / yāo)去修改代碼。

修改代碼是(shì)個(gè)很危險的(de)事情,因爲(wéi / wèi)我們修改的(de)代碼往往會和(hé / huò)别的(de)功能耦合住。改了(le/liǎo)一(yī / yì /yí)點代碼,結果影響一(yī / yì /yí)大(dà)片功能的(de)情況經常出(chū)現。最虐心的(de)是(shì),這(zhè)種連帶影響可能不(bù)會馬上(shàng)出(chū)現,不(bù)知道(dào)哪天就(jiù)突然冒出(chū)來(lái)折騰一(yī / yì /yí)把。

如果改代碼經常出(chū)問題,這(zhè)誰扛得住啊!别說(shuō)你自己的(de)技術話語權了(le/liǎo),也(yě)别說(shuō)在(zài)職場脫穎而(ér)出(chū)了(le/liǎo),工作能不(bù)能保得住都不(bù)好說(shuō)。

所以(yǐ),對于(yú)修改代碼的(de)事情,我們需要(yào / yāo)學會的(de)是(shì)不(bù)要(yào / yāo)寫呆代碼。再說(shuō)的(de)直白點就(jiù)是(shì),你不(bù)能寫完代碼運行下沒問題就(jiù)覺得正常了(le/liǎo),你在(zài)寫代碼之(zhī)前需要(yào / yāo)好好思考。

這(zhè)種思考,既不(bù)是(shì)什麽搞設計模式松耦合,也(yě)不(bù)是(shì)搞功能切分獨立成塊。這(zhè)種思考本質是(shì)需要(yào / yāo)你寫代碼前去理解業務,去真正明白業務在(zài)實際是(shì)怎麽運作的(de)。

簡單說(shuō)兩個(gè)例子(zǐ):

7.1. 修改完代碼後,用戶會怎麽使用你現在(zài)修改的(de)功能?

比如,你修改了(le/liǎo)注冊功能,可以(yǐ)兼容第三方登錄。那麽,可能有的(de)老用戶會重新注冊一(yī / yì /yí)個(gè)賬号,以(yǐ)方便第三方登錄。那你對這(zhè)種情況,其實該做的(de)是(shì)綁定,而(ér)不(bù)是(shì)讓用戶重新注冊個(gè)新賬号。

這(zhè)種疏漏,等到(dào)上(shàng)線之(zhī)後才發現就(jiù)晚了(le/liǎo)。這(zhè)不(bù)能完全依賴産品經理,作爲(wéi / wèi)一(yī / yì /yí)個(gè)技術人(rén)員本來(lái)就(jiù)應該對自己的(de)功能做通盤的(de)考慮,這(zhè)才是(shì)真正的(de)負責。

7.2. 你現在(zài)修改的(de)功能,會不(bù)會由于(yú)運營需要(yào / yāo),會換成你完全沒想過的(de)用法?

比如,你搞一(yī / yì /yí)個(gè)用戶充值功能。本來(lái)你隻是(shì)想着用戶遊戲内購直接充值即可。但是(shì),在(zài)實際上(shàng)線後,有時(shí)候運營爲(wéi / wèi)了(le/liǎo)方便 vip 客戶或者爲(wéi / wèi)了(le/liǎo)和(hé / huò)第三方渠道(dào)互換資源,也(yě)會使用這(zhè)個(gè)充值功能。

運營大(dà)批量的(de)連續充值,并且這(zhè)些充值轉換成系統中的(de)貨币,就(jiù)像遊戲中的(de)元寶,就(jiù)有可能超出(chū) Java 中的(de)整數上(shàng)限,從而(ér)造成問題。如果你提前知道(dào)用戶、運營人(rén)員都是(shì)怎麽使用這(zhè)個(gè)功能的(de),你就(jiù)會把數據類型修改成 Long 了(le/liǎo)。

類似的(de)例子(zǐ)有很多,老田還要(yào / yāo)繼續說(shuō)下去的(de)時(shí)候,大(dà)劉給他(tā)打斷了(le/liǎo),“紮心了(le/liǎo),你說(shuō)這(zhè)些坑我沒少掉進去。”

後記

通過和(hé / huò)老田溝通,大(dà)劉知道(dào)自己的(de)問題出(chū)在(zài)哪了(le/liǎo)。他(tā)明白了(le/liǎo),技術隻是(shì)技術人(rén)員的(de)基礎,在(zài)實際工作中想脫穎而(ér)出(chū),除了(le/liǎo)要(yào / yāo)有過硬的(de)技術,還需要(yào / yāo)你的(de)态度、你的(de)各種軟實力,需要(yào / yāo)你把技術轉化爲(wéi / wèi)實際生産力的(de)能力。

大(dà)劉的(de)故事這(zhè)次先說(shuō)到(dào)這(zhè)裏。 


來(lái)源:DotNET技術圈