求求你規范下你的代碼風格


代碼風格並不影響程序的運行,也不會給你的程序帶來潛在的危險。但一段好的代碼風格,能讓人閱讀起來特別舒服,特別的閱讀別人代碼的時候,有些人的代碼可以說是完全不注意空格、縮進、大小寫的,看起來特別不舒服。

給人好的印象,從一段代碼風格開始。今天我總結了幾個最常用到的代碼規范、可以說你每時每刻都會接觸到的了,也比較簡單,如果你平時沒有按這些規范寫的話,建議慢慢改過來。

1. 類名

類名采用大駝峰的命名形式,所謂大駝峰就是首字母大寫,例如UpperCameCase。

抽象類命名使用 Abstract 或 Base 開頭;異常類使用 Exception 結尾;測試類命名以測試的類名開始,以 Test 結尾。

枚舉類名帶上 Enum 作為后綴,枚舉成員名稱需要大寫,單詞間用下畫線隔開。

2. 包名

包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。一般單詞使用單數形式,但是類名如果有復數含義的話,則可以使用復數形式。

3. 變量

變量可分為不可變量(常量)可變變量

(1). 常量

在 Java 中,常量一般指 final 關鍵字修飾的變量。

1、全局常量類內常量的命名采用字母全部大寫,單詞之間加下畫線的方式。

所謂全局常量指的是類的公開靜態屬性,使用 public static final 修飾;類內常量指的是私有靜態屬性,使用 private static final 修飾。

2、局部常量則采用小駝峰的形式。所謂局部常量指的是方法內的常量。

例子展示:

public class Constant {
    //全局常量
    public static final String MY_NAME = "shuaidi";
    //類內常量
    private static final String MY_SEX = "男";
    
    public void tt(){
        //局部常量
        final String myName = "shuaidi";
    }
}

(2). 可變變量

可變變量一般常用小駝峰的命名形式,如 myName ,小駝峰和大駝峰的區別就是,小駝峰首字母小寫,而大駝峰首字母大寫。不過需要注意的是,針對布爾類型的變量,在命名的時候,不要用 is 做前綴,否則部分框架在解析的時候會引起序列化錯誤。

例如標識是否刪除的成員變量 Boolean isDeleted, 它的 getter 方法也是 isDeleted(),框架在反向解析的時候,會誤認為對應的屬性名稱為 deleted,從而引起錯誤。

4. 空格

我發現很多人在寫代碼的時候,在運算符、賦值、參數等之間很少使用空格來隔開各種元素之間的距離,例如

//錯誤例子示范,注:里面的代碼之間沒啥聯系,都是隨意給出的。
int a=1
int b=a==1?1:2;
if(a==1&&b==2){
    print(a,b);//調用打印函數
}else{
    
}
public static void print(int a,int b){
    System.out.printf(a+b);
}

像上面的這個例子中,就是幾乎沒用到空格的,代碼看起來很緊,反正我看起來是很不舒服,特別的當代碼很多的時候。

下面是我給的關於加空格的幾點建議:

1、二目、三目運算符的左右兩邊都應該加一個空格。

2、注釋的雙斜線與注釋內容之間有且僅有一個空格。

3、方法參數在定義和傳入參數時,多個參數逗號后邊都應該加空格。

4、如果大括號為空,則簡潔地寫成{}即可,大括號中間無須換行和加空格。

5、左右小括號與括號內部的相鄰字符之間不要出現空格。

6、左大括號前需要加空格。

所以,修改后如下:

int a = 1;
int b = a == 1 ? 1 : 2;
if(a == 1 && b == 2) {
    print(a, b);
} else {}

public static void print(int a, int b) {
    System.out.printf(a + b);// 調用打印函數
}

這樣看起來舒服多了,特別是在括號內參數多的的時候。

5. 控制語句

控制語句可以說是最容易出現 bug 的地方,所以代碼風格的約束極為重要,而不是天馬行空地亂跳。因此,控制語句必須遵循如下約定:

1、在 if, for, while, do-while 等語句中必須使用大括號,即使只有一行代碼,也應該加上大括號。例如:

int sum = 0;
for(int i = 0; i < 10; i++) {
    sum += i;// 盡管只有一行/
}

2、在條件表達式中不允許出現賦值操作,也不允許在判斷表達式中出現復雜的所及組合。例如:

//復雜的多級組合
if((file.open(fileName, "w") != null) && (...) && (...)) {
    dosomething();
}

爭取的做法應該是將復雜的多級運算賦值給一個具有業務含義的布爾變量。例如:

boolean existed = (file.open(fileName, "w") != null) && (...) && (...);

if(existed) {
    dosomething();
}

3、多層嵌套不能超過三層。

6. 關於縮進與空格

一個縮進的距離等於四個空格的距離,但究竟是要使用 Tab 縮進來調距離還是用四個空格代替一個縮進來調距離,這個貌似存在爭議,有些大佬建議用 Tab 鍵,有些大佬建議用空格。我在《碼出高效Java開發手冊》里,本書的作者是推薦四個空格縮進,禁止使用Tab鍵。

當然,你在使用IDE的時候,當你換行時,很多編輯器是會幫你自動縮進的,大多數IDE都是默認四個空格來縮進。

不過很多 IDE 工具提供了 Tab 鍵與空格之間的快速轉換設置。例如對於 IDEA 這個工具,要設置 Tab 鍵為四個空格時,可以在設置那里勾選 Use tab character(setting->editor->Code Style->選擇你想編輯的語言);而在 Eclipse 中,就得勾選 Insert spaces for tabs。

上面講的這幾點,可以說是無時無刻都在和他們打交道的了,其他比較少接觸的我就不列出來了。你平時有木按照這種風格來寫呢?

文章首發於我的公眾號「苦逼的碼農」,原文鏈接:求求你規范下你的代碼風格


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM