Android開發代碼規範

來源:互聯網
上載者:User

標籤:android   io   os   使用   ar   java   strong   for   檔案   

Android開發代碼規範

1.命名基本原則
    在物件導向編程中,對於類,對象,方法,變數等方面的命名是非常有技巧的。比如,大小寫區分,使用不同字母開頭等等。但究其本,追其源,在為一個資源其名稱的時候,應該本著描述性以及唯一性這兩大特徵來命名,才能保證資源之間不衝突,並且每一個都便於記憶。

對於理解應用程式的邏輯流,命名方案是最有影響力的一種協助。名稱應該說明“什麼”而不是“如何”。命名原則是:使名稱足夠長以便有一定的意義,並且足夠短以避免冗長。唯一名稱在編程上僅用於將各項區分開。以下幾點是規範的命名方法。
 

2.命名基本規範

2.1.編程基本命名規範
(1)避免難懂的名稱,如屬性名稱xxK8,這樣的名稱會導致多義性。  
(2) 在物件導向的語言中,在類屬性的名稱中包含類名是多餘的,如Book.BookTitle,而是應該使用Book.Title。  
(3)在允許函數重載的語言中,所有重載都應該執行相似的函數。

(4)使用動詞-名詞的方法來命名對給定對象執行特定操作的常式,如CalculateInvoiceTotal()。(常式是某個系統對外提供的功能介面或服務的集合)  

(5)只要合適,在變數名的末尾或開頭加計算限定符(Avg、Sum、Min、Max、Index)。
(6)在變數名中使用互補對,如min/max、begin/end和open/close。  

(7)布爾變數名應該包含Is,這意味著Yes/No 或 True/False 值,如 fileIsFound。  

(8)即使對於可能僅出現在幾個程式碼中的生存期很短的變數,仍然使用有意義的名  稱。僅對於短迴圈索引使用單字母變數名,如 i 或 j。  

(9)為了協助區分變數和常式,對常式名稱使用Pascal大小寫處理 (CalculateInvoiceTotal),其中每個單詞的第        一個字母都是大寫的。對於變數名,使用 camel大小寫處理 (documentFormatType),其中除了第一個單詞外每個單詞的第一個字母都是大寫的。  

(10)不要使用原義數字或原義字串,而是使用命名常數,NUM_DAYS_IN_WEEK ,以便於維護和理解。 

 

 2.2.分類命名規範

(1)包的命名  

  Java包的名字都是由小寫單片語成。但是由於Java物件導向編程的特性,每一名Java程式員都可以編寫屬於自己的Java包,為了保障每個Java包命名的唯一性,在最新的Java編程規範中,要求程式員在自己定義的包的名稱之前加上唯一的首碼。由於互連網上的網域名稱稱是不會重複的,所以程式員一般採用自己在互連網上的網域名稱稱作為自己程式包的唯一首碼。

  例如: net.frontfree.javagroup

(2)類的命名

   類的名字必須由大寫字母開頭而單詞中的其他字母均為小寫;如果類名稱由多個單片語成,則每個單詞的首字母均應為大寫例如TestPage;如果類名稱中包含單詞縮寫,則這個所寫詞的每個字母均應大寫,如:XMLExample,還有一點命名技巧就是由於類是設計用來代表對象的,所以在命名類時應盡量選擇名詞。   

  例如: Circle

(3)方法的命名

  方法的名字的第一個單詞應以小寫字母作為開頭,後面的單詞則用大寫字母開頭。

  例如: sendMessge

(4).常量的命名

  常量的名字應該都使用大寫字母,並且指出該常量完整含義。如果一個常量名稱由多個單片語成,則應該用底線來分割這些單詞。

  例如: MAX_VALUE

(5)參數的命名

  參數的命名規範和方法的命名規範相同,而且為了避免閱讀程式時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名儘可能明確。

(6)Javadoc注釋

  Java除了可以採用我們常見的注釋方式之外,Java語言規範還定義了一種特殊的注釋,也就是我們所說的Javadoc注釋,它是用來記錄我們代碼中的API的。Javadoc注釋是一種多行注釋,以/**開頭,而以*/結束,注釋可以包含一些HTML標記符和專門的關鍵詞。使用Javadoc注釋的好處是編寫的注釋可以被自動轉為線上文檔,省去了單獨編寫程式文檔的麻煩。

  例如:

/**

* This is an example of

* Javadoc

*

* @author darchon

* @version 0.1, 10/11/2002

*/

  在每個程式的最開始部分,一般都用Javadoc注釋對程式的總體描述以及著作權資訊,之後在主程式中可以為每個類、介面、方法、欄位添加Javadoc注釋,每個注釋的開頭部分先用一句話概括該類、介面、方法、欄位所完成的功能,這句話應單獨佔據一行以突出其概括作用,在這句話後面可以跟隨更加詳細的描述段落。在描述性段落之後還可以跟隨一些以Javadoc注釋標籤開頭的特殊段落,例如上面例子中的@auther和@version,這些段落將在產生文檔中以特定方式顯示。

雖然為一個設計低劣的程式添加註釋不會使其變成好的程式,但是如果按照編程規範編寫程式並且為程式添加良好的注釋卻可以協助你編寫出設計完美,運行效率高且易於理解的程式,尤其是在多人合作完成同一項目時編程規範就變得更加重要。俗話說“磨刀不誤砍柴工”,花費一點時間去適應一下Java編程規範是有好處的。

 

3.分類命名規範

3.1.基礎資料型別 (Elementary Data Type)命名規範

Integer:int+描述          Char:chr+描述          Boolean:bln+描述

Long:lng+描述           Short:shr +描述         Double:dbl+描述

String:str+描述           Float:flt+描述          Single:sng+描述

DataTime:dt+描述         Array:arr+描述        Object:obj+描述    

如:String  srtName;

 

3.2.控制項命名規範

TextView :txt_+描述  

Button :btn_+描述 

ImageButton :imgBtn_+描述

ImageView :imgView_+描述

CheckBox :chk_+描述

RadioButton :rdoBtn_+描述

AnalogClock :anaClk_+描述  

DigitalClock :DgtClk_+描述

DatePicker :dtPk_+描述

TimePicker :tmPk   _+描述

ToggleButton :tglBtn_+描述

EditText:edtTxt_+描述

ProgressBar:lcb_+描述

SeekBar:skBar _+描述

AutoCompleteTextView:autoTxt_+描述

MultiAutoCompleteTextView:mlAutoTxt_+描述  

ZoomControls:zmCtrl_+描述

Include:ind_+描述  

VideoView:vdoVi_+描述

WebView:webVi_+描述

RatingBar:ratBar_+描述

Tab:tab__+描述

Spinner:spn_+描述

Chronometer:Cmt_+描述

ScrollView:sclVi_+描述

TextSwitcher:txtSwt_+描述 

Gallery:gal_+描述

ImageSwitcher:imgSwt_+描述

GridView:gV_+描述

ListView:lVi_+描述

ExpandableList: epdLt_+描述

MapView:   mapVi_+描述

 

控制項說明如下:

•      TextView - 文本顯示控制項

•      Button - 按鈕控制項

•      ImageButton - 圖片按鈕控制項

•      ImageView - 圖片顯示控制項

•      CheckBox - 複選框控制項

•      RadioButton - 單選框控制項

•      AnalogClock - 鐘錶(帶錶盤的那種)控制項

•      DigitalClock - 電子錶控制項

•      DatePicker - 日期選擇控制項

•      TimePicker - 時間選擇控制項

•      ToggleButton - 雙狀態按鈕控制項

•      EditText - 可編輯文本控制項

•      ProgressBar - 進度條控制項

•      SeekBar - 可拖動的進度條控制項

•      AutoCompleteTextView - 支援自動完成功能的可編輯文本控制項

•      MultiAutoCompleteTextView - 支援自動完成功能的可編輯文本控制項,允許輸入多值(多值之間會自動地用指定的分隔字元    分開)

•      ZoomControls - 放大/縮小按鈕控制項

•      Include - 整合控制項

•      VideoView - 視頻播放控制項

•      WebView - 瀏覽器控制項

•      RatingBar - 評等控制項

•      Tab - 索引標籤控制項

•      Spinner - 下拉框控制項

•      Chronometer - 計時器控制項

•      ScrollView - 捲軸控制項

•      TextSwitcher - 文字轉換器控制項(改變文字時增加一些動畫效果)

•      Gallery –畫廊控制項

