小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

標準的Java編碼規(guī)范手冊

 禪悟我心 2018-01-09

       編碼規(guī)范體現(xiàn)出一個開發(fā)者的基本素質,良好的編碼規(guī)范可以提高團隊編碼的效率,避免很多不必要的問題。今天分享一個標準的Java編碼規(guī)范給大家,希望對于大家今后的開發(fā)工作帶來幫助。

編碼規(guī)范的意義
       在項目開發(fā)維護中,編碼規(guī)范作為開發(fā)規(guī)范的一個組成部分,是十分重要和必須的,它不僅僅是為了提高開發(fā)效率,也有利于降低后期維護開發(fā)的成本。編碼規(guī)范的根本目的就是要讓不僅代碼可以一目了然,也可以很容易的理解開發(fā)人員所編寫的代碼程的用途和意義。由此,用來減少項目中因為開發(fā)維護人員的更替或由于長時間不維護造成的記憶模糊或混亂等情況帶來的對代碼所實現(xiàn)的真正功能的理解困難和歧義。另外也提高了代碼復查效率和效果。

規(guī)范實施建議
       不是為了規(guī)范而規(guī)范,以提高軟件開發(fā)質量和效率為目標,輔以IDE等開發(fā)工具為保障,逐步改進編碼規(guī)范化水平
       對于格式規(guī)范、注釋規(guī)范等部分規(guī)范的要求,可以通過使用eclipse/AndroidStudio自帶的Format方法(快捷鍵:Ctrl+Shift+F)進行自動格式化,可以提高開發(fā)效率又符合編碼規(guī)范。
       編碼規(guī)范文檔本身需要定期不斷的修正和完善,以符合實際開發(fā)規(guī)范的要求。

格式規(guī)范

a)縮進
使用配置文件進行格式化:
配置文件中一個TAB等于4個空格。

b)行長度
每行100字符
注: 使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時,需要配置“Maximum line width”設置長度為100

c)聲明

d)聲明變量、常量
一行只聲明一個變量或常量;
在代碼塊的開始處聲明實例變量,不要在首次用到該變量時才聲明【推薦】

e)聲明類
左大括號”{“位于聲明語句同行的末尾,右大括號”}”另起一行;
方法與方法之間以空行分隔

f)語句
可以使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時 使用eclipse默認的“Control Statements ”格式化方法進行
注:if語句總是用”{“和”}”括起來
示例

class Example { void bar() { do { } while (true); try { } catch (Exception e) { } finally { } } void foo2() { if (true) { return; } if (true) { return; } else if (false) { return; } else { return; } }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

g)空格的使用

等號左右必須各有一個空格:
button = null;
雙目運算符左右必須各有一個空格:
imageWidth = imagePadding + imageSize;
標點符號后面必須跟一個空格
標點符號包括“,”、“;”等,下面列出幾個例子。
一行定義多個變量時,“,”后跟空格:
int i, j;
在for循環(huán)中,“;”后跟空格:
for (int i = 0; i < count;="" ++i)="">
在有多個入口參數(shù)的函數(shù)調用中,“,”后跟一個空格:
addContentView(view, params);

h)變量類型的使用
編程的過程中盡量使用接口編程,而少用類編程。
如:

ListString> names = new ArrayListString>();
  • 1

命名規(guī)范

通用規(guī)則
       命名規(guī)范使程序更易讀,從而更易于理解。它們也可以提供一些有關標識符功能的信息,以助于理解代碼,例如,不論它是一個常量,包,還是類。

       包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母并且是一個頂級域名,通常是com,edu,gov,mil,net,org,或1981年ISO 3166標準所指定的標識國家的英文雙字符代碼。包名的后續(xù)部分根據(jù)不同機構各自內(nèi)部的命名規(guī)范而不盡相同。這類命名規(guī)范可能以特定目錄名的組成來區(qū)分部門(department),項目(project),機器(machine),或注冊名(login names)。
如:

