團隊開發(fā)項目開發(fā)規(guī)范_第1頁
團隊開發(fā)項目開發(fā)規(guī)范_第2頁
團隊開發(fā)項目開發(fā)規(guī)范_第3頁
團隊開發(fā)項目開發(fā)規(guī)范_第4頁
團隊開發(fā)項目開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、團隊開發(fā)項目開發(fā)規(guī)范概述程序員一般需要團隊合作,可能為了一個大型項目程序會有十人以上或者百人以上甚至千人以上的團隊公司在一起工作。編碼規(guī)范使程序規(guī)范化,易懂化,才能更好的進行合作。 編碼規(guī)范第一、使代碼更加易于維護,程序并不是一次性的產(chǎn)品,它需要擴展、修改以及維護的。但是進行這些操作的人并不一定就是同一個人,所以規(guī)范編碼是非常重要的。 編碼規(guī)范第二、可以提高代碼質(zhì)量,編程都不是一次性完成的,需要不斷的測試與調(diào)試,以各種狀態(tài)來修改代碼,而將代碼規(guī)范化,就能對程序本身有更加清晰的結(jié)構(gòu)思路,從而減少調(diào)試而成為快捷高效的代碼。 編碼規(guī)范第三、團隊化。 一開始就要養(yǎng)成良好的編碼習慣,這樣將為團隊帶來事半

