工作也十多年了,爛代碼見過不少,也寫過不少(慚愧慚愧),那就盤點(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è)法寫到代碼里面,并沒有考慮合適不合適。