關鍵詞 JBuilderX 代碼格式化 代碼美化 代碼模板 引言 代碼編寫風格主要包括變量
方法
類等語言實體的命名和代碼排版布局兩方面
評價代碼質量的高低不僅取決於算法和數據結構
代碼排版布局也是一個不可或缺的方面
隨著現代軟件規模的擴大
團隊開發在所難免
好的代碼編寫風格增強了代碼可讀性和維護性
提高了團隊協作的效率
JBuilder被譽為java航空母艦級的開發工具
目前的最高版本是
命名為JBuilderX
本文著重介紹如何在JBuilderX中美化代碼
格式化代碼排版布局
同時還將介紹JBuilderX加速代碼編寫的一些實用技巧
代碼美化工具 市面上已經有很多代碼美化的工具軟件
比較著名的有Indent
astyle
jalopy
SourceFormatX 等
其中SourceFormatX是一個多語言的代碼美化工具
但這些工具沒有和開發工具很好的集成
且不易操作
功能也不夠強大或不針對專門的java語言
JBuildeX集成了一個強大的代碼排版布局格式化工具
在您編寫好代碼後
可以通過它來美化您的代碼
它可以對代碼做以下
個方面的格式化工作
) 縮進
java代碼以
{}
劃分的不同代碼子域
裡層的域比外層的域需要縮進一些
以使代碼有層次感
通過該工具可以定義裡層相對外層代碼縮進的空格數
Tab鍵對應的空格數;
) 分行
類定義
方法定義以及控制代碼
如if
else
while
try
catch等都有對應的
{}
以組織其代碼區域
您可以指定
{
和
}
是否另起一行;
) 空格
指定在操作符
小括號
()
中括號
[]
分號
;
等符號和操作代碼之間是否需要空格;
) 空行
允許您指定代碼裡哪兒需要加入空行以及空行數
使不同的代碼域之間區分得更加清晰;
) 換行對齊
指定代碼行的最大列數
超過列數的代碼行會被智能拆分成多行
只有包含了操作符或逗號的代碼行才可以被換行
您可以指定換行點是在這些符號前面還是後面
同時
您還可以設定換行後多行的對齊方式;
) 代碼生成規則
控制自動事件句柄
變量可視域及javaBean實例化的代碼生成規則;
) import代碼優化規則
控制類中import代碼引入的包和類如何生成及它們排序的先後順序
以優化import代碼段
創建java工程後
在主窗口左上角的工程面板的工程文件(xxx
jpx)上點擊鼠標右鍵
按以下操作調出代碼美化工具設置界面
選擇Properties
>在彈出窗口左邊的樹中選擇Fomatting
得到如圖
的操作窗口界面
educitycn/img_///gif > 窗口的右邊有
個頁標簽
分別對應上面所談到的
個方面的代碼設置
每一個設置頁左邊對應若干個設置項
右邊是代碼格式化的預覽效果
這樣您就可以即時了解設置項是如何影響代碼的排版布局
下一節我將以具體的例子示范如何使用這個代碼美化工具
下面是一個簡單的java類代碼
其功能非常簡單
是將兩個雙精度數按要求相加或相減
再將其結果值四捨五入為一個整數
該例子只是為了演示代碼格式化
您大可不必追究代碼的功能
package format;
import java
lang
Math;
import java
util
*;
public class FormatSample {
private int i;
private int j;
public FormatSample() {}
public long add(double i
double j
boolean isAdd){
double k ;
if(isAdd){k=i+j;}
else{k=i
j;}
System
out
println(
today is
+((new Date())
toString())+
the operation of
+i+(isAdd?
+
:
+
)+j+
equals
+k);}}
這段代碼的排版布局非常差
雖然只是一小段
也會給閱讀者造成暈旋效果
這一小段代碼在布局上的症結可以歸納為以下幾項
)裡外層代碼域處於相同列
沒有用縮進形成層次布局
) if
else的代碼塊的大括號
{
及
}
和代碼處於同一行
) 操作符和操作數之間沒有用空格分開
) import代碼塊 和 class定義以及方法和方法代碼塊之間沒有空行分隔
擠成一團
) System
out
println那行太長
在IDE窗口中需要移動水平滾動條才可以看到隱藏的代碼
) import 的代碼行引入了過多的類
FormatSample類只需要引入java
util
Date這個類就可以了
對以上這些排版布局缺陷進行修正我們希望得到了以下版本的的代碼 package format;import java
util
Date;public class FormatSample
{
private int i;
private int j;
public FormatSample()
{
}
public long add(double i
double j
boolean isAdd)
{
double k;
if (isAdd)
{
k = i + j;
}
else
{
k = i
j;
}
System
out
println(
today is
+ ( (new Date())
toString())
+
the operation of
+ i
+ (isAdd ?
+
:
+
) + j +
equals
+ k);
return Math
round(k);
}
}
我們通過以下設置步驟來格式化FormatSample類的代碼
在設置代碼格式化後
必須在代碼頁面中點擊鼠標右鍵
選擇Format All按鈕格式化代碼
你也可以在項目窗口的樹中選擇項
並點擊右鍵
選擇Format package
來格式化整個項目的所有代碼
educitycn/img_///gif> ) 使代碼裡外層代碼區域形成層級縮進的布局
切換到代碼美化工具設置界面的Basic標簽頁
設置block indent的縮進空格數
默認的裡層代碼比外層代碼縮進
個空格
這對於使用拉丁語系的國家是比較適合的
對於使用漢語的編程者應用調成
個空格會更好一些
因為
個空格才對應一個漢字的長度
) 使代碼塊的正反大括號
{
和
}
放置在新行中
並且使對應的大括號在列上對齊
切換到Blocks的標簽面
將左邊樹的所有復選框都鉤選
這樣所有大括號都會另起一行
而且成對的大括號會在列上對齊
通過在列上對應的成對大括號
我們能夠非常容易劃分出代碼塊
將所有大括號(除數組初始化的大括號外)另起一行放置比不另起一行放置的代碼可讀性更強
我認為在下面的兩種代碼布局形式中
右邊的代碼比左邊的代碼具有更好的可讀性
if(true){
/**do sth*/
}
else{
/**do sth*/
} if(true)
{
/**do sth*/
}
else
{
/**do sth*/
}
) 操作符和操作數之間插入空格
切換到Spaces標簽頁
該頁面左邊選項樹從上到下分為
個設置項組
分別設置代碼中分號
;
前後的空格
小括號
()
和方法名
關鍵詞及裡面嵌套小括號之間的空格
逗號
前後的空格
小括號和中括號和其包含的代碼之間的間距空格
歸為Others的一些雜項空格項目的設置
通過點擊設置項前的復選框
右邊的預覽窗口將給出設置後的代碼效果
下圖是我們代碼格式化所用的設置
educitycn/img_///gif> ) 在代碼不同部分之間插入空行
java語言的結構化相比於C
Pascal等其他語言的結構都要清晰嚴謹
代碼組織結構按先後順序依次是包定義
引用類加載
類聲明
全局變量聲明和方法聲明
可以在這些不同部分的代碼間插入空行
使代碼不同部分看起來一目了然
空行的設置在Blank Lines的標簽頁中
在這個頁面中你不但可以設置在哪兒插入空行
還可以設置插入空行的數目
如您可以在import代碼部分和類定義代碼部分之間加入兩個空行
全局變量定義代碼之間可不插入空行
方法和方法之間插入一個空行
) 讓太長的代碼行自動換行
代碼編寫窗口大小有限
太長的代碼行需要移動水平滾動條才可以查看
將代碼窗口滾動到右邊時
左邊的代碼又看不到了
造成
神龍見首不見尾
的現象
嚴重影響代碼的可讀性和閱讀效率
JBuilderX在Fomatting窗口的Wrapping標簽頁中提供了智能換行的設置功能
您可以在Wrap after column中設置代碼行的長度
還可以設置代碼行換行的依據符號
代碼行中的逗號
操作符是代碼行自動換行的依據符
JBuilderX在自動換行中提供的另一個精制的功能
可以指定單行拆分成多行後
這些行的對齊方式
你可以指定多行頭部和
(
對齊或和
=
對齊
建議將兩者都鉤選
格式化後
例子中的System
out
println(
…
)代碼行變成了三行
後兩行代碼和
(
對齊
) 優化import代碼塊
切換到Formatting窗口的最後一個Imports標簽頁
對import代碼塊做優化設置
JVM會自動加載java
lang
*包
所以例子中的import java
lang
Math;是多余的
此外類中只用到java
util
*包中的一個類java
util
Date
無需引入包中的其他類
JBuilderX的import代碼優化功能允許你設置一個阈值
在當前類中引用到包中的類數目小於這個阈值時
它就會將包名後的
*
替換成具體的類名
您也可以通過鉤選設置頁面中的Always import classes復選框使import在任何時候都將包後的
*
替換成具體的類名
(注意
通過在代碼窗口中點擊右鍵選擇Format All格式化代碼
不執行import代碼的優化設置
你可以在代碼窗口中按Ctrl+I快捷鍵或用圖
的操作步驟來執行import代碼的優化)
其他加速代碼編寫及排版布局的技巧
) 用模板加速代碼的錄入
保證排版布局上的一致性
JBuilderX提供了豐富的代碼模板
通過
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25730.html