工作也十多年了,爛代碼見過不少,也寫過不少(慚愧慚愧),那就盤點一下這些年我見過的爛代碼。

編譯不通過的代碼就不在這里提了,只討論一下可以運行的代碼:

讓別人看不懂的

  • 變量命名沒有含義的:String a;int b;

  • 不寫注釋的

  • 改了代碼不改注釋的,比上一點更過分

  • 一個類/方法能寫幾千行的,跟蹤代碼那叫一個累

  • 使用版本控制工具,提交的時候亂寫提交日志的

你見過什么爛代碼

不考慮性能的

功能實現了不見得就是好代碼,常見問題:

  • 最常見的問題:寫sql的時候不考慮效率,測試環境一跑沒有問題,上了生產,數據量一大就跑不出來結果了

  • 為了保險起見,做兩次update的(見過么?看到那段代碼的時候我都服了)

  • 還有莫名其妙sleep(3000),難道是為了下一次改成sleep(2000),就說自己優化程序了?

你見過什么爛代碼

改動起來很費勁兒的

功能實現了,效率也沒問題,也不見得是好代碼:

  • 該抽象的不抽象出來,明明可以只改一行代碼,但是需要改動很多地方

  • 代碼分層不明確,或者明明是controller層非要寫點兒業務邏輯

  • 過度耦合

改動起來無從下手的

  • 見沒見過一種很神的代碼:很重要,運行的很穩定,但是你看不懂,稍微改動一小處,整個代碼就不能用了。

還有一種“爛代碼”相信大多數人都寫過,就是剛學到一個算法/設計模式/新技術什么的,非得想方設法寫到代碼里面,并沒有考慮合適不合適。