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