2、功倍的效果。術(shù)語定義1. Pascal 大小寫將標識符的首字母和后面連接的每個單詞的首字母都大寫??梢詫θ址蚋嘧址臉俗R符使用Pascal 大小寫。例如: DateTime2. Camel 大小寫標識符的首字母小寫,而每個后面連接的單詞的首字母都大寫。例如:dateTime代碼之美編碼是一件很有趣的事,如果發(fā)現(xiàn)代碼的是一種美的語言的時候,編寫代碼再也不是枯燥的代名詞。2.1 列寬代碼列寬控制在110字符左右。2.2 換行當表達式超出或即將超出規(guī)定的列寬,遵循以下規(guī)則進行換行a) 在逗號后換行;b) 在操作符前換行;c) 規(guī)則a優(yōu)先于規(guī)則b。 2.3 縮進 縮進應(yīng)該是每行一個Tab(4個空

3、格),不要在代碼中使用Tab字符。2.4 空行空行是為了將邏輯上相關(guān)聯(lián)的代碼分塊,以便提高代碼的可閱讀性。在代碼中,不能包含多個空行。 在以下情況下使用一個空行:1、方法與方法、屬性與屬性之間。2、方法中變量聲明與語句之間。3、方法與方法之間。4、方法中不同的邏輯塊之間。5、方法中的返回語句與其他的語句之間。6、屬性與方法、屬性與字段、方法與字段之間。7、注釋與它注釋的語句間不空行,但與其他的語句間空一行。2.5 空格在以下情況中要使用到空格:1、 關(guān)鍵字和左括符 “(” 應(yīng)該用空格隔開。如while (true) 注意:在方法名和左括符 “(” 之間不要使用空格,這樣有助于辨認代碼中的方法調(diào)

4、用與關(guān)鍵字。2、多個參數(shù)用逗號隔開,每個逗號后都應(yīng)加一個空格。3、除了 . 之外,所有的二元操作符都應(yīng)用空格與它們的操作數(shù)隔開。一元操作符、+及-與操作數(shù)間不需要空格。如/字符測試0opxXnNjgasqwMm1lIa += c + d; a = (a + b) / (c * d);while (d+ = s+)n+; Response.Write (“size is “ + size); 4、 語句中的表達式之間用空格隔開。如for (expr1; expr2; expr3)2.6 括號 - ()1、 左括號“(” 不要緊靠關(guān)鍵字,中間用一個空格隔開。2、 左括號“(” 與方法名之間不要添加

5、任何空格。3、 沒有必要的話不要在返回語句中使用()。如if (condition)Array.Remove(1)return 1 2.7 花括號 - 1、左花括號 “” 放于關(guān)鍵字或方法名的下一行并與之對齊。如if (condition)public int Add(int x, int y)2、左花括號 “” 要與相應(yīng)的右花括號 “”對齊。3、通常情況下左花括號 “”單獨成行,不與任何語句并列一行。4、 if、while、do語句后一定要使用,即使號中為空或只有一條語句。如if (somevalue = 1)somevalue = 2 5、右花括號 “” 后建議加一個注釋以便于方便的找到與

6、之相應(yīng)的 。如while (condition)if (condition) else / if / while代碼注釋城3.1 注釋概述1、修改代碼時,總是使代碼周圍的注釋保持最新。2、在每個例程的開始,提供標準的注釋樣本以指示例程的用途、假設(shè)和限制很有幫助。注釋樣本應(yīng)該是解釋它為什么存在和可以做什么的簡短介紹.3、避免在代碼行的末尾添加注釋;行尾注釋使代碼更難閱讀。不過在批注變量聲明時,行尾注釋是合適的;在這種情況下,將所有行尾注釋在公共制表位處對齊。 4 、避免雜亂的注釋,如一整行星號。而是應(yīng)該使用空白將注釋同代碼分開。 5 、避免在塊注釋的周圍加上印刷框。這樣看起來可能很漂亮,但是難于

7、維護。6 、在部署發(fā)布之前,移除所有臨時或無關(guān)的注釋,以避免在日后的維護工作中產(chǎn)生混亂。7 、如果需要用注釋來解釋復(fù)雜的代碼節(jié),請檢查此代碼以確定是否應(yīng)該重寫它。盡一切可能不注釋難以理解的代碼,而應(yīng)該重寫它。盡管一般不應(yīng)該為了使代碼更簡單以便于人們使用而犧牲性能,但必須保持性能和可維護性之間的平衡。8 、在編寫注釋時使用完整的句子。注釋應(yīng)該闡明代碼,而不應(yīng)該增加多義性。 9 、在編寫代碼時就注釋,因為以后很可能沒有時間這樣做。另外,如果有機會復(fù)查已編寫的代碼,在今天看來很明顯的東西六周以后或許就不明顯了。10 、避免多余的或不適當?shù)淖⑨?,如幽默的不主要的備注?1、 使用注釋來解釋代碼的意圖。

8、它們不應(yīng)作為代碼的聯(lián)機翻譯。 12、 注釋代碼中不十分明顯的任何內(nèi)容。13 、為了防止問題反復(fù)出現(xiàn),對錯誤修復(fù)和解決方法代碼總是使用注釋,尤其是在團隊環(huán)境中。14 、對由循環(huán)和邏輯分支組成的代碼使用注釋。這些是幫助源代碼讀者的主要方面。 15 、在整個應(yīng)用程序中,使用具有一致的標點和結(jié)構(gòu)的統(tǒng)一樣式來構(gòu)造注釋。 16 、用空白將注釋同注釋分隔符分開。在沒有顏色提示的情況下查看注釋時,這樣做會使注釋很明顯且容易被找到。17 、在所有的代碼修改處加上修改標識的注釋。18 、為了是層次清晰,在閉合的右花括號后注釋該閉合所對應(yīng)的起點。namespace Oursss.ManagerPaper.Web /

9、 namespace Oursss.ManagerPaper.Web3.2 文件注釋在每個文件頭必須包含以下注釋說明/ 名稱:XXX/ Copyright (c) DriveTOP. All rights reserved./ 作者:RennErann/ 創(chuàng)建日期:2011-03-21 / 功能描述:/-/ 修改人:×××/ 修改時間:yyyy-mm-dd/ 修改描述:×××/ 版本:2.0.110321注意:文件功能描述只需簡述,具體詳情在類的注釋中描述。創(chuàng)建標識和修改標識由創(chuàng)建或修改人員的拼音或英文名。如:RennErann。一天

10、內(nèi)有多個修改的只需做一個在注釋說明中做一個修改標識就夠了。在所有的代碼修改處加上修改標識的注釋。3.3 文檔型注釋該類注釋采用.Net已定義好的Xml標簽來標記,在聲明接口、類、方法、屬性、字段都應(yīng)該使用該類注釋,以便代碼完成后直接生成代碼文檔,讓別人更好的了解代碼的實現(xiàn)和接口。如1、 類、接口注釋/ <summary>/ 類功能的說明/ </summary>/ <see cref=""></see>/ <remarks>/ 創(chuàng)建人:RennErann/ 創(chuàng)建日期:yyyy-mm-dd/ 修改人:iflash50/

11、 修改日期:yyyy-mm-dd/ 修改備注:無/ 版本:1.0/ </remarks>public class CountersModuleInitializer : ModuleInitializer注意:<see cref=""></see>標簽根據(jù)具體情況選擇有無2、 方法、事件注釋/ <summary>/ 根據(jù)應(yīng)聘人員ID獲得應(yīng)聘人員信息/ </summary>/ <param name="applyId">應(yīng)聘人員ID</param>/ <excepti

12、on cref="System.Exception">系統(tǒng)異常</exception>/ <returns>應(yīng)聘人員姓名</returns>/ <remarks>/ 創(chuàng)建人:RennErann/ 創(chuàng)建日期:yyyy-mm-dd/ 修改人:iflash50/ 修改日期:yyyy-mm-dd/ 修改備注:無/ 版本:1.1/ </remarks>public string GeApplyNameById(int applyId)tryreturn "李山"catch (System.Excep

13、tion)throw;注意:該方法注釋中的<param></param>、<exception cref=" "></exception>、<returns></returns>等標簽根據(jù)具體情況選擇有無,方法初始版本為1.0,每次改動增加0.1。3、 屬性、常量注釋/ <summary>/ session id/ </summary>public const string SESSION_ID = ""3.4 單行注釋該類注釋用于1 方法內(nèi)的代碼注釋。如變量

14、的聲明、代碼或代碼段的解釋。注釋示例: / 注釋語句private int number; 2 方法內(nèi)變量的聲明或花括號后的注釋, 注釋示例: if (true) / always truereturn 1; else / always false3.5 JavaScript注釋a) 注釋符號/不允許使用/*/作注釋符。b) 函數(shù)注釋每個函數(shù)都應(yīng)該描述該函數(shù)的名稱、功能、作用范圍、入口參數(shù)的類型和傳值方式及參數(shù)含義、返回值類型及返回值的含義。格式如下:/Function: 函數(shù)名/Purpose: 用途/Scope: 作用范圍/Args: 入口參數(shù)(列表) 類型傳值方式含義/Returns:

15、返回值類型 (可確定值列表) 含義/c) 非函數(shù)注釋注明該模塊的作用。格式如下:/功能:/d) 程序行間注釋在程序行的每一個處理單元前作注釋。格式如下:/注釋e) 注釋舉例/Function: F_FindObject/Purpose: 按照空間名在可視化主對象中查找住對象內(nèi)的可視化控件/Scope: Public/Args: is_name String value:要查找的空間名/ ipbo_object Object value: 可視化主對象/Returns: Boolean True 表示找到該控件/ False 表示沒有找到該控件/function F_FindObject(is_

16、name, ipbo_object) /獲得顯示學生信息的GreeView控件var gv_student = document.getElementById("GVStudent");*/返回truereturn true;3.6 3.5注釋標簽標簽用法作用<c>c>text</c>text 希望將其指示為代碼的文本。為您提供了一種將說明中的文本標記為代碼的方法。使用 <code> 將多行指示為代碼<para><para>content</para>content段落文本。用于諸如 <re

17、marks> 或 <returns> 等標記內(nèi),使您得以將結(jié)構(gòu)添加到文本中。<param><param name='name'>description</param>name 為方法參數(shù)名。將此名稱用單引號括起來 (' ')。應(yīng)當用于方法聲明的注釋中,以描述方法的一個參數(shù)。<paramref> <paramref name="name"/>name 要引用的參數(shù)名。將此名稱用雙引號括起來 (" ")。<paramref> 標記為您提供

18、了一種指示詞為參數(shù)的方法??梢蕴幚?XML 文件,從而用某種獨特的方法格式化該參數(shù)。<see><see cref="member"/>cref = "member" 對可以通過當前編譯環(huán)境進行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將 member 傳遞給輸出 XML 中的元素名。必須將 member 括在雙引號 (" ") 中。使您得以從文本內(nèi)指定鏈接。使用 <seealso> 指示希望在“請參閱”一節(jié)中出現(xiàn)的文本。<seealso><seealso cref=&

19、quot;member"/>cref = "member" 對可以通過當前編譯環(huán)境進行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將 member 傳遞給輸出 XML 中的元素名。必須將 member 括在雙引號 (" ") 中使您得以指定希望在“請參閱”一節(jié)中出現(xiàn)的文本。使用 <see> 從文本<example><example>description</example>description 代碼示例的說明。使用 <example> 標記可以指定使用方法或其他庫成

20、員的示例。一般情況下,這將涉及到 <code> 標記的使用。<code><code>content</code>content 為希望將其標記為代碼的文本。 記為您提供了一種將多行指示為代碼的方法。使用 <c> 指示應(yīng)將說明中的文本標記為代碼<summary><summary>description</summary>此處description 為對象的摘要。應(yīng)當用于描述類型成員。使用 <remarks> 以提供有關(guān)類型本身的信息。<exception><excepti

21、on cref="member">description</exception>cref = "member" 對可從當前編譯環(huán)境中獲取的異常的引用。編譯器檢查到給定異常存在后,將 member 轉(zhuǎn)換為輸出 XML 中的規(guī)范化元素名。必須將 member 括在雙引號 (" ") 中。description 說明。<exception> 標記使您可以指定類能夠引發(fā)的異常。<include><include file='filename' path='tagpathn

22、ame="id"' />filename 包含文檔的文件名。該文件名可用路徑加以限定。將 filename 括在單引號中 (' ')。 Tagpath:filename 中指向標記名的標記路徑。將此路徑括在單引號中 (' ')。 name 注釋前邊的標記中的名稱說明符;名稱具有一個 id。 id 位于注釋之前的標記的 id。將此 id 括在雙引號中 (" ")。<include> 標記使您得以引用描述源代碼中類型和成員的另一文件中的注釋。這是除了將文檔注釋直接置于源代碼文件中之外的另一種可選方法。

23、<include> 標記使用 XML XPath 語法。有關(guān)自定義 <include> 使用的方法,請參閱 XPath 文檔。<list> <list type="bullet" | "number" | "table"><listheader><term>term</term><description>description</description></listheader><item><ter

24、m>term</term><description>description</description></item></list>term 定義的項,該項將在 text 中定義。description 目符號列表或編號列表中的項或者 term 的定義。<listheader> 塊用于定義表或定義列表中的標題行。定義表時,只需為標題中的項提供一個項。列表中的每一項用 <item> 塊指定。創(chuàng)建定義列表時,既需要指定 term 也需要指定 text。但是,對于表、項目符號列表或編號列表,只需為 text 提供一個項。列表或表所擁有的 <item> 塊數(shù)可以根據(jù)需要而定。<permission&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論