去年二月初有幸成為一個優秀產品組里的一員,一年的工作中遇到各種問題,但是讓我受益良多的還是關於如何編寫優良的代碼。說明如何寫代碼的文章很多,這里列出一些我在工作中遇到的情形,如有不當之處還請及時指正。
1. 讓命名變得有意義。
在你的代碼中使用有意義的名稱去命名你的變量和方法等。我們應該通過名稱就可以知道該變量或者方法的大致用途,優雅的代碼應該是自解釋的。一個好的名稱要比一個泛泛的命名加上一堆注釋行之有效。
2. 編寫簡潔可讀性強的代碼。
代碼不僅僅是為了讓程序能夠運行起來,代碼還得供人閱讀和修改,因此代碼的簡潔性和可讀性對於代碼的維護甚為重要。用盡量少的代碼做盡量多的事,這樣可以降低出錯的幾率,也可以使代碼更加優雅和簡潔。一個方法只負責一件事,不要將多件事的不同邏輯放在一個方法內。讓你的方法的行數控制在一屏之內,這樣方便閱讀。簡潔優雅的代碼需要我們不斷的努力和嘗試,直到可以隨心所欲寫出優雅的代碼。
3. 為你的代碼添加注釋。
“靠!為什么這里要乘以0.75?”你在看代碼的時候是不是會經常發生這種事?有沒有過自己寫的代碼過了一段時間看不懂了?所以在你代碼必要的地方加上注釋!為了你和將來維護你代碼的人,在必要的地方寫上你為什么這么做、為什么要引入這個變量,從而讓你的代碼具有更佳的可讀性和管理性。
4. 不要復制現有的代碼。
在當前程序中復制、粘貼現有代碼會導致一個代碼片段在應用程序中多處出現。將來如果需要改變這些代碼時,一旦忘記修改所有的,就會產生bug了。而且復制、粘貼現有的代碼也會讓文件變得混亂和臃腫,不利於文件的管理。
5. 只捕獲你能處理的異常。
當我們在代碼中使用try{...}catch(...Exception){...}捕獲異常時,這就表明我們察覺到代碼中包含着可能失敗出錯的代碼,並且我們知道怎么處理該異常並恢復錯誤的邏輯。如果我們捕獲了我們不能處理的異常而只是吞噬小,這就會導致邏輯不能恢復到正常狀態,但是應用程序卻還繼續運行,這樣就會導致應用程序存在安全隱患了,我想應該沒有那個人願意用一個看似正常但是卻不能得到正確輸出的應用程序。因此我們應該只捕獲那些我們能夠處理的異常,對於不能處理的應該讓其順着堆棧往上拋出直到遇到能處理該異常的邏輯代碼。
6. 在性能出現問題時再優化代碼。
對於一段已經運行穩定的代碼,不要輕易地去改進優化,尤其在項目的前期。你的改動隨時有可能會引入新的bug,除非性能提示你非得這么做,而性能測試一般的是在項目后期。
7. 刪除不用的代碼而不僅僅是注釋。
刪除掉那些不用的代碼而不僅僅是注釋掉它。注釋是應該用來解釋和說明代碼的,其目的是為了讓別人更加容易看懂代碼,從而增強代碼的可讀性的。不要在你的程序中用它來注釋那些不用的代碼,取而代之的是你應該將這些不用的代碼刪掉,即使將來你重新需要用到這些代碼,你也可以從版本控制軟件里面得到這些代碼。
7. 不要將多個類放到一個文件里面。
將類定義到單獨的文件里面,通過文件名就可以知道是什么類了,而不需要打開文件或者使用全局搜索去查找類定義的位置。將類定義到單獨的文件里還可以讓你通過文件結構可以映射出程序的結構。