當前位置:
首頁 > 知識 > 為什麼有的大公司代碼也很爛?

為什麼有的大公司代碼也很爛?

最近一個朋友進入夢寐以求的大公司,和我抱怨了下,他們大公司代碼寫的也不怎麼好,連他一個菜雞都能看出邏輯漏洞,都沒人改。讓他有點懷疑人生了。那麼為什麼有的大公司代碼也會如此爛呢?

很多人第一個給的原因就是:歷史原因。可能這是最重要的點,如果是老項目,幾乎每個人都是一來接手一個項目,如果之前維護這個項目的人,水平比較高,代碼行雲流水,代碼規範,邏輯嚴謹度都很高,恭喜你,你獲取一個學習優秀代碼的成長起點。對於你是幸運的,魚哥之前接觸過這樣的項目,真是寫的好,巧妙的設計模式,邏輯清晰,和讀系統源碼一樣。但是你沒那麼幸運,接手一個水平不是很高的團隊維護的代碼,那你就有事情做了,重新寫,還是重構。爛代碼跟一坨屎一樣,很多時候就是和一坨屎共處千萬別深挖,說不定把哪裡挖塌了把你埋了,扔一坨代碼到屎山上,達到自己目的,能跑就行了,你還要搞清楚山上的屎哪一坨是誰拉的,拉的人吃了什麼,就沒什麼意思了。能在超級大的屎山上扔一坨代碼進去,把自己的事幹了,也是本事真的,畢竟誰沒維護過爛代碼。複雜度足夠大,都會成為屎山的,什麼設計模式都沒什麼鳥用。這時候可以花時間加班來重寫吧,不然你干不下去的,等著你的要麼走人。

大公司業務邏輯複雜這點很容易理解,一個系統和N多系統集成,一個業務對象上百個欄位和幾十種狀態,一個流程幾十個環節。大公司人員變動大很多開發的還是外包人員,外包人員的流動性可想而知。技術更新換代代價太大。但沒有人敢去推倒重來,單單修改後的測試工作量就不可小覷。而且改好了無功(不出績效),改出問題了誰都負責不起,所以只要代碼能工作,後面的開發都是在上面修修補補,導致整體代碼千瘡百孔慘不忍睹。技術leader只關注功能,不關注代碼很多leader其實根本不是寫代碼寫上去的,而是直接就去做了「架構師」,說實話他自己都寫不好代碼,這也是很主要的一個原因。

還有,領導也不會關心你什麼技術實現,不會關心你是10行代碼還是1000行代碼。所以,這種背景下,要把代碼寫得好到好像一個人寫的一樣人能看懂,還是很難的。老代碼只要沒有毛病,沒人會去優化裝飾,沒有人會去干這些吃力不討好的工作,代碼重構/代碼評審很多時候是流於形式,只是說說而已。有些大項目每年的代碼量以50%速度增加,真是好大的負資產啊!

那有人說,大公司不是每個人技術都很強的么?有這個想法的人,你就大錯特錯了,大公司每年都會校招很多應屆生,有些應屆生在短短几年後成才起來,跑路了,有些沒有成長起來的,還是要持續寫代碼,那麼自然就有隱患了,如果不是很精幹的工程師來負責review代碼的話。就會變成一個一坨屎坑。面試時,招大牛是需要價錢的,很多公司由於成本原因,並不會這麼去做。

一個團隊,在任何時候,都應該分辨得出:

分辨什麼樣的爛是真爛,什麼樣的爛是業務複雜;

分辨不出,就不要去修改。

也應該積極尋求:如果是業務複雜,能不能更簡化更抽象一些;如果是爛,能不能在有限的成本中改好一些。

為什麼有的大公司代碼也很爛?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

CentOS7下配置Nginx

TAG:程序員小新人學習 |