我的代码和注释都写的像坨屎,那又怎么样?
一周前,我的朋友圈被一篇 #百度某新員工發(fā)飆:前人代碼寫得像一坨屎,顛覆了對大廠的認知# 的文章刷屏了,評論區(qū)也非常熱鬧。
但讓我驚訝的是,幾乎所有的聲音里都充滿著嘲笑與譏諷,有的劍指百度的價值觀,那架勢就好像李彥宏殺了他親爹似的,有的把這事與之前 “阿里云掛掉” 聯(lián)系起來,調(diào)侃技術(shù)大廠與技術(shù) “大腸” 等同,都是一群垃圾貨抱團,還有的則借題發(fā)揮,拿出自己的代碼趾高氣昂的對老板說 “瞧瞧,百度的程序員也不過如此,我們可比他們強多了”。
早就想就此類現(xiàn)象發(fā)表一些觀點,借這個機會,談?wù)勛约旱目捶ā?/p>
2007年初,我曾在杭州某游戲公司擔任架構(gòu)師,負責(zé)在線游戲點卡交易平臺的設(shè)計與開發(fā)。當時游戲虛擬交易非常火爆,為了促進交易額的攀升,市場部的同學(xué)可算是動足了腦經(jīng),今天一個活動,明天一個促銷,搞得研發(fā)的小伙伴疲憊不堪,不僅白天寫代碼趕工,而且晚上還要與運維一起值班守護。
在當時那個時代,我覺得搞開發(fā)的都是一個祖師爺教出來的,無論你把任務(wù)分配給誰,也別管內(nèi)容是啥,只要你連續(xù)指派同一類型的任務(wù),他必定會給你抽象個公共服務(wù)出來,然后再和你大談 “代碼(或功能)抽象” 的強大特效,嘴里還不停地叨叨 “以后再遇上這樣的業(yè)務(wù),再也不需要硬編碼了,只需要這么一配,那么一調(diào),就搞定啦!”
很多歷史就是驚人的相似,信息產(chǎn)業(yè)的發(fā)展過去了那么多年,太多的事實表明,在缺乏經(jīng)驗與業(yè)務(wù)背景的前提下,大多數(shù)的抽象設(shè)計都是 “過度設(shè)計” 的產(chǎn)物。
可想而知,隨著這些 “抽象特效” 的陸續(xù)上線,BUG數(shù)直線上升,臨時性補丁滿天飛,好幾次營銷活動都險些釀成了慘劇,還好運氣算不錯,都有驚無險。
就這樣,公司的業(yè)績也在技術(shù)顛簸中不斷的發(fā)展壯大,并在半年內(nèi)完成了新一輪的融資。
2008年春節(jié)后,因部分核心開發(fā)的離職,我打算重新引入一些有經(jīng)驗的架構(gòu)師,并對系統(tǒng)進行部分的重構(gòu)。
在連續(xù)看了幾名候選人之后,我們選定了兩名有電商背景的架構(gòu)師,一個工作五年,一個工作七年,并確認一周后便能入職。正當我們打算大干一場的時候,這倆人卻在入職一周后同時提出離職,這速度刷新了我當時的世界觀。
我有些郁悶,立即找他們談話。
在離職面談中,他們向我傾吐了一些原因:
-
命名沒標準,無效命名太多,完全看不懂;
-
注釋幾乎為空,代碼邏輯全靠BUG;
-
類繼承關(guān)系混亂,把 “面向?qū)ο蟆?硬生生搞成了 “面向過程”,滿屏的IF…ELSE……
這幾點,我用今天的話總結(jié)下:代碼寫的太爛,注釋寫的太沒水準,這系統(tǒng)和人都帶不動,我走了,再見。
行,還算客氣,并沒有直接說出 “像坨屎” 這三個字。
也許是因為不甘心,我一直努力的向他們訴說著整個系統(tǒng)的發(fā)展過程,希望他們明白 “好的架構(gòu)不是設(shè)計出來的,而是演進出來的” 道理,可他們卻在說完以上這些原因之后選擇了沉默,不再說話。
離開后,他們?nèi)チ税⒗?#xff0c;之后我也沒再和他們聯(lián)系過。
回憶起當年的我,那個內(nèi)心還比較純真的年紀,如果你跟我說阿里的代碼和注釋都是金子鑲成的,我也絕對會相信。
這些年,我經(jīng)歷過一些所謂的大廠,也通過人脈關(guān)系了解過一些互聯(lián)網(wǎng)頭部企業(yè)的編碼質(zhì)量。
不可否認,有些公司,有些團隊的某些代碼與注釋,的確看起來像坨屎。
幾年前,我在大智慧,團隊里有位五年經(jīng)驗的工程師,為了用Javascript實現(xiàn)一個 “Next Day”,不僅花了整整一周,而且在實現(xiàn)NextCurrentDay的時候,居然用Javascript從0開始手擼了一遍,這么一個Date+1的計算,還忘記算閏年。
原本三天干完的活,他居然搞了一周,還居然不用Date對象,就算完全沒有腳本基礎(chǔ),我想學(xué)過計算機的應(yīng)該都會知道吧。
不僅如此,他還把這個方法名取名為 “getAbc”,并且沒有一行注釋。
在做CodeReview的時候,差點沒把我氣的背過氣去,瞬間點燃了我的火爆脾氣,指著他的鼻子,呵令他在三天內(nèi)完成修改。
沒想到,這事過去沒幾天,他居然提出離職,并在離職面談時向公司投訴,說我對他進行了人身攻擊。
更有意思的是,他居然去了某某大廠,拿到了比在大智慧高1.5倍的薪水。
經(jīng)過這件事,我覺得自己的人生觀又一次被顛覆了。
“你說我的代碼和注釋都寫的像坨屎?恭喜你,答對了,那又怎么樣?老子不伺候了?!?/p>
你是否從這個事件中聞到了這股味道?
我曾在很多公開場合抨擊過當今的 “新一代” 程序員,而抨擊的內(nèi)容也無非兩點,一是基礎(chǔ)知識薄弱,二是自我要求不高。
說到底,無非就是吐槽他們不了解內(nèi)存結(jié)構(gòu),與數(shù)據(jù)庫范式,甚至連基本的數(shù)據(jù)算法、二進制八進制十六進制轉(zhuǎn)換之類的知識都不懂,或者是心態(tài)浮躁,滿腦充斥著得過且過的價值觀。
現(xiàn)在想想,這也怪不得他們。
互聯(lián)網(wǎng)時代,是一個浮躁的時代,也是效率優(yōu)先的時代,這不僅體現(xiàn)在技術(shù)圈,其他領(lǐng)域也一樣。
如果我問你,現(xiàn)在考個駕照大概需要花費多長時間?相信很多人都會回答:3個月左右、6個月內(nèi)。但在我當年,或許要三年才拿到駕照。
想要成為一名合格的司機,在這三年里,你不但要學(xué)習(xí)機械原理,還要掌握基本的修車技能,并通過 “師父帶徒弟” 的實習(xí)期,才能拿到駕照。
現(xiàn)在呢?只要你的智商能夠分辨 “油門” 和 “剎車”,似乎拿個駕照,也就是半年內(nèi)的事。
有人說,時代造英雄,但別忘了,時代也造 “殺手”。
在馬路上,你會遇到 “馬路殺手”,在技術(shù)圈,你同樣會遇到 “一坨代碼”。
從古至今,似乎效率與質(zhì)量一直是個矛盾,很多人也習(xí)慣拿這事來做擋箭牌。
“為什么沒寫注釋?”
“因為趕工,沒時間寫呀”
“為什么不用這個對象?為什么不取有效方法名?”
“你又沒跟我說,跑動就行了,你那么認真干嘛?”
這些對話是不是特別熟悉?聽上去是不是特別有道理?
如果你也這么認為,我只想對你說,“你不但代碼和注釋寫的像坨屎,技術(shù)價值觀也像坨屎?!?/p>
真是人不要臉,天下無敵。
總結(jié)
以上是生活随笔為你收集整理的我的代码和注释都写的像坨屎,那又怎么样?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 21问,你接得住不?
- 下一篇: StringBuilder 为什么线程不