資源描述:
《java程序編碼規(guī)范》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Java程序編碼規(guī)范1、概述本規(guī)范主要針對(duì)“Java程序編碼”,它在現(xiàn)有的一些編碼規(guī)范基礎(chǔ)上,作了一些修改和裁剪,供開(kāi)發(fā)組執(zhí)行。目的是保證開(kāi)發(fā)組所編寫(xiě)的代碼保持一貫的風(fēng)格,提高代碼編寫(xiě)的可讀性,使用的一致性和后期的易維護(hù)性。2、書(shū)寫(xiě)規(guī)范2.1代碼書(shū)寫(xiě)規(guī)范1、必須給程序加注釋。注釋能夠極大提高代碼的質(zhì)量。2、代碼的書(shū)寫(xiě)必須清晰、易讀。適當(dāng)?shù)膶⒋a分段可以使代碼更加清楚??梢允褂谩畕’‘}’將函數(shù)分成若干個(gè)小的單元;適當(dāng)?shù)募尤肟招锌梢允勾a更加清晰。例如在函數(shù)的定義后面加入兩個(gè)空行,在兩個(gè)邏輯小代碼單元間加入一個(gè)空行;建議遵循三十秒原則。如果另一個(gè)程序員無(wú)法在三十秒之內(nèi)了
2、解你的函數(shù)做了什么,如何做以及為什么要這樣做,那就說(shuō)明你的代碼是難于維護(hù)的,必須得到提高;3、在一個(gè)函數(shù)內(nèi)代碼的長(zhǎng)度不允許超過(guò)100行。建議如果一個(gè)函數(shù)的代碼長(zhǎng)度超過(guò)一個(gè)屏幕,那么或許這個(gè)函數(shù)太長(zhǎng)了;4、一行代碼盡量簡(jiǎn)短,并且保證一行代碼只做一件事。那種看似技巧性的冗長(zhǎng)代碼只會(huì)增加代碼維護(hù)的難度。5、使用圓括號(hào)來(lái)界定操作的順序。不要讓別人判斷復(fù)雜的操作優(yōu)先級(jí)。6、使用統(tǒng)一的格式化代碼。類所包含方法體的’{‘將放在單獨(dú)一行。方法體中將‘{’放在所有者的后面,并且在下一行代碼前加入TAB鍵(兩個(gè)字符)縮進(jìn);(TAB鍵比用若干個(gè)空格更容易控制使用統(tǒng)一的縮進(jìn)距離)。例如,下面
3、的第1行是錯(cuò)誤的,第2行是正確的:if(i>0){i++};//錯(cuò)誤,{和}在同一行if(i>0){13i++};//正確”}”語(yǔ)句應(yīng)該縮進(jìn)到與其相對(duì)應(yīng)的”{“相對(duì)齊的位置。1、保證不必左右拉動(dòng)滾動(dòng)條來(lái)閱讀一整行代碼,將會(huì)使你的代碼更加可讀,這一點(diǎn)包括注釋;在任何情況下,超長(zhǎng)的語(yǔ)句應(yīng)該在一個(gè)逗號(hào)或者一個(gè)操作符后折行。一條語(yǔ)句折行后,應(yīng)該比原來(lái)的語(yǔ)句再縮進(jìn)2個(gè)字符。2、括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格,同樣,右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格。下面的例子說(shuō)明括號(hào)和空格的錯(cuò)誤及正確使用:CallProc(Aparameter);//錯(cuò)誤CallProc(Aparam
4、eter);//正確3、賦值語(yǔ)句(=)、邏輯操作符(<>!=
5、
6、&&等等)、算術(shù)操作符等左右各空一格10、公有成員放在程序的最前面、私有成員在后。2.2注釋書(shū)寫(xiě)規(guī)范2.2.1注釋總規(guī)則1、代碼要求必須有注釋,詳細(xì)程度以其他人能夠讀懂為標(biāo)準(zhǔn)。注釋?xiě)?yīng)該用中文清晰表達(dá)意思。應(yīng)該能夠使程序看起來(lái)更清晰,更容易理解。如果某一段程序不值得寫(xiě)文檔,那么可能它是無(wú)效的代碼。2、注釋要盡量簡(jiǎn)明,避免裝飾性的、標(biāo)語(yǔ)式的注釋。3、注釋不但要說(shuō)明做什么,還應(yīng)當(dāng)說(shuō)明為什么要這樣做。最好先寫(xiě)注釋表明要做什么,再進(jìn)行編碼。4、另起一行的注釋,要寫(xiě)在被注釋程序的上一行。5、自定義的全局變量必須有注釋
7、,說(shuō)明變量的含義;6、自定義的函數(shù)、過(guò)程必須有詳細(xì)的注釋,說(shuō)明函數(shù)和過(guò)程的功能,同時(shí)說(shuō)明輸入輸出接口、參數(shù)、返回值;7、實(shí)現(xiàn)步驟較多、較復(fù)雜的程序模塊要有相應(yīng)的注釋,說(shuō)明每個(gè)關(guān)鍵步驟的具體操作內(nèi)容和實(shí)現(xiàn)步驟;131、復(fù)雜的算法程序要有注釋,說(shuō)明算法功能,解釋算法實(shí)現(xiàn)過(guò)程。2.2.2注釋類型下表說(shuō)明Java注釋的三種類型,并給出使用建議。注釋類型用法示例文檔注釋在緊靠接口、類、成員函數(shù)和成員聲明的前面注釋它們。注釋語(yǔ)句由javadoc處理,為一個(gè)類生成外部文檔。/**客戶:客戶是我們將服務(wù)和產(chǎn)品賣給的人或機(jī)構(gòu)。@authorS.W.Ambler*/C語(yǔ)言風(fēng)格采用C語(yǔ)言風(fēng)
8、格的注釋去掉不再使用但你仍想保留的代碼。仍想保留是因?yàn)橛脩羧f(wàn)一會(huì)改變想法,或者在調(diào)試過(guò)程中想讓它暫時(shí)失效。/*這部分代碼因?yàn)橐驯凰暗拇a取代,由B.Gustafsson,于1999年6月4日注釋掉。如果兩年之后還未使用,將其刪除。...(源代碼)*/單行在成員函數(shù)內(nèi)采用單行注釋,來(lái)說(shuō)明業(yè)務(wù)邏輯、代碼段和暫時(shí)變量的聲明。//遵照Sarek的規(guī)定,給所有//超過(guò)$1000的發(fā)貨單//打5%的折扣。讓利活//動(dòng)于1995年2月開(kāi)始.2.2.3注釋哪些部分下表概括了所寫(xiě)Java代碼中的每一部分哪些需要注釋說(shuō)明。項(xiàng)目注釋哪些部分實(shí)參/參數(shù)參數(shù)類型參數(shù)用來(lái)做什么任何約束或前提
9、條件示例成員/成員屬性成員描述注釋所有使用的不變量示例并行事件可見(jiàn)性決策類類的目的13已知的問(wèn)題類的開(kāi)發(fā)/維護(hù)歷史注釋出采用的不變量并行策略編譯單元每一個(gè)類/類內(nèi)定義的接口,含簡(jiǎn)單的說(shuō)明文件名和/或標(biāo)識(shí)信息版權(quán)信息獲取成員函數(shù)若可能,說(shuō)明為什么使用滯后初始化接口目的它應(yīng)如何被使用以及如何不被使用局部變量用處/目的成員函數(shù)注釋成員函數(shù)做什么以及它為什么做這個(gè)哪些參數(shù)必須傳遞給一個(gè)成員函數(shù)成員函數(shù)返回什么已知的問(wèn)題任何由某個(gè)成員函數(shù)拋出的異??梢?jiàn)性決策成員函數(shù)是如何改變對(duì)象的包含任何修改代碼的歷史如何在適當(dāng)情況下調(diào)用成員函數(shù)的例子適用的前提條件和后置條件