一
前些天和一個以前的同事(程序媛)聊天,和我訴苦到这吻,她新?lián)Q的一家公司吊档,其他還好,就是有一點特別奇葩:程序猿績效好的主要評判標(biāo)準(zhǔn)是代碼是否足夠多唾糯。
我聽完了之后怠硼,送了她一個表情:目瞪口呆.jpg。
然后我建議她移怯,試用期時香璃,要是覺得還不爽,趕緊和這公司say goodbye 吧芋酌。
在帝都互聯(lián)網(wǎng)技術(shù)這么發(fā)達(dá)的一線城市增显,居然還有 boss 拿著N年前的技術(shù)管理來治理團隊雁佳,想必公司的產(chǎn)品必定“火翻天“脐帝,效益”杠杠滴“啊。
就像我是 N 流技術(shù)出身的我都了解到糖权,代碼行數(shù)不能代表工作量堵腹,以代碼行數(shù)論英雄的,都是耍流氓星澳!
為了統(tǒng)計代碼方便疚顷,這家公司還專門派來一位技術(shù)人員負(fù)責(zé)開發(fā)專業(yè)的代碼數(shù)量統(tǒng)計工具,不但精確計算代碼行數(shù)禁偎,還嚴(yán)格規(guī)定代碼注釋率必須達(dá)到30%以上(他們的主要編程語言是JAVA)腿堤。
一些程序猿要離職前,必須過的一個大關(guān)就是代碼體檢如暖,若注釋率不達(dá)標(biāo)笆檀,他們得重新來過,查漏補缺盒至,把該補的注釋都給補上酗洒。
有些年久長遠(yuǎn)的代碼,久到這些親媽程序猿都不認(rèn)識了枷遂,為了脫離“苦河V裕”,他們就胡編亂湊酒唉,隨便了事矩桂。
靠代碼行數(shù)來衡量開發(fā)進(jìn)度,就像是憑重量來衡量飛機制造的進(jìn)度痪伦≈读瘢——Bill Gates
一個循環(huán)展開寫阔籽,是在滾雪球么?
二
靠代碼量的產(chǎn)出多少來衡量一個員工的價值牲蜀,此技術(shù)團隊管理必是混亂的笆制。
王小波有一篇小說,就說到程序猿王二的一段有趣猿生經(jīng)歷涣达,大 boss 據(jù)代碼量發(fā)工資在辆,為了生存,于是他開始挖空心思度苔,本來一行就能解決的匆篓,就擴展到100行,到200行......
真是藝術(shù)來源于生活翱芤ぁ鸦概!代碼行數(shù)不重要,一行代碼價值多少才是最重要的甩骏。
代碼量本身就沒多大意義窗市,寫多了就是一坨屎!本來就是屎的情況下饮笛,還不斷增加其他一坨坨屎過來咨察,這個產(chǎn)品不臭熏天才怪呢。
這種團隊福青,工作效率勢必低下摄狱、拖泥帶水,本來一個小時能干完的活无午,非得假裝很忙碌辛苦媒役,一天才干完。于公司宪迟,產(chǎn)品更新進(jìn)度緩慢酣衷,于自己,技術(shù)水平也沒有得到鍛煉踩验,這種損人害己鸥诽,不利于建設(shè)社會主義和諧社會的事情,怎么還沒被朝陽大媽舉報呢箕憾?
想想牡借,能用一行代碼就能代替了別人100行的代碼,潛在的 BUG 率少袭异,能實現(xiàn) PM 夢寐以求的功能钠龙,酷炫的頁面,簡潔實用易用性滿分,這個程序猿真是niubility(牛逼)啊碴里,此等人才沈矿,老板你不快委以重任。帶著產(chǎn)品飛帶你飛咬腋,拯救世界羹膳,解救銀河系的重大責(zé)任就落在了此種低調(diào)不浮躁的既有才又萌萌噠的猿類身上了呀。
三
假設(shè)以代碼量衡量績效的方式根竿,目前看來能讓該技術(shù)團隊穩(wěn)步發(fā)展陵像,但是萬一團隊有人離職率怎么辦呢?
于是團隊涌進(jìn)來新鮮血液寇壳,好了醒颖,維護這坨代碼的史詩任務(wù)就光榮交給他了。
想想本來只用看一行代碼就行壳炎,結(jié)果得花更多時間去維護這一坨泞歉,那酸爽!再加上那只有上帝才能看得懂的注釋匿辩,哎腰耙,不說了,想想真心疼新員工撒汉。
新員工內(nèi)心OS:這操蛋的世界沟优,不帶你們這么欺負(fù)人的涕滋。
除了后期維護成本增高睬辐,產(chǎn)品后面的擴展也是極不容易的。
現(xiàn)在的產(chǎn)品大部分是敏捷開發(fā)宾肺,在已有產(chǎn)品基礎(chǔ)上迭代開發(fā)溯饵,增加新功能,優(yōu)化功能點锨用。不合理的代碼結(jié)構(gòu)丰刊,累贅的代碼語句,也許已經(jīng)不能承載新需求的實現(xiàn)增拥,那么啄巧,他們可能就會走上一條痛苦的道路:重構(gòu)!
所以掌栅,領(lǐng)導(dǎo)們秩仆,得重新審視下這種績效管理方式的有效性了。
四
現(xiàn)在各種編程語言百花齊放猾封,各有優(yōu)點各有長處澄耍。
早期的編程語言,如C++,光調(diào)用一個庫就得好多行代碼齐莲,一天寫個千行不在話下痢站。
有些猿類把代碼獨立成一個函數(shù),明顯比重復(fù)ctrl+c & ctrl+v 的適用性高哇选酗。
知乎上有人回答說:
程序猿使用不同編程語言阵难,實現(xiàn)同一種功能,會據(jù)個人的編程經(jīng)驗以及邏輯復(fù)雜情況而影響代碼質(zhì)量及梳理芒填。大部分情況多望,代碼越少,代碼質(zhì)量越高氢烘,占用內(nèi)存更小怀偷,執(zhí)行起來更高效。
當(dāng)然播玖,相同條件下椎工,兩個技術(shù)人員技術(shù)相當(dāng),實現(xiàn)相似功能蜀踏,代碼量或多或少可以參照一下技術(shù)高低维蒙。
舉雙手雙腳贊成!
用代碼來衡量工作量的做法果覆,更像是一些軟件外行的所作所為颅痊,當(dāng)然 BOSS 也是技術(shù)絕緣體。
我曾了解到一家外包公司局待,甲方外行斑响,就以代碼量為主要因素考慮項目成本,因此這家公司大都糊弄了事钳榨,想想剛收尾的系統(tǒng)舰罚,用不了多久就崩潰了,甲方的心理估計也是崩潰的薛耻。如果是做自己家的產(chǎn)品营罢,還是好好考慮如何寫一些“綠色”代碼吧。
作為績效衡量標(biāo)準(zhǔn)饼齿,代碼行數(shù)只是一個硬性指標(biāo)饲漾,背后的時間成本也要考慮,如會議討論準(zhǔn)備缕溉、前期代碼框架設(shè)計考传,方法搜尋解決等。
五
用代碼量來體現(xiàn)程序猿的績效倒淫,就像用花朵數(shù)多少衡量一棵樹生長情況一樣伙菊,參照物不對败玉。
一般幾個猿類聚餐聚會,在桌面上經(jīng)常會以“我今天寫了xxx行代碼”作為談資镜硕。在這里运翼,他們更多是一種吹牛扯淡的行為,向同行展示自己多么牛比哄哄兴枯,爾等快來崇拜我血淌。
若向外行炫耀自己的代碼行數(shù),要不是在做對方生意财剖,要不向心儀女神展現(xiàn)優(yōu)點悠夯,贏取關(guān)注。簡單粗暴躺坟,簡明易懂沦补,說復(fù)雜一點說不定就冷場了。
濃縮才是精華咪橙,用少量的代碼夕膀,實現(xiàn)復(fù)雜的功能,不是猿類孜孜以求的么美侦?代碼量算個豌豆(pea产舞,音同pi,所以你懂的)菠剩。
像知乎上的回答:代碼就像女生的裙子易猫,越短越好。
越短越能激起荷爾蒙具壮,寫的人爽准颓,用的人也爽!