package com.itotem.viewpackage com.itotem.utils.xxxx
  • 1
  • 2

       類(Classes) 命名規(guī)則:類名是個一名詞,采用大小寫混合的方式,每個單詞的首字母大寫。盡量使類名簡潔而富于描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)
如:

public class Buttonpublic class EditText
  • 1
  • 2

       接口(Interfaces) 命名規(guī)則:接口類名以大寫“I”開頭,大小寫規(guī)則與類名相似,
如:

public interface IProjGroupService
  • 1

       方法(Methods) 方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫。
如:

public void onCreate(Bundle savedInstanceState)public void run()
  • 1
  • 2

       局部變量(Local Variables) 采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫。變量名應簡短且富于描述。變量名的選用應該易于記憶,即,能夠指出其用途。盡量避免單個字符的變量名,除非是一次性的臨時變量。臨時變量通常被取名為i,j,k,m和n,它們一般用于整型。c,d,e,它們一般用于字符型,變量名不應以下劃線或美元符號開頭。
如:

int i = 0;float imageWidth = 0;
  • 1
  • 2

       實例變量(Instance Variables) 大小寫規(guī)則和類名相似,除了前面需要一個m。
如:

private int mEmployeeId = 0; private String mName = '';
  • 1
  • 2

       若實例變量為public類型的則和局部變量采用相同的命名規(guī)則。
如:

public int width = 0; public String contactName = '';
  • 1
  • 2

       常量(Constants [采用stiatc final 修飾]) 類常量的聲明,應該全部大寫,單詞間用下劃線隔開。(類似C語言的宏定義)。
如:

private static final int MIN_WIDTH = 4; private static final int MAX_WIDTH = 999;
  • 1
  • 2

       資源id 資源id全部采用小寫,單詞之間用下劃線隔開。

       注意:這個小寫規(guī)范是Android強制執(zhí)行的,如果出現(xiàn)大寫或者特殊字符工程是不能編譯的。會報錯
如:

download app_name call_log_type
  • 1
  • 2
  • 3

備注(Remark)
       所有的標識符名稱要求取有意義的單詞,不能使用myXXXX和button01等風格的名稱。

附加說明
1、從命名中可以直觀看懂其定義和用途,否則必須增加注釋說明;
2、在同一系統(tǒng)內(nèi)命名必須保持統(tǒng)一;避免出現(xiàn)類似示例中的情況;
示例:項目組id 變量定義:pgid、projectgroupId、idprojectgroup、idProjGroup
3、避免名字過長、命名采用英文縮寫,避免使用漢語拼音【推薦】

組織規(guī)范

       引入包規(guī)范
       不允許引入類中未使用的包;
       引入包時不能直接引入“.*”,必須明確到引入的類名
       可以通過快捷鍵引入包。Ctrl+Shift+O;

注釋規(guī)范

a)通用注釋規(guī)則

b)說明
       注釋要精簡并清晰容易理解;
       保持注釋與代碼同步。
       代碼質量不好但能正常運行,或者還沒有實現(xiàn)的代碼用 //TODO:任務 ;
       存在錯誤隱患的代碼用 //FIXME:聲明;
       對于不建議使用(廢棄)的類或者方法,必須在他們的注釋中增加 @deprecated

c)javadoc注釋標簽語法定義說明
       @author 對類的說明 標明開發(fā)該類模塊的作者
       @version 對類的說明 標明該類模塊的版本
       @see 對類、屬性、方法的說明 參考轉向,也就是相關主題
       @param 對方法的說明 對方法中某參數(shù)的說明
       @return 對方法的說明 對方法返回值的說明
       @exception 對方法的說明 對方法可能拋出的異常進行說
       @deprecated 對類或方法的說明 該類或方法不建議使用

d)類的注釋
目的:簡單概述該類作用

范圍:所有java類,可以不包括javabean

書寫規(guī)范:類的注釋必須寫在該類的聲明語法之前。在注釋中要描述該類的描述,創(chuàng)建者,創(chuàng)建日期。

