




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Neusoft Co., Ltd.Java編碼規(guī)范編碼規(guī)范Neusoft Co., Ltd.Java編碼規(guī)范內(nèi)容目的源程序命名規(guī)范空白的使用注釋類(lèi)接口語(yǔ)句N(xiāo)eusoft Co., Ltd.Java編碼規(guī)范代碼規(guī)范的目的代碼的編寫(xiě)保持一致性提高代碼的可讀性和可維護(hù)性方便團(tuán)隊(duì)中的成員之間共享代碼易于代碼的回顧Neusoft Co., Ltd.Java編碼規(guī)范源程序源程序命名 名字:源程序中定義的class或interface的名字 后綴: .java供發(fā)布的文件 名字:應(yīng)該是有代表性的 后綴: *.jar(推薦使用);或*.zip、*.ear、*.war等源文件的組織 應(yīng)按如下順序書(shū)寫(xiě),并且各元素
2、之間至少一個(gè)空行分隔: 1)版本信息和版權(quán)聲明 2)包的聲明 3)引用聲明 4)類(lèi)或接口的聲明Neusoft Co., Ltd.Java編碼規(guī)范源程序源文件的組織 版本信息和版權(quán)聲明 作為源文件開(kāi)始。 *建議使用開(kāi)發(fā)工具(如Eclipse)的注釋功能自動(dòng)完成此類(lèi)工作。*使用部門(mén)統(tǒng)一的格式化和模版文件(只能在Eclipse中使用)。Neusoft Co., Ltd.Java編碼規(guī)范源程序源文件的組織 包的聲明必須是非注釋的第一行,用一個(gè)空格分隔package關(guān)鍵字與包的名字,如: package com.neusoft.softdev.firewall; 引用聲明 從第一列開(kāi)始 用一個(gè)空格分隔i
3、mport關(guān)鍵字和引用類(lèi)型名。 應(yīng)保證引入類(lèi)都被使用,減少引入*的使用。 import java.sql.SQLException; /GOOD Import java.sql.*; / BAD 類(lèi)或接口聲明 每個(gè)源程序必須有一個(gè)class或interface聲明Neusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范包的命名類(lèi)和接口的命名變量命名常量命名方法命名Neusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范包的命名 全部由小寫(xiě)字母組成。 如:package telmecall.business.console;package telmecall.business.excepti
4、on;package telmecall.presentation.util;其中 telmecall 指項(xiàng)目名稱(chēng)business 指業(yè)務(wù)邏輯console指具體模塊Neusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范類(lèi)和接口的命名 一般由大寫(xiě)字母開(kāi)頭其它字母小寫(xiě)的單詞組成 專(zhuān)有的縮寫(xiě)詞除外,如:AWTException class名字建議用名詞或名詞短語(yǔ) interface名字取決于其主要功能和用途 是使Object具有特定的功能,建議使用可以描述此功能的形容詞(加上-able或者-ible后綴)如:Searchable, Sortable, NetworkAccessible等 否則
5、,建議使用名詞或者名詞短語(yǔ)Neusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范變量命名 采用大小寫(xiě)混合的形式 以小寫(xiě)字母開(kāi)頭,名字中其他單詞(或只取首字母的縮寫(xiě)單詞)以大寫(xiě)字母開(kāi)頭,其它都為小寫(xiě)字母 不使用下劃線分隔 應(yīng)為名詞或名詞短語(yǔ)例:boolean resizable;char recordDelimiterNeusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范常量命名 建議都為大寫(xiě)字母 用下劃線分隔單詞如:MIN_VALUE, MAX_BUFFER_SIZE, PTION_FIEL_NAMENeusoft Co., Ltd.Java編碼規(guī)范命名規(guī)范方法命名 采用大小寫(xiě)混合的形
6、式 以小寫(xiě)字母開(kāi)頭,其他單詞(或只取首字母的縮寫(xiě)單詞)以大寫(xiě)字母開(kāi)頭,所有其它字母小寫(xiě)。 不使用下劃線分隔單詞 方法命名應(yīng)能描繪出方法的作用和功能 建議使用祈使動(dòng)詞或動(dòng)詞短語(yǔ) 獲取或設(shè)置類(lèi)屬性的方法建議顯示的命名為getProperty()或setProperty(),其中property是類(lèi)的屬性的名字 用于判斷類(lèi)的布爾屬性的方法建議顯示的命名為isProperty(),property是指類(lèi)的屬性的名字Neusoft Co., Ltd.Java編碼規(guī)范空白的使用空行空格縮進(jìn)行的延續(xù)(折行)Neusoft Co., Ltd.Java編碼規(guī)范空白的使用空行有益于將代碼按照邏輯分段,以提高代碼的
7、可讀性。下列情況用一個(gè)一個(gè)空行: 在版權(quán)聲明、包聲明塊、引用聲明塊之后 在類(lèi)的聲明之間 在方法的聲明之間 在類(lèi)中聲明最后一個(gè)屬性之后,聲明第一個(gè)方法之前Neusoft Co., Ltd.Java編碼規(guī)范空白的使用空格下列情況建議使用單個(gè)空格: 在一個(gè)關(guān)鍵字和它所修飾的塊之間。如:catch, for, if, switch, synchronized, while。注意super, this后不要跟空格 任何關(guān)鍵字和它所用的參數(shù)之間。如:return true; 一個(gè)列表中逗號(hào)之后。如:foo(long_exp1, long_exp2, long_exp3); / GOOD foo(long_
8、exp1,long_exp2,long_exp3); / BAD下列情況不建議使用空格: 左括號(hào)和后一個(gè)字符之間 右括號(hào)和前一個(gè)字符之間if (i = 42) / GOODif( i = 42 ) / BADNeusoft Co., Ltd.Java編碼規(guī)范空白的使用縮進(jìn) 要求是四個(gè)空格空格TAB在不同的源代碼管理工具中因?yàn)橛脩粼O(shè)置的不同寬度不相同,因此不要使用TAB 建議修改各管理工具的設(shè)置將TAB字符擴(kuò)展為4個(gè)空格行的延續(xù)(折行) 行應(yīng)為120列,超出此限制應(yīng)截成比較短的行 在逗號(hào)之后折行或一個(gè)操作符之前折行 盡可能采用高層次的折行 折行后對(duì)齊上一行語(yǔ)句同一層的起始位置 如果上面規(guī)則不適用
9、,則縮進(jìn)4個(gè)字符Neusoft Co., Ltd.Java編碼規(guī)范注釋?xiě)?yīng)能夠幫助讀者理解代碼的功能和作用、程序的流程注釋要言簡(jiǎn)意賅須注意注釋的正確性,錯(cuò)誤的注釋還不如不做注釋臨時(shí)的注釋用“temporary note”進(jìn)行標(biāo)注,以利于將來(lái)程序發(fā)布時(shí)將其刪去,如:/ temporary note: Change this to call sort() when the bugs.源碼中加入適當(dāng)?shù)淖⑨專(zhuān)勺詣?dòng)生成與源碼同步的文檔Neusoft Co., Ltd.Java編碼規(guī)范注釋版權(quán)信息注釋類(lèi)注釋成員注釋方法注釋內(nèi)部類(lèi)的注釋其它的注釋Neusoft Co., Ltd.Java編碼規(guī)范注釋版權(quán)信息
10、注釋必須在java文件的開(kāi)頭,建議如下格式:/* * $Header$ * $Revision$ * $Date$ * * Copyright (c) 2007 東軟IT實(shí)訓(xùn)中心 */Neusoft Co., Ltd.Java編碼規(guī)范注釋類(lèi)注釋 通常放在類(lèi)定義的前面(類(lèi)實(shí)體以外) 通常詳細(xì)介紹該類(lèi)的功能、作者、版本,“deprecated”標(biāo)志的使用,以及產(chǎn)生該類(lèi)的時(shí)間和引用其他類(lèi)等信息/* * Description: 描述該類(lèi)概要功能介紹 * * see java.lang.Class#getDeclaredMethod(String, Class) * author 作者中文名 * ve
11、rsion 1.0, 2006-1-11 * deprecated */Neusoft Co., Ltd.Java編碼規(guī)范注釋成員注釋 建議所有類(lèi)成員都作注釋以提高可讀性與可維護(hù)性 只有public和protected類(lèi)型的類(lèi)成員注釋可被javadoc提取到文檔中/* * Discription:字段功能描述 */Neusoft Co., Ltd.Java編碼規(guī)范注釋方法注釋內(nèi)容包括: 方法功能介紹 參數(shù)說(shuō)明 返回類(lèi)型說(shuō)明 例外類(lèi)型 JDK/SDK的引入版本等/* * Discription:方法功能中文描述 * param arg1 * param arg2 * author:創(chuàng)建者中文名字
12、 * update:日期YYYY-MM-DD 更改人姓名變更描述 */Neusoft Co., Ltd.Java編碼規(guī)范注釋內(nèi)部類(lèi)的注釋可參考“類(lèi)注釋”其它的注釋 代碼修改的注釋 修改單行,在上一行使用單行注釋?zhuān)瑢?xiě)明修改原因,人員姓名和日期 用單行注釋符號(hào)注釋原行代碼,在下一行添加更新的代碼 冗余代碼的注釋 注釋冗余代碼行,并在前一行注明原因,注釋人員姓名和日期 類(lèi)體外的注釋 主要包括package和import語(yǔ)句。引入新類(lèi)包同時(shí)不需要指定引入人及日期等log信息,多余類(lèi)包可直接刪除Neusoft Co., Ltd.Java編碼規(guī)范類(lèi)類(lèi)的組織順序建議如下: 類(lèi)的定義 類(lèi)的成員變量(字段/屬性
13、) 類(lèi)成員變量(字段/屬性)的存取方法 構(gòu)造函數(shù) 類(lèi)方法(靜態(tài)方法) 實(shí)例方法 main方法Neusoft Co., Ltd.Java編碼規(guī)范類(lèi)類(lèi)的定義包含在不同的行的extends和implements,如:public class CounterSet extends Observable implements Cloneable類(lèi)的成員變量(字段/屬性)接下來(lái)是類(lèi)的成員變量/* * Packet counters */protected int packets;Neusoft Co., Ltd.Java編碼規(guī)范類(lèi)類(lèi)成員變量(字段/屬性)的存取方法接下來(lái)是類(lèi)變量的存取方法:/* * Get
14、 the counters * return an array containing the statistical data. */public int getPackets() return packets;public void setPackets(int packets) this.packets = packets;Neusoft Co., Ltd.Java編碼規(guī)范類(lèi)構(gòu)造方法它應(yīng)該用遞增的方式寫(xiě)(如:參數(shù)多的寫(xiě)在后面):public CounterSet(size) this.size = size;類(lèi)方法(靜態(tài)方法)有static關(guān)鍵字實(shí)例方法無(wú)static關(guān)鍵字。必要時(shí),須加上
15、final修飾符,表示本方法不可被覆蓋。Neusoft Co., Ltd.Java編碼規(guī)范類(lèi)main方法如果定義了main(String args)方法,那應(yīng)寫(xiě)在類(lèi)底部。Neusoft Co., Ltd.Java編碼規(guī)范接口定義形式類(lèi)似于類(lèi)的定義形式。聲明采用如下格式:public interface InterfaceName extends SuperInterfaces/ Interface BodySuperInterface是可用逗號(hào)分隔的接口列表,按字母順序排列接口體的聲明建議按如下順序: 接口的字段聲明 接口的方法聲明接口字段聲明與方法聲明同類(lèi)的字段聲明與方法聲明形式一樣。Neu
16、soft Co., Ltd.Java編碼規(guī)范語(yǔ)句簡(jiǎn)單語(yǔ)句復(fù)合語(yǔ)句N(xiāo)eusoft Co., Ltd.Java編碼規(guī)范語(yǔ)句簡(jiǎn)單語(yǔ)句 賦值的表達(dá)式 每行只含一條語(yǔ)句 本地變量聲明 應(yīng)在不同的行中 對(duì)聲明后不再變動(dòng)應(yīng)當(dāng)聲明為final,使編譯器作優(yōu)化 數(shù)組聲明 數(shù)組的應(yīng)緊跟類(lèi)型名 在“”之前不能有空格 return語(yǔ)句 return后的表達(dá)式,應(yīng)用括號(hào)包起來(lái) 簡(jiǎn)單返回值,不用括號(hào)Neusoft Co., Ltd.Java編碼規(guī)范語(yǔ)句復(fù)合語(yǔ)句 括號(hào)的格式所有的復(fù)合語(yǔ)句建議采用如下花括號(hào)形式: 中的語(yǔ)句應(yīng)該單獨(dú)作為一行 在中的復(fù)合語(yǔ)句應(yīng)該有層次如下的情況可以不使用花括號(hào) 語(yǔ)句塊中包含null語(yǔ)句,或都只有
17、簡(jiǎn)單的一行注:有此IDE工具的默認(rèn)設(shè)置“”是在行尾,請(qǐng)修改IDE工具設(shè)置,使“”換行顯示Neusoft Co., Ltd.Java編碼規(guī)范語(yǔ)句復(fù)合語(yǔ)句 if語(yǔ)句 for語(yǔ)句 while語(yǔ)句 do-while語(yǔ)句 switch語(yǔ)句 try語(yǔ)句 synchronized語(yǔ)句標(biāo)簽語(yǔ)句 通常用花括號(hào)封裝 標(biāo)簽本身應(yīng)在單獨(dú)一行,后面跟一冒號(hào)“:”Neusoft Co., Ltd.Java編碼規(guī)范代碼檢查Neusoft Co., Ltd.Java編碼規(guī)范內(nèi)容 目的和意義 代碼檢查前的準(zhǔn)備工作 代碼檢查Checklist簡(jiǎn)介 代碼檢查Checklist的使用 代碼檢查工具簡(jiǎn)介 代碼檢查工具的使用 代碼檢查時(shí)
18、機(jī) 代碼檢查流程 練習(xí)Neusoft Co., Ltd.Java編碼規(guī)范代碼檢查的目的和意義檢查編碼規(guī)范性: 提高代碼的可讀性和可維護(hù)性。 一個(gè)團(tuán)隊(duì)中,代碼容易在程序員之間共享。 易于代碼的回顧。 維護(hù)部門(mén)交付產(chǎn)品的規(guī)范形象。檢查編碼質(zhì)量: 提高代碼質(zhì)量。 提升代碼成果的交付能力。Neusoft Co., Ltd.Java編碼規(guī)范 編輯Java文件之前,已經(jīng)在編輯器Eclipse里引入部門(mén)制定的編碼風(fēng)格文件codeformatter.xml和codetemplates.xml。 從部門(mén)獲取代碼復(fù)查checklist文件。 從部門(mén)獲取同行評(píng)審記錄文件。 從部門(mén)獲取Checkstyle工具包。 從
19、部門(mén)獲取Findbugs工具包和Findbugs缺陷等級(jí)對(duì)照表。代碼檢查前的準(zhǔn)備工作Neusoft Co., Ltd.Java編碼規(guī)范代碼檢查Checklist簡(jiǎn)介JavaScriptJSPJAVAC+Neusoft Co., Ltd.Java編碼規(guī)范代碼檢查Checklist的使用PSM裁剪組織的“代碼復(fù)查Checklist”,形成適合項(xiàng)目的編碼時(shí)“代碼復(fù)查Checklist”,并對(duì)開(kāi)發(fā)人員進(jìn)行講解。,預(yù)防產(chǎn)生Checklist中的問(wèn)題。人工代碼復(fù)查,核對(duì)Checklist中的問(wèn)題項(xiàng),檢查出的問(wèn)題記錄到“同行評(píng)審記錄”中。使用工具進(jìn)行Java代碼復(fù)查,核對(duì)Checklist中的問(wèn)題項(xiàng)及其修改
20、等級(jí),檢查出的問(wèn)題記錄到“同行評(píng)審記錄”中。Neusoft Co., Ltd.Java編碼規(guī)范Checkstyle工具CheckStyle,能夠自動(dòng)化檢查Java代碼規(guī)范,從而使得開(kāi)發(fā)人員從這項(xiàng)重要但是枯燥的任務(wù)中解脫出來(lái)。它能夠檢查: 檢查Javadoc注釋。 檢查每行的最大字符數(shù),不得超過(guò)120。忽略指定格式的行,如*號(hào)或者/號(hào)開(kāi)始的。 檢查方法的最大行數(shù),不得超過(guò)200。 檢查文件的最大行數(shù),不得超過(guò)2000。 檢查方法名稱(chēng)。 檢查是否有空塊。 檢查if、else是否使用。 是否使用了tab鍵。 Checkstyle工具簡(jiǎn)介Neusoft Co., Ltd.Java編碼規(guī)范Checkstyle插件的使用在Eclipse中安裝Checkstyle插件對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025四川安置房轉(zhuǎn)讓合同
- 2025年終止患病職工的勞動(dòng)合同是否應(yīng)當(dāng)支付合同終止補(bǔ)助費(fèi)
- 2025知識(shí)產(chǎn)權(quán)許可合同范本:技術(shù)許可合同案例分析
- 2025國(guó)內(nèi)產(chǎn)品銷(xiāo)售合同
- 2025購(gòu)銷(xiāo)合同范本下載
- 2025河北工商房屋租賃合同
- 2025【標(biāo)準(zhǔn)汽車(chē)租賃合同】正式汽車(chē)租賃合同范本
- 2025廣告贊助合同范本
- 2025茶葉購(gòu)銷(xiāo)合同書(shū)范文2
- 2025辦公室租賃標(biāo)準(zhǔn)合同范例
- 微生物檢驗(yàn)的基礎(chǔ)知識(shí)試題及答案
- 2025年北京市三類(lèi)人員安全員c3證考試題庫(kù)及答案
- (四調(diào))武漢市2025屆高中畢業(yè)生四月調(diào)研考試 地理試卷(含答案)
- GB/T 45434.3-2025中國(guó)標(biāo)準(zhǔn)時(shí)間第3部分:公報(bào)
- 北京市消防條例解讀
- 2025年中國(guó)城市軌道交通維修行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 公司轉(zhuǎn)讓租賃合同樣本
- 大概念視角下的初中數(shù)學(xué)函數(shù)單元整體教學(xué)設(shè)計(jì)研究與實(shí)踐
- 建筑工程檢測(cè)行業(yè)市場(chǎng)現(xiàn)狀分析及未來(lái)三到五年發(fā)展趨勢(shì)報(bào)告
- 煙草行業(yè)網(wǎng)絡(luò)安全體系建設(shè)
- 2024年全國(guó)英語(yǔ)競(jìng)賽《C類(lèi)本科生》決賽試題真題及答案
評(píng)論
0/150
提交評(píng)論