java編碼規(guī)范(2)(轉(zhuǎn))

java編碼規(guī)范(2) (轉(zhuǎn))[@more@]

Java 編碼規(guī)范(2)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

翻譯:王士勇

(轉(zhuǎn)載請(qǐng)保留作者,謝謝)

比上一個(gè)版本多了很多,而且排了一下版面。希望能替換掉上一篇文章

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

1.  引言

1.1. 為什么要編碼規(guī)范

編碼規(guī)范為什么是重要的?有以下一些理由:

l  一份軟件80%的生命周期是維護(hù)期

l  任何軟件都很難說他的整個(gè)生命周期都是由他的原始作者來維護(hù)

l  編碼規(guī)范改善軟件的可讀性,使得軟件工程師充分理解新的代碼變得非常的快速。

l  如果你要把你的原碼作為產(chǎn)品發(fā)布,你需要確保他像你的其他產(chǎn)品一樣干凈并且封裝的好。

為了按照規(guī)范工作,每個(gè)人寫軟件的時(shí)候,都必須遵守編碼規(guī)范。記住,是每個(gè)人!

1.1.1.  致謝

這本書是反映的是Java Language Specification 中關(guān)于java語言編碼規(guī)范的。在這里要著重對(duì)Peter king ,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath,和SCOtt Hommel表示感謝。

2.  文件名

這一節(jié)列出了本書所用的大部分文件名和后綴。

2.1. 文件后綴

  .java  java 源文件后綴

  .class   java 字節(jié)碼文件后綴

2.2. 常用的文件名

  經(jīng)常使用的文件名包括以下:

  gnumakefile    首選的makefile的名字,我們使用gnumake來build我們的軟件。

  README   那些專門概述特定文件夾內(nèi)容的文件的首選的名字

3.  文件的組織

一個(gè)文件的各個(gè)部分之間應(yīng)該用空行隔開,并且應(yīng)該用一個(gè)可選的注解來標(biāo)示每個(gè)不同的部分。

文件超過2000行,是非常笨重討厭(cumbersome)的,應(yīng)該避免。

至于java 編程的正確格式的示例,請(qǐng)參看18頁上的”JAVA source File Example(Java 原碼文件示例)”。

3.1. Java 源碼文件

  每一個(gè)Java源碼文件都包括一個(gè)唯一的public 類或interface。當(dāng)私有的類和interface 都和這個(gè)public 類有關(guān)聯(lián)時(shí),你可以把它們放到這個(gè)public 類的源文件中。這個(gè)public 類或interface 應(yīng)當(dāng)是這個(gè)文件的第一個(gè)類或interface 。

Java 源文件有以下的順序:

l  文件開頭注解(參見第二頁的“Beginning Comments(開頭注解)”)

l   聲明package 的語句和載入語句。

l  類和interface的聲明(參見page 3的“Class and Interface Declarations”)

3.1.1.  開頭注解

  所有的源文件都應(yīng)該以一個(gè)C語言風(fēng)格的注解開頭。這個(gè)注解應(yīng)該列出類名,版本信息,日期和版權(quán)聲明:

  /*

  *Classname

  *

  *Version information

  *

  * Date

*

 * copyright notice

 *

 */

3.1.2.  聲明包的語句和import 語句

  絕大多數(shù)java 源文件中的第一非注釋行應(yīng)該是聲明包的語句。此后,緊接著是import 語句。例如:

  package java.awt;

  import java.awt.peer.CanvASPeer;

3.1.3.  類和接口的聲明

下面的表格描述了部分的類和接口的聲明,他們應(yīng)該按照表格的順序。參看“Java Source File Example” on page 18 。

 

部分類/接口聲明 

注釋

類/接口文檔注解/**…*/

如何做此類注解請(qǐng)參看“Documentation Comments”

類或接口聲明

類/接口實(shí)現(xiàn)的注解(/*。。。*/),如果有必要的話

這個(gè)注解應(yīng)該包括任何整個(gè)類或接口范圍內(nèi)的不適合在類/接口文檔注解中出現(xiàn)的內(nèi)容。

類(靜態(tài))變量

首先是public類變量,然后是protected類變量,然后是friendly(package level,即默認(rèn))。然后是private變量。

Instance variables(譯注:實(shí)體變量?不會(huì)翻譯了,意即普通的變量。)

首先是public,其次protected,接著package level。最后是private變量。

類的構(gòu)造函數(shù)

方法,(譯注:即類的成員函數(shù))