類注釋模板:可以通過eclipse配置(Code Templates 中的 Code 的New Java files)

${filecomment}${package_declaration}/** * Title: ${project_name}
* Description:
* Copyright: Copyright (c) ${year}
* Create DateTime: ${date} ${time}
* @author perry.li */
${typecomment}${type_declaration}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

類注釋示例:

package cn.sh.sstic.projectmanagement.projectfeasibleschemaeval;
  • 1
/** * Title: mwbas2008
* Description: 可行性方案套數(shù)數(shù)組定義類
* Create DateTime: Oct 6, 2008 4:41:03 PM
* @author perry.li */
public class FormUtil {
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

e)方法的注釋

       目的:簡要概述該方法的功能,包括其參數(shù)、返回值意義的注釋

       范圍:java類中的各種方法
       注:接口的實現(xiàn)方法的注釋應寫在接口中而不是實現(xiàn)代碼中;
       對自動生成的get/set方法不需要添加注釋;
       如果方法允許null作為參數(shù),或者允許返回值為null,必須在JavaDoc中說明,如果沒有說明,方法的調用者不允許使用null作為參數(shù),并認為返回值是null 安全的。

       書寫規(guī)范:方法注釋必須寫在方法定義之前。該注釋包括:方法其功能的簡單 描述,方法的參數(shù)、返回值類型、返回值意義簡單的描述。

       模板:對于已定義好的接口的方法,可以直接輸入 /**回車 eclipse可自動生成注釋模板

示例:

/** * 演示方法注釋 * @param args * @return * 返回 null 表示沒有找到 * @throws Exception */ private String[] demoFunction(String args) throws Exception{ return null; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

f)失效代碼塊的注釋
       目的:對一塊暫時不啟用的代碼進行注釋。
       注:這里并不是指垃圾、無用的代碼,只是暫時不啟用或暫時不明確的代碼

       書寫規(guī)范:失效代碼塊采用塊注釋方法行注釋方法進行標注。
       注:采用注釋塊在 使用eclipse自帶的Format方法(快捷鍵:Ctrl+Shift+F)時需要配置,去掉選中 “Enable block commnet formatting”

示例:

// if (1==1) { // // } else { // // }

或者

/* if (1 == 1) { // 如果1與1相等的時候 String code1; } else { // 如果1與1不相等的時候 String code2; }*/

g)分支語句的注釋
目的:簡單描述該分支條件的意義

書寫規(guī)范:在分支語句代碼的下一行進行注釋

示例:

if (1==1) { //如果1與1相等的時候 code } else { //如果1與1不相等的時候 code }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

h)變量、常量的注釋
       目的:簡單描述該變量、常量的意義。
       書寫規(guī)范:變量、常量注釋必須寫在變量、常量定義之前或同一行中,簡單描述其代表的意義。
       注:對自循環(huán)所用的變量(i,j,k,)可以不需要注釋。
示例:

String commitFlag; //提交標志i)@Override的使用所有的重寫方法,在方法開始加上 @Override 關鍵字。
  • 1
  • 2
  • 3

如:

@Overridepublic void onCreate(Bundle savedInstanceState) {}
  • 1
  • 2
  • 3

異常處理規(guī)范

       重新拋出的異常必須保留原來的異常,即throw new NewException(“message”, e); 而不能寫成throw new NewException(“message”),更不能不繼續(xù)往上層拋出異常。
       針對重要的可捕獲的業(yè)務相關異常,需創(chuàng)建異常處理類,在方法中捕獲到異常后,反饋到用戶界面上,提示用戶【推薦】

補充規(guī)范

       代碼在提交版本控制之前,請確保已清除不必要的log調試語句
       明確的垃圾或無用代碼必須刪除

安卓開發(fā)高級技術交流QQ群:108721298 歡迎入群

微信公眾號:mobilesafehome

(本公眾號支持投票)

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多