程式碼簡潔的十條建議
1.命名規則
- 所有變數,方法名和類名都應該遵循CamelCase風格。唯一不同的是,類名的首字母要大寫。
class UserService {
private String firstName;
public String getFirstName() {
return firstName;
}
}
- 常量全部使用大寫字母並且以下劃線分割
final int MAX_AGE = 20;
- 變數名或者方法名不應包含太多單詞。越簡單越好,同時要能表達出意圖。
//This is a BAD practice
public void saveUserIntoMongoDBDatabase(User user);
//This is much better
public void saveUser(User user);
2.寫你所想
定義一個變數時不要偷懶,給它一個全名,而不是名字裡的一個字母。變數名應該能表達出他的值。即便你知道這個變數是幹嘛的,並不意味其他開發者也知道。同時當你過一陣時間再來看這段程式碼時,也可能記不起這個變數的含義。
讓我們看看下面的一段程式碼:
public boolean check() {
if (a < max) {
return true;
} else {
return false;
}
}
這段程式碼非常不清晰,其他開發當然也不明所以。我們重構一下,看看怎麼更好地寫這段程式碼。
public boolean isAgeAcceptable() {
if (userAge < maxAge) {
return true;
} else {
return false;
}
}
3. 變數/方法宣告
類的變數應該在其頂部宣告。如此一來,你總能知道去哪裡看變數的宣告而不是滾動整個檔案去尋找。
如果一個變數只在一個方法中使用,那麼將其宣告為一個區域性變數即可。
方法宣告的順序應該和它們使用的順序一致(從上而下)。舉個栗子,如果一個方法呼叫當前的方法,那麼這個方法應該宣告當前方法的下面。
同時,越重要的方法就應該宣告在前面。
4. 單一職責
一個方法應該只負責一件事情。如果你的方法同時做啦兩件以上不同的事情,你應該這個方法的一些功能移到其他方法。
這樣的方法才容易理解,擴充套件和被其他方法複用。
舉個栗子,你有一個方法saveUserAndChargeCard(),將使用者儲存到資料庫並且刷使用者的信用卡。這個方法不好,因為他名字包含And而且幹啦兩件事。在方法命中避免使用and和or等等。你可以將這個方法分成saveUser()和chargeCard().
5.短方法
對開發這而言,短方法的長度並沒有一個標準的準則。可能有人說最多10行,有些人說最多五行,有些情況下20行也是可以的。所以究竟多少才合適呢?事實上,並木有一個標準答案。儘量使你的方法越短越好。通常5到10行為最佳。當然你的方法有12行或則15行也不會有人打你的,但是要保證你這15行程式碼的可理解性和高質量。
6.最小化你的程式碼
能用一行搞定的就別用三行。這意味著你寫程式碼時考慮下最佳的方式。
看看下面的例子:
boolean hasCreditCard(User user) {
if (user.hasCard) {
return true;
} else {
return false;
}
}
乍看之下,好像並無不妥,但是這段其實可以簡化一下。
boolean hasCreditCard(User user) {
return user.hasCard;
}
看到沒,一行抵過五行,所以下筆前三思囖。
7.重複是原罪
在你的工程裡避免程式碼冗餘。如果你的方法不能在其他地方複用,那麼想個更好的方式去實現它。你的方法應該儘可能地通用。這也將有助於你的小夥伴直接使用你的方法而不是再去寫一個。
8. 註釋
註釋在以前一段時間內都是開發者的日常操作,現在有些不同啦,如果你給你的程式碼加啦一段註釋,那麼說明你的程式碼不能自解釋,你應該選擇一個更好的方法來實現它。
註釋存在的另一個問題是,開發在經常去改程式碼去忘啦改註釋。
當然如果你寫啦一段很複雜的演算法,你的註釋將幫助其他程式設計師理解。
9. 程式碼檢測工具
即便你採納啦以上的所有建議,我也推薦你使用一些工具來檢查你的程式碼質量。這個工具可以掃描你的程式碼,並指出你出錯的地方。因為你人工檢查時可能會遺漏。
其中一個工具是SonarQube.一款程式碼質量分析的優秀產品。
10.最佳實踐
無論你在實現什麼功能,我想有人在你之前就已經做過啦。所以在你實現這個需求之前可以先調研一下。
相關文章
- 讓論文摘要更出彩的十條建議
- JavaScript 程式碼簡潔之道JavaScript
- JavaScript程式碼簡潔之道JavaScript
- 如何編寫簡潔的程式碼?
- 使用Wardley Mapping有效講故事的十條建議 - kdaAPP
- Dave Cheney:編寫簡單,可讀,可維護的Go程式碼的十個工程建議Go
- 總結 90 條寫 Python 程式的建議Python
- JS程式碼簡潔之道--函式JS函式
- Clean Code PHP 程式碼簡潔之道PHP
- Java程式碼建議Java
- 我總結了寫出高質量程式碼的12條建議
- async/await 是如何讓程式碼更加簡潔的?AI
- PHP程式碼簡潔之道——函式部分PHP函式
- PHP程式碼簡潔之道——變數部分PHP變數
- JAVA基礎之程式碼簡潔之道Java
- 在 Laravel 中編寫簡潔的程式碼的策略Laravel
- 給程式設計師“菜鳥”的6條建議程式設計師
- Spring Boot 整合 Lombok 讓程式碼更簡潔Spring BootLombok
- Go 程式碼審查建議Go
- 避開NullPointerException的10條建議NullException
- 程式碼簡潔之道:編寫乾淨的 React Components & JSXReactJS
- JDK新特性——Stream程式碼簡潔之道的詳細用法JDK
- 企業數字化轉型選用“低程式碼平臺”的8條建議!
- Midway 後端程式碼的設計建議後端
- [譯] 程式碼評審的 8 點建議
- #給java程式設計師的10條建議,吐血推薦!Java程式設計師
- 給各位PHP程式設計師十點未來的建議PHP程式設計師
- 提升 JumpServer 安全的10條建議 | IDCFServer
- 分享常用的CSS函式,助你寫出更簡潔的程式碼CSS函式
- 整潔的 Table View 程式碼View
- 最簡潔的python條件判斷語句寫法Python
- 關於程式碼版本管理的思考和建議
- 基礎程式碼重構的若干建議(一)
- 程式碼整潔之道
- 五個簡單的原則,帶你寫出整潔程式碼
- 使用 Macro 讓你的程式碼更簡潔,更具有可讀性Mac
- 常用 CSS 程式碼片段集合,建議收藏CSS
- TypeScript 中的決策表:一種被低估的簡潔程式碼模式TypeScript模式