這些方法應(yīng)該以功能相近為標(biāo)準(zhǔn),組織在一塊,而不是看其作用域和可存取性。例如:一個(gè)private class 方法(譯注:意即private static method)可以被放在兩個(gè)public instance 方法(譯注:意即public method)中間。其目的是為了代碼可讀性和可理解性增加。

4.  縮進(jìn)

應(yīng)該以四個(gè)空格為縮進(jìn)的最小單位,縮進(jìn)的精確結(jié)構(gòu)沒有被詳細(xì)定義。Tabs必須被精確指定為8個(gè)空格(而不是4個(gè))。

4.1. 代碼行的長度

應(yīng)避免行的長度超過80個(gè)字符,因?yàn)楹芏嗟慕K端和工具都不支持超過80個(gè)字符。(譯注:個(gè)人認(rèn)為現(xiàn)在一般都支持行超過80個(gè)字符,但是由于超過80個(gè)字符,一般要滾屏,所以盡量還是不要超過此限制。)

注意:文檔中的例子的行長度應(yīng)該更短,一般不超過70個(gè)字符。

4.2. Wrapping lines(斷行的方法)

當(dāng)一個(gè)表達(dá)式不適合一個(gè)單行時(shí),依照以下這些一般性的原理來斷行:

l  在逗號(hào)后斷行

l  在運(yùn)算操作符前斷行

l  在較高的層次斷行比在低層次斷行要好

l  把新行的表達(dá)式的開頭和上一行的表達(dá)式開頭對(duì)齊。

l  如果上一條規(guī)則導(dǎo)致代碼的混亂或者代碼超出了正常的限度。那么就僅僅以縮進(jìn)8個(gè)空格來替代。

這兒有一些調(diào)用方法的斷行例子:

  someMethod(longExpression1,longExpression2,longExpression3,

    longExpression4,longExpression5);

  var=someMethod1(longExpression1,

  someMethod2(longExpression2,

  longExpression3));

  下面是兩個(gè)算術(shù)表達(dá)式的斷行的例子,第一個(gè)比第二個(gè)好,因?yàn)樗臄嘈邪l(fā)生在括號(hào)的外面,這是在高層次上的斷行。

  loNGName1 = longName2 * (longName3 + longName4 –longName5)

    + 4 * longName6;

 

    longName1 = longName2 * ( longName3 + longName4

    - longName5) + 4 * longName6;  //  AVOID(應(yīng)該避免這樣)

下面是兩個(gè)方法聲明的斷行的例子,第一個(gè)是規(guī)范的例子。第二個(gè)如果要使用規(guī)范的縮進(jìn)的話,將會(huì)使第二和第三行縮進(jìn)的非常向右。所以僅僅使用8個(gè)空格來替代。

  //規(guī)范的縮進(jìn)

  someMethod ( int anArg, object anotherArg, String yetAnotherArg,

  Object andStillAnother){

  …

  }

  //以8個(gè)空格來縮進(jìn),以避免非常縱深的縮進(jìn)

  private static synchronized horkingLongMethodName(int anArg,

    Object anotherArg, String yetAnotherArg,

    Object andStillAnother) {

    …

  }

  行的包裝(Line wrapping for)對(duì)if 語句一般應(yīng)該用8個(gè)空格規(guī)則,因?yàn)闃?biāo)準(zhǔn)的(4個(gè)空格)縮進(jìn)使得if 的主體部分非常難看明白。例如:

  //不要使用這種縮進(jìn)

  if ( ( condition1 && condition2)

    || (condition3 && condition4)

  || ( condition5 && condition6)) { //差的包裝

  doSomethingAboutIt();

  }

  //以這種縮進(jìn)方式代替

  if ( ( condition1 && condition2)

    || ( condition3 && conditin4 )

  || ! (condition5 && condition6)) {

  doSomethingAboutIt();

  }

  //或者這樣使用

  if ((condition1 && condition2) || (conditin3 && condition4)

    || ! ( condition5 && condition6 )) {

  doSomethingAboutIt();

  }

  這兒有三種可接受的三元運(yùn)算符的縮進(jìn)格式:

  alpha = ( aLongBooleanExpression) ? beta : gamma;

  alpha = ( aLongBooleanExpression) ? beta

   : gamma;

  alpha = ( aLongBooleanExpression)

    ? beta

    : gamma;

5.  注釋(注解)

待譯。


當(dāng)前題目:java編碼規(guī)范(2)(轉(zhuǎn))
文章網(wǎng)址:http://muchs.cn/article38/jejppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、小程序開發(fā)、定制網(wǎng)站、服務(wù)器托管、商城網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)