在寫(xiě)代碼,文檔方面,程序員最喜歡且最常做的是不寫(xiě)文檔,不寫(xiě)代碼注釋?zhuān)畈辉敢饪吹骄褪牵簞e人不寫(xiě)文檔,別人不寫(xiě)代碼注釋?zhuān)@幾乎是所有程序員的一個(gè)狀態(tài)吧。遇到無(wú)文檔,無(wú)注釋?zhuān)瑹o(wú)人可問(wèn)的代碼,對(duì)于一個(gè)程序員來(lái)說(shuō)是比較崩潰的,對(duì)么?想必有部分程序員朋友可能會(huì)遇到這樣尷尬的場(chǎng)景,不過(guò)比起這樣的情況,還有一種情況也是夠難受的,下面讓我們來(lái)看看這名安卓工程師遇到的情況吧!
據(jù)這名安卓工程師所說(shuō),他剛?cè)肼毩艘患夜?,然后被分配了一個(gè)項(xiàng)目,需要接手維護(hù)其他人的代碼,當(dāng)他看到具體代碼的時(shí)候,就有壓力了,一下子感覺(jué)這個(gè)事情很棘手,很有挑戰(zhàn)性,因?yàn)樗l(fā)現(xiàn)其中一個(gè)Activity
里寫(xiě)了7000行代碼,他就硬著頭皮去看,看的頭都疼了,關(guān)于他這樣的描述,想必有部分網(wǎng)友也有過(guò)類(lèi)似酸爽的經(jīng)歷吧,針對(duì)這樣的情況,讓我們一起看看其他網(wǎng)友們是怎么看待的吧!
網(wǎng)友一:500行以上都是有問(wèn)題的
上世是朵花:如果排除一些歷史原因,新設(shè)計(jì)代碼一個(gè)方法500行的確是有問(wèn)題的。
騰訊員工:QQ代碼了解一下
網(wǎng)友回復(fù)騰訊員工:QQ是因?yàn)楣δ鼙容^復(fù)雜吧,而且要兼容到Android2.3還是2.2。你這個(gè)歷史原因沒(méi)辦法,但其他的應(yīng)用,一般真沒(méi)那么多東西處理,還是因?yàn)椴欢鸱?,說(shuō)真的,哪怕?lián)Q成Fragment,他們照樣也是一股腦堆代碼。這種事情,見(jiàn)多了就麻木了。
上世是朵花:沒(méi)錯(cuò),設(shè)計(jì)的的初衷都是為了能夠方便維護(hù),但是也不排除有的項(xiàng)目有各種各樣的歷史原因,比如人員更替后,新人沒(méi)有勇氣重構(gòu)代碼,只能在往以前的代碼上繼續(xù)累積,也可能造成代碼臃腫的一個(gè)原因。
網(wǎng)友三:樓主看來(lái)是寫(xiě)小項(xiàng)目的,沒(méi)做過(guò)大項(xiàng)目。7000行很正常,Android源碼一個(gè)類(lèi)都有超過(guò)兩萬(wàn)行的,業(yè)務(wù)多的超過(guò)7000行正常。主要是你想不想擔(dān)風(fēng)險(xiǎn)去重構(gòu)。
樓主回復(fù)網(wǎng)友三:源碼是見(jiàn)過(guò),但是寫(xiě)業(yè)務(wù)邏輯還真沒(méi)見(jiàn)過(guò)
上世是朵花:有一些源碼這樣正常,不過(guò)業(yè)務(wù)邏輯代碼這么多行,抱怨兩句也是正常的
京東員工:歷史問(wèn)題,等以后別人接你盤(pán)的時(shí)候,也會(huì)這樣罵你
上世是朵花:通過(guò)這個(gè)案例,就能感覺(jué)到代碼管理的重要性了。
網(wǎng)友五:上一個(gè)人也是這么說(shuō)的 誰(shuí)寫(xiě)的5000行,然后默默填到7000行
上世是朵花:這話(huà)挺有意思,呵呵,這名網(wǎng)友的意思是這7000行代碼是以前每屆程序員累積的結(jié)果。
小米科技員工:谷歌鼓勵(lì)將邏輯寫(xiě)入acticity,但是7000行就過(guò)分了
上世是朵花:沒(méi)錯(cuò),一個(gè)acticity7000行的確是大的出奇,估計(jì)這里面肯定有一些歷史原因,比如是多個(gè)人累積的結(jié)果。
網(wǎng)友七:你是沒(méi)見(jiàn)識(shí)過(guò)上萬(wàn)行的存儲(chǔ)過(guò)程,方法調(diào)方法
上世是朵花:上萬(wàn)行存儲(chǔ)過(guò)程,厲害了,這個(gè)確實(shí)沒(méi)有見(jiàn)過(guò),沒(méi)有兩下子真不好維護(hù)啊,這也太海量了。
網(wǎng)友八:記得第一次寫(xiě)js一個(gè)復(fù)雜頁(yè)面三個(gè)方法我寫(xiě)了7500行
上世是朵花:每個(gè)方法也2000多行,那這種做法肯定是不科學(xué)了,方法的可拆分性一定很大了。
對(duì)于新做的項(xiàng)目,新開(kāi)發(fā)的產(chǎn)品,我想不會(huì)有哪個(gè)程序員會(huì)一個(gè)方法寫(xiě)7000行不是么?設(shè)計(jì)代碼的初衷都是奔著高效,易維護(hù)的原則去進(jìn)行的,我想這名安卓工程師遇到的情況肯定是有歷史原因的因素在里面,這樣的現(xiàn)象也算是正常,在相當(dāng)一部分公司都會(huì)存在這種“大長(zhǎng)方法”的業(yè)務(wù)代碼,當(dāng)然,這不一定是程序員們故意寫(xiě)成這樣的,每個(gè)這種現(xiàn)象的背后都可能有一個(gè)故事,比如我能想到的就是,這是一段核心代碼,但是維護(hù)這代碼的人在不斷的更替,新來(lái)的人要繼續(xù)維護(hù),沒(méi)有人有勇氣重構(gòu)這段代碼,只能在這段代碼上進(jìn)行累積,如果增加新功能,繼續(xù)往上加,在短期內(nèi)看,往上累積要比重構(gòu)輕松的多,因此大部分人就選擇這種輕松的方式,也許這個(gè)方法最初不到500行,經(jīng)過(guò)幾屆人員接替就逐漸2000行,3000行,5000行的增加,直到這名安卓工程師網(wǎng)友看到的時(shí)候已經(jīng)達(dá)到了7000行了,除非他有勇氣重構(gòu)這段代碼,否則以后這個(gè)代碼會(huì)繼續(xù)8000行,9000行,1萬(wàn)行,一直到最后一個(gè)程序員表示無(wú)法忍受,開(kāi)始準(zhǔn)備下決心去重構(gòu)這段代碼為止。
以上所有圖片均來(lái)之互聯(lián)網(wǎng)? ?
大家好,我是“上世是朵花”。如果你有什么好的看法或者觀點(diǎn)可以在評(píng)論區(qū)展現(xiàn)你的才華,互動(dòng)交流,如果想進(jìn)一步了解我,那就關(guān)注我吧!? ? ? ? ? ? ? ? ?