•      ImageSwitcher - 圖片轉換器控制項(改變圖片時增加一些動畫效果)

•      GridView - 網格控制項

•      ListView - 清單控制項

•      ExpandableList - 支援展開/收縮功能的清單控制項       

 

3.3.變數命名規範

變數命名:首碼+類型描述+意義描述

首碼:

成員變數:m_***             局部變數:l_***          形參:a_***

常量:大寫_***                  枚舉值:em_***

 

3.4.程式規範

工程的命名為:描述

應用程式名稱的命名為:描述+App


4.代碼書寫規範
(1)建立標準的縮排大小(如四個空格),並一致地使用此標準。用規定的縮排對齊代碼節。  

(2)在發布原始碼的硬拷貝版本時使用特定的字型以及字型大小(新宋體、小五號)。  
(3)在括弧對對齊的位置垂直對齊左括弧和右括弧,如:  
   for   (i=0; i<100; i++)
   {
         ;
   }   
(4)沿邏輯結構行縮排代碼使代碼更易於閱讀和理解,如:  
   if(expression)
         {
         if(expression )
          {
            //
            //此處填寫你的代碼塊;
            //
          }
         else
          {
            //
            //此處填寫你的代碼塊;
            //
          }
         }
(5)為注釋和代碼建立最大的行長度,以避免不得不滾動原始碼編輯器,並且可以提供整齊的硬拷貝表示形式。    
(6)當一行內容太長而必須換行時,在後面換行代碼中要使用縮排格式,如下:
    string   inserString ="Insert   Into   TableName(username,password,email,sex,address) "
    +"Values( ‘Soholife ‘, ‘chenyp ‘, ‘[email protected] ‘, ‘male ‘, ‘深圳福田 ‘) ";
(7)每一行上放置的語句避免超過一條。特殊迴圈如for(i =0;i<100;i++)等除外。  
(8)編寫SQL語句時,對於關鍵字使用全部大寫,對於資料庫元素(如表、列和視圖)使用大小寫混合。例如SELECT * FROM Table1; 
(9)將每個主要的SQL子句放在不同的行上,這樣更容易閱讀和編輯語句,例如:   

   SELECT   FirstName,   LastName
   FROM     Customers
   WHERE   State   =   ‘WA ‘

(10)在物理檔案之間在邏輯上劃分原始碼。  

(11)使用空白為原始碼提供結構線索。這樣做會建立代碼“段”,有助於讀者理解軟體的邏輯分段
(12)將大的複雜程式碼片段分為較小的、易於理解的模組。  

5.注釋
     軟體文檔以兩種形式存在:外部的和內部的。外部文檔(如規範、協助檔案和設計文檔)在原始碼的外部維護。內部文檔由開發人員在開發時在原始碼中編寫的注釋組成。
     不考慮外部文檔的可用性,由於硬拷貝文檔可能會放錯地方,原始碼清單應該能夠獨立存在。外部文檔應該由規範、設計文檔、變更要求、錯誤記錄和使用的編碼通訊協定組成。   以下幾點是規範的注釋方法:  

(1)一個工程應有一個統一的標頭檔注釋,以說明整個工程的資訊、建立日期、版本等等     

(2)對重要的程式加註釋進行說明

(3)修改代碼或刪除時,將原代碼用注釋的方法屏蔽,同時要加開發人員自身對修改操作的注釋。格式為:

//原代碼

//Added/(Modified/ Deleted) by 開發人員姓名 年-月-日;

//因為業務原因修改的,要註明修改或刪除原因)

新代碼
(4)使用XML文檔格式,如下面方法的注釋:
  ///   <summary>
 ///   得到某人的年齡
 ///   </summary>
 ///   <param   name= "userName "> 使用者名稱 </param>
 ///   <returns> 使用者年齡 </returns>
public   int   GetUserAge(string   userName)
{
     //
    //此處寫你的程式碼
    //
}

(5)避免雜亂的注釋,而是應該使用空白將注釋同代碼分開。  
(6)移除所有臨時或無關的注釋,以避免在日後的維護工作中產生混亂。  
(7)注釋應對代碼進行準確的說明,不應存在歧義。  
(8)在整個應用程式中,使用具有一致的標點和結構的統一樣式來構造注釋。  

Android開發代碼規範(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.