摘要:二格式規范在上一篇的編程規范一中我們講述了在編碼中的一般原則,雖然這些原則并不涉及具體的代碼規范,但是這些原則卻是我們在開發過程中所應該遵循的規范與思想。不要把多個語句放在同一行里以免超過最大可接受寬度。
二、格式規范
在上一篇的java編程規范(一)中我們講述了在Java編碼中的一般原則,雖然這些原則并不涉及具體的代碼規范,但是這些原則卻是我們在Java開發過程中所應該遵循的規范與思想。今天我們將學習一些涉及具體代碼書寫的格式規范。
(一)縮進嵌套的代碼為了增強代碼的可讀性,我們常常把一些多帶帶的語句組織成語句塊,并對各塊統一縮進使之與周圍代碼分開。
1、如果我們使用開發環境,則我們可以使用開發環境提供的縮進樣式。但是如果我們是手寫代碼,應該使用兩個空格縮進。
class MyFuction {
··void function(int arg) {
····if (arg < 0) {
······for (int i = 0; i <= arg; i++) {
········// ...
······}
····}
··}
}
2、塊語句起始端的大括號應該放在引入塊語句那一行的最后,結束端的大括號要獨占一行,并且與引入嵌套語句那一行的第一個字母對齊。我們日常使用的代碼規范如下:
類定義:
public class MyClass {
···
}
內部類定義:
public class OuterClass {
···
class InnerClass {
...
}
}
方法定義:
void method(int j) {
···
}
for循環語句:
for (int i = 0; i <= j; i++) {
···
}
if-else語句:
if (j < 0) {
···
}
else if ( j > 0) {
···
}
else {
···
}
try,catch,finally塊:
try {
···
}
catch {
···
}
finally {
···
}
switch語句:
switch (value) {
case 0:
···
break;
default:
···
break;
}
while語句:
while (a < b) {
···
}
do-while語句:
do {
···
} while (a < b);
為了提高一個團隊的工作效率,不要讓每個組員任意選擇各自代碼里的縮進量及樣式,應該制定統一的一套標準的縮進規則,并且確保團隊里的每個人都遵循這個標準。
(二)斷開長句盡管在窗口化的現代編輯器中,可以利用橫向滾動條來閱讀很長的單行代碼。但是打印機對于超過它最大打印寬度的語句,就會把它們截斷、換行或者打印在不同的頁上。因此,要把每行代碼的長度限制在打印環境所支持的最大寬度之內,這個值一般是80或者132個字符。
1、不要把多個語句放在同一行里以免超過最大可接受寬度。應該一條語句放置在一行里。
// 這樣寫太長 double x = Math.random(); double y = Math.random(); // 應該一句占一行 double x = Math.random(); double y = Math.random();
2、如果一行代碼中包含了復雜的表達式,就應該把它拆分為幾個短小的子表達式,每個子表達式的運算結果存儲在一個臨時變量里,并且多帶帶放置在一行。
// 這樣的表達式太長 double length = Math.sqrt(Math.pow(Math.random(),2.0),Math.pow(Math.random(),2.0)); // 應該按下面這樣拆分 double x = Math.pow(Math.random(),2.0); double y = Math.pow(Math.random(),2.0); double length = Math.sqrt(x + y);(三) 使用空白
空白就是頁面上沒有可見字符的區域。代碼里如果空白太少就會不易閱讀和理解,所以應該使用足夠多的空白把方法、注釋、代碼塊和表達式展示清楚。
1、以下情況使用單空白來分隔:
(1) 右括號")"或者緊隨其后的關鍵字;關鍵字和緊隨其后的左括號"("或者"{";右括號")"和緊隨其后的左括號"{";其實細心的讀者會發現在上述內容的介紹中已經應用了這些規范,在此就不贅述了。
if (j < 0) {
···
}
else if ( j > 0) {
···
}
else {
···
}
(2) 除了"."之外的運算符與其前后的表達式之間。
double length = Math.sqrt(x * x + y * y); double x = length > 0.0 ? (x / length) : x;
2、以下情況應該使用空行來分隔:
(1) 每個邏輯上獨立的方法實現之間
void handleInfo(Message message) {
DataInput content = message.getDataInput();
int messageType = content.readInt();
switch (messageType) {
case warning:
...
break;
case error:
...
break;
default:
...
break;
}
}
(2) 定義類或者接口時,每個成員之間使用空行
public class Car {
class InnerCar {
...
}
private Bar bar;
Foo(Bar bar) {
this.bar = bar;
}
}
(3) 源文件中,每個類和接口的定義之間要使用空行
interface Paly {
...
}
public class Person implements Play{
...
}
(四)不要直接使用Tab控制符
不同的環境對Tab控制符的解釋也是不同的,代碼的格式在原來的編輯環境下可能正確無誤,但是如果放到另一個對Tab控制符有不同解釋的系統中,可能格式混亂、無法閱讀。
為了避免出現以上的情況,我們應該使用空格來縮進代碼。在一個團隊中,應該設置團隊通用的縮進標準,并且團隊里的所有人都嚴格遵守這個標準。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/66685.html
摘要:在上一篇的編程風格學習二中我們學習了一些在編碼過程中的格式規范,遵循這些規范毋庸置疑是我們的書寫高質量代碼的前提與基礎。二語言編程規范常量命名常量的每個單詞均大寫,單詞之間使用下劃線連接。方法表示動作,采用動詞命名。 在上一篇的java編程風格學習(二)中我們學習了一些在Java編碼過程中的格式規范,遵循這些規范毋庸置疑是我們的書寫高質量代碼的前提與基礎。今天我們更進一步,一起來學習J...
摘要:最近在看一本有關編程規范的書,書中精煉闡述了使用語言時應該遵循的一些原則。所以擁有良好一致的編程規范對于一個團隊至關重要。二堅持最小驚奇原則在編碼過程中盡量避免可能讓軟件用戶感到意外的做法。 最近在看一本有關Java編程規范的書,書中精煉闡述了使用java語言時應該遵循的一些原則。接下來的一段時間我將在這里總結我的學習內容,也希望這一系列文章能夠對有需要的人有所幫助。 不考慮任何編碼規...
摘要:大家好,我是樂字節的小樂,這次要給大家帶來的是變量與數據類型。本文是第一集編程規范,關鍵字與標識符。后面我們要寫一個程序的過程。需求分析實現代碼體現注釋的作用解釋說明程序,提高了代碼的閱讀性。可以幫助我們調試程序。 大家好,我是樂字節的小樂,這次要給大家帶來的是Java變量與數據類型。本文是第一集:Java編程規范,關鍵字與標識符。showImg(https://segmentfaul...
摘要:響應式編程是基于異步和事件驅動的非阻塞程序,只是垂直通過在內啟動少量線程擴展,而不是水平通過集群擴展。三特性常用的生產的特性如下響應式編程模型適用性內嵌容器組件還有對日志消息測試及擴展等支持。 摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝! 02:WebFlux 快速入門實踐 文章工程: JDK...
摘要:努力避免硬編碼。一個類的總體行數盡量控制在行左右不超過一千行。函數注釋函數注釋采用,在每個函數或者過程的前面要有必要的注釋信息,包括函數或過程名稱功能描述輸入輸出及返回值說明調用關系及被調用關系說明等。 前言 推薦Google的Java編碼規范英文版: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 雖然...
閱讀 2731·2021-11-22 09:34
閱讀 3305·2021-10-25 09:43
閱讀 2217·2021-10-11 10:59
閱讀 3710·2021-09-22 15:13
閱讀 2599·2021-09-04 16:40
閱讀 613·2019-08-30 15:53
閱讀 3409·2019-08-30 11:13
閱讀 2836·2019-08-29 17:30