你見過什么爛代碼?
工作也十多年了,爛代碼見過不少,也寫過不少(慚愧慚愧),那就盤點(diǎn)一下這些年我見過的爛代碼。
編譯不通過的代碼就不在這里提了,只討論一下可以運(yùn)行的代碼:
讓別人看不懂的
-
變量命名沒有含義的:String a;int b;
-
不寫注釋的
-
改了代碼不改注釋的,比上一點(diǎn)更過分
-
一個(gè)類/方法能寫幾千行的,跟蹤代碼那叫一個(gè)累
-
使用版本控制工具,提交的時(shí)候亂寫提交日志的

不考慮性能的
功能實(shí)現(xiàn)了不見得就是好代碼,常見問題:
-
最常見的問題:寫sql的時(shí)候不考慮效率,測(cè)試環(huán)境一跑沒有問題,上了生產(chǎn),數(shù)據(jù)量一大就跑不出來結(jié)果了
-
為了保險(xiǎn)起見,做兩次update的(見過么?看到那段代碼的時(shí)候我都服了)
-
還有莫名其妙sleep(3000),難道是為了下一次改成sleep(2000),就說自己優(yōu)化程序了?

改動(dòng)起來很費(fèi)勁兒的
功能實(shí)現(xiàn)了,效率也沒問題,也不見得是好代碼:
-
該抽象的不抽象出來,明明可以只改一行代碼,但是需要改動(dòng)很多地方
-
代碼分層不明確,或者明明是controller層非要寫點(diǎn)兒業(yè)務(wù)邏輯
-
過度耦合
改動(dòng)起來無從下手的
-
見沒見過一種很神的代碼:很重要,運(yùn)行的很穩(wěn)定,但是你看不懂,稍微改動(dòng)一小處,整個(gè)代碼就不能用了。
還有一種“爛代碼”相信大多數(shù)人都寫過,就是剛學(xué)到一個(gè)算法/設(shè)計(jì)模式/新技術(shù)什么的,非得想方設(shè)法寫到代碼里面,并沒有考慮合適不合適。

