十種讓人無法閱讀的程式碼風格

5 / 20, 2014 其他

之前小弟看到一個程式碼,是朋友給的,一看到,OMG的這程式碼豪恐怖啊,讓我超難理解的,沒縮排邏輯又莫名其妙,讓我完全沒辦法幫他debug,所以今天想要在此介紹一下哪些程式碼風格會降低易讀性,請一定一定要避免啊!

名稱詭異的變數

變數命名時請盡量使用「該變數的用意」,不要用單一字母(a~z),或是一些亂碼(sdfklads),同時命名時應該避開可能會誤導的內容(hrn & hm),只使用符號,或是無關緊要的變數名稱

莫名其妙的註解

有些東西沒必要寫註解,而且在比較複雜的地方,寫註解時應該要說明運作方式而非用途,要標示單位,不然誰知道這是ms還是sec,同時只有開發時可以把不用的程式註解掉,發布時請直接刪除,同時不要特處標記這段Code誰寫的,毫無意義,更不要拿註解當作開發的來龍去脈,沒人想知道你的美麗故事謝謝

if有20層

這絕對不是開玩笑,當初有人來問小弟他的Code哪裡寫錯,我一打開,我TMD,if else不知道多少層了,難道判斷式就不能寫成一行嗎一定要切成這麼多,來找碴嗎?還有ifelse非常多時,請考慮使用switch,沒有人有空陪你慢慢看if的結尾在哪裡

定義一堆無意義的變數

這是初學者比較容易犯得錯誤,定義太多變數,實際上用到的根本不多,這樣只會消耗記憶體資源和降低效率,變數有用到再用,且對於for迴圈計數用的變數,是可以重複利用的,例如這個for迴圈完了,等一下還有一個,所以就把之前的for迴圈計數器規零重新使用

Copy + Paste

Wow網路上好多別人寫的Code,我就複製下來使用,經濟又實惠,但是,你確定這些Code正常?你確定這些Code是怎麼運作的?會有怎樣的漏洞?搞清楚運作方式和淺在危險,否則不要輕易使用網路上的Code,Code都是人寫的,人就會犯錯,不要相信別人寫的Code

把太多東西塞到一個函數裡面

不要嘗試把所有功能放到一個函式裡面,然後再用if…else…還作判斷,請分成很多function,謝謝,同時像是Javascript的Listener,也是同樣道理

把所有內容寫在同一個文件

這也是初學者比較會犯的錯誤,請善用require功能,把設定或是class或是function,另外寫在一個檔案,不要全部塞在同一個檔案,會讓維護十分吃力

違反正常邏輯的Code

一般工程師會用for迴圈,$i++,喔不我們要獨樹一格,用while搭配$i–,挖我好棒棒,拜託不要這樣啊,寫程式時請盡量符合通用的習慣,或是至少不要差太多,不然會讓人看了很匪夷所思

不縮排或亂縮排

縮排是把Code依照結構作整理,可以更輕鬆閱讀,除非是壓縮版,否則請善用縮排,更不要亂縮排,會讓閱讀十分困難

完全不作測試

人非聖賢,孰能無過,任何人寫Code都會有錯誤,所以寫完Code務必要測試,不要自信過度了

以上就是我大概的整理,希望大家能夠避免以上狀況,也歡迎各位提出自己想法