編寫更好的程式碼對於將您的程式設計技能提升到一個新的水平至關重要!
在本文中,我整理了一些「易於閱讀的程式碼」的檢查點,您可以在日常編碼時牢記這些檢查點,特別是對於 Java 初學者而言。
當你回頭看你的程式碼時,如果它滿足以下檢查項,那麼它就可以說是一個好的程式碼!
命名
評論和文件
控制流
類別和方法
讓我們透過比較優缺點來檢查上述專案!
這樣,您只需查看變數或方法的名稱即可了解其作用!
int d;
→何を表すか不明
int daysSinceCreation;
→作成日からの経過日数だと一目でわかる
處理多個元素時使用複數以避免讀者混淆。
List<Product> product = getProducts();
→リストなのに単数形
List<Product> products = getProducts();
→複数のProductのリストだと明確
加入註釋來解釋為什麼程式碼本身沒有解釋它。
// 価格に100を足す
→コードを見ればわかる
// 消費税計算のため
→なぜこの計算が必要なのか、意図がわかる
使用XML註解簡潔地解釋方法的作用、參數和回傳值!
沒有任何解釋
/**
* 商品の合計価格を計算します。
* @param priceList 価格のリスト
* @return 合計価格
*/
public int calculateTotalPrice(List<Integer> priceList) {
// ...
}
→可以寫不影響程式執行的註解和解釋。
為了避免不必要的嵌套,如果條件不滿足,請儘早退出方法。
public void processOrder(Order order) {
if (order != null) {
if (order.isAvailable()) {
// 処理
} else {
// エラー処理
}
}
}
→ 需要了解多種條件才能進入主流程,很難立即理解程式碼的意圖。
public void processOrder(Order order) {
if (order == null || !order.isAvailable()) {
// エラー処理やログ出力
return;
}
// メインの処理
}
→可以輕鬆了解執行主要流程的前提條件。
將布林變數或方法傳回值與 == true 或 == false 進行比較是多餘的。
if (isCompleted == true)
if (isCompleted)
請遵守以下角色!
Void 方法:它們專門用於執行某些處理並且不傳回值。
函數(傳回值的方法):專門用於獲取和計算值,沒有無效副作用(例如螢幕輸出)
calculateAndPrintTotal(price);
→計算と出力を両方行うため、再利用が難しい
// 計算のみを行い、結果を返す
public int calculateTotal(int price) {
return price + 100;
}
// 別の場所で結果を出力
System.out.println(calculateTotal(100));
→再利用可能
每種方法應該只有一個角色。
processDataAndSaveToFile();
→データ処理とファイル保存という2つの役割を持ってしまう。
processData();
saveToFile(data);
→1つの役割のみを持つ。
減少無意義的臨時變數使得程式碼更加簡潔。
var result = findProduct();
return result;
→ 僅回傳即可傳達訊息。
return findProduct();
我相信只要注意以上幾點,就能寫出高一級的程式碼!
這將有助於團隊開發中的順暢溝通,從而產生更高品質的程式碼和更少的錯誤!