程序員開發(fā)手冊_第1頁
程序員開發(fā)手冊_第2頁
程序員開發(fā)手冊_第3頁
程序員開發(fā)手冊_第4頁
程序員開發(fā)手冊_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、安全生產(chǎn)信息化管理系統(tǒng)程序員開發(fā)手冊1 概述1.1 目的1、方便代碼的交流和維護(hù)。2、 不影響編碼的效率,不與大眾習(xí)慣沖突。3、 使代碼更美觀、閱讀更方便。4、 使代碼的邏輯更清晰、更易于理解。1.2 范圍本手冊適用于開發(fā)部全體人員,作用于軟件項目開發(fā)的代碼編寫階段和后期維護(hù)階段。1.3 警示通過自動檢查【Microsoft.StyleCop 】或人工檢查【部門主管或相關(guān)負(fù)責(zé)人】不符合編碼規(guī)范的,必須在限期【部門主管或相關(guān)負(fù)責(zé)人指定時間】內(nèi)修正 , 逾 期視為工作過失,部門主管或相關(guān)負(fù)責(zé)人視具體情況做出相關(guān)處理。1.4 術(shù)語定義1、 匈 牙利命名法【禁用】標(biāo)識符的名字以一個或者多個小寫字母開頭

2、作為前綴;前綴之后的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。例如: aUserld 數(shù)組 (Array) 定義以小寫字母a 開頭2、 帕 斯卡 ( pascal )命名法【推薦】將標(biāo)識符的首字母和后面連接的每個單詞的首字母都大寫??梢詫θ址蚋嘧址臉?biāo)識符使用 Pascal 大小寫。例如:UserId3、 駱駝(Camel)命名法【推薦】標(biāo)識符的首字母小寫,而每個后面連接的單詞的首字母都大寫。例如:userId2 代碼格式2.1 列寬1、 為 了防止在閱讀代碼時不得不滾動源代碼編輯器,每行代碼或注釋在一般顯示頻率下不得超過一顯示屏,代碼列寬控制在110 字符左右。2、

3、 系 統(tǒng)中部分代碼可以不遵循此原則。如:VIWFormltemDeta 叩 dv =(VIWFormltemDeta 叩 ) MHelper.SQLComma nd.query(sql,VIWFormltemDetail.TName, sqIParams);3、SQL語句拼接、字符串拼接、函數(shù)參數(shù)名過長、判斷語句過長的代碼要遵循以上原則。2.2 換行1、 當(dāng) 表達(dá)式超出或即將超出規(guī)定的列寬,一行被分為幾行時,通過將串聯(lián)運(yùn)算符放在每一行的末尾而不是開頭,清楚地表示沒有后面的行是不完整的。Stri ng querySql =“ SELECTProjectId ” + “ ,ProjectTitle

4、 ” + “ FROM Project ”2、 每 一行上放置的語句避免超過一條。3、 當(dāng) 表達(dá)式超出或即將超出規(guī)定的列寬,遵循以下規(guī)則進(jìn)行換行(1) 在逗號前換行。(2) 在操作符前換行。(3) 規(guī) 則 1 優(yōu)先于規(guī)則2。例如:StringBuilder querySql = new StringBuilder();querySql.Appe nd("SELECT a.ProjectId AS PK ");querySql.Appe nd(",a.ProjectTitle");querySql.Appe nd(",a.ProjectDispl

5、ayCode");querySql.Appe nd(",a.lsb nCode AS ISBNCode");querySql.Appe nd("FROM Project a ");當(dāng)以上規(guī)則會導(dǎo)致代碼混亂的時候自己采取更靈活的換行規(guī)則。2.3 縮進(jìn)縮進(jìn)應(yīng)該是每行一個 Tab(4個空格),不要在代碼中使用 Tab字符。Visual Studio.Net 設(shè)置:工具-> 選項-> 文本編輯器->C#->制表符-> 插入空 格2.4 空行空行是為了將邏輯上相關(guān)聯(lián)的代碼分塊,以便提高代碼的可閱讀性。在以下情況下使用兩個空行

6、1、 接口和類的定義之間。2、 枚舉和類的定義之間。3、 類與類的定義之間。在以下情況下使用一個空行1、 方法與方法、屬性與屬性之間。2、 方法中變量聲明與語句之間。3、 方法與方法之間。4、 方法中不同的邏輯塊之間。5、 方法中的返回語句與其他的語句之間。6、 屬性與方法、屬性與字段、方法與字段之間。7、注釋與它注釋的語句間不空行,但與其他的語句間空一行。2.5 空格在以下情況中要使用到空格1、 關(guān)鍵字和左括符“ ( ”應(yīng)該用空格隔開。如while (true)注意 ; 在方法名和左括符“ ( ”之間不要使用空格,這樣有助于辨認(rèn)代碼中的方法調(diào)用與關(guān)鍵字。多個參數(shù)用逗號隔開,每個逗號后都應(yīng)加一

7、個空格。2、 除了 . 之外,所有的二元操作符都應(yīng)用空格與它們的操作數(shù)隔開。一元操作符、+及 - 與操作數(shù)間不需要空格。如a+=c+d;a = (a + b) / (c * d);while(d+ = s+)n+;PrintSize( “ size is “ +size+ “ n” ) ;3、 語句中的表達(dá)式之間用空格隔開。女口for(expr1; expr2; expr3)4、 以下寫法是不允許的:int j=i+k;2.6 括號 -()1、 左括號“( ”不要緊靠關(guān)鍵字,中間用一個空格隔開2、 左括號“( ”與方法名之間不要添加任何空格。3、 沒有必要的話不要在返回語句中使用() 。如if

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

9、lidelse / n ot valid / end forever以下情況是不允許的:if(x=0) Resp on se.Write (”用戶編號必須輸入!"); 或者:if(x=0) Respo nse.Write(" 用 戶編號必須輸入!");2.8 分解將大的復(fù)雜代碼節(jié)分為較小的、易于理解的模塊。2.9 SQL1、 編寫SQL語句時,對于關(guān)鍵字或保留字使用全部大寫,對于數(shù)據(jù)庫元素(如表、列和視圖等命名) 使用帕斯卡命名法命名。如:SELECT UserId AS EmId FROM UserSELECT UserId AS EmId FROM User

10、AS emSELECT UserId AS EmId FROM User AS EM等允許使用;2、將每個主要的SQL子句放在不同的行上,這樣更容易閱讀和編輯語句。例如: SELECT FirstName, LastNameFROM CustomersWHERE State = 'WA'3、 不要從數(shù)據(jù)表中調(diào)用頁面或程序不需要的字段;2.10 弓 | 用1、對于程序中字段名稱的引用要通過對應(yīng)的屬性調(diào)用實現(xiàn)。如:Int userid = (int)DvO“ Userid ” ; 是不允許的;Int userid = (in t)Dv0User.x.Userld.Colum nN

11、ame;是允許的 ;stri ng bookPriceName = Book.x.BookPrice.Colu mnN ame;decimal? bookPrice = nu II;if(drbookPriceName != DBNull.Value)bookPrice = (decimal)drbookPriceName;是允許的;3 程序注釋3.1 注釋概述1、 修改代碼時,總是使代碼周圍的注釋保持最新。2、 在每個例程的開始,提供標(biāo)準(zhǔn)的注釋樣本以指示例程的用途、假設(shè)和限制很有幫助。注釋樣本應(yīng)該是解釋它為什么存在和可以做什么的簡短介紹。3、 避免在代碼行的末尾添加注釋;行尾注釋使代碼更難閱

12、讀。不過在批注變量聲明時,行尾注釋是合適的;在這種情況下,將所有行尾注釋在公共制表位處對齊。4、 避免雜亂的注釋,如一整行星號。而是應(yīng)該使用空白將注釋同代碼分開。5、 避免在塊注釋的周圍加上印刷框。這樣看起來可能很漂亮,但是難于維護(hù)。6、 在部署發(fā)布之前,移除所有臨時或無關(guān)的注釋,以避免在日后的維護(hù)工作中產(chǎn)生混亂。7、 如果需要用注釋來解釋復(fù)雜的代碼節(jié),請檢查此代碼以確定是否應(yīng)該重寫它。盡一切可能不注釋難以理解的代碼,而應(yīng)該重寫它。盡管一般不應(yīng)該為了使代碼更簡單以便于人們使用而犧牲性能,但必須保持性能和可維護(hù)性之間的平衡。8、 在編寫注釋時使用完整的句子。注釋應(yīng)該闡明代碼,而不應(yīng)該增加多義性。

13、9、 在編寫代碼時就注釋,因為以后很可能沒有時間這樣做。另外,如果有機(jī)會復(fù)查已編寫的代碼,在今天看來很明顯的東西六周以后或許就不明顯了。10、 避免多余的或不適當(dāng)?shù)淖⑨?,如幽默的不主要的備注?1、 使用注釋來解釋代碼的意圖。它們不應(yīng)作為代碼的聯(lián)機(jī)翻譯。12、 注釋代碼中不十分明顯的任何內(nèi)容。13、 為了防止問題反復(fù)出現(xiàn),對錯誤修復(fù)和解決方法代碼總是使用注釋,尤其是在團(tuán)隊環(huán)境中。14、 對由循環(huán)和邏輯分支組成的代碼使用注釋。這些是幫助源代碼讀者的主要方面。15、 在整個應(yīng)用程序中,使用具有一致的標(biāo)點和結(jié)構(gòu)的統(tǒng)一樣式來構(gòu)造注釋。16、 用空白將注釋同注釋分隔符分開。在沒有顏色提示的情況下查看注釋

14、時,這樣做會使注釋很明顯且容易被找到。17、 在所有的代碼修改處加上修改內(nèi)容的注釋(此項只供參考)。18、 對于常量、變量、表達(dá)式等使用單行注釋時建議放到聲明的后面;19、 對 于常量、變量、表達(dá)式等建議使用單行注釋,單行注釋格式如:private int nu mber; / 注釋語句或:/ 注釋語句private int nu mber;20、 為了使層次清晰,在閉合的右花括號后注釋該閉合所對應(yīng)的起點(此項只供參考)。n amespace Lan gchao.Procume nt.Web / n amespace Lan gchao.Procume nt.Web3.2 文檔型注釋該類注釋采

15、用.Net 已定義好的Xml 標(biāo)簽來標(biāo)記,在聲明接口、類、方法、屬性、字段都應(yīng)該使用該類注釋,以便代碼完成后直接生成代碼文檔,讓別人更好的了解代碼的實現(xiàn)和接口。如 /<summary>MyMethod is a method in the MyClass class. /vpara>Here's how you could makea sec ond paragraph in a descripti on. /<see cref="System.Co nsole.WriteLi ne"/>/for in formati on about

16、 output stateme nts./</para>/vseealso cref="MyClass.Mai n"/>/</summary>public static void MyMethod(int Int1)又如:類屬性注釋規(guī)范在類的屬性必須以以下格式編寫屬性注釋:/ <summary>/ 屬性說明/ </summary>方法注釋規(guī)范在類的方法聲明前必須以以下格式編寫注釋/ <summary>/ 說明:<對該方法的說明> / </summary>/ vparam name=&q

17、uot;< 參數(shù)名稱>"><參數(shù)說明></param>/ vretur ns>/< 對方法返回值的說明,該說明必須明確說明返回的值代表什么含義 >/ </returns>3.3 類 c 注釋 (此項只供參考)該類注釋用于1、 不再使用的代碼。2、 臨時測試屏蔽某些代碼。用法/* 修改標(biāo)識 修改原因. (the source code )*/3.4 單行注釋該類注釋用于1、 方 法內(nèi)的代碼注釋。如變量的聲明、代碼或代碼段的解釋。注釋示例:/ <summary>/ 注釋語句/ </summary&g

18、t;private int nu mber;或/ 注釋語句private int nu mber;private int nu mber;注釋語句2、方法內(nèi)變M的聲明或花括號后的注釋,注釋示例:if ( 1 = 1) / always truestateme nt; / always true3.5 文件注釋文件功能描述只需簡述,具體詳情在類的注釋中描述3.6 注釋標(biāo)簽<c></c>為您提供了一種將說明中的文本標(biāo)記 為代碼的方法。使用 <code>text布望將其指示為代碼的文本。將多行指示為代碼<para><para>錯誤!超鏈接引

19、用無效。</para>content段洛文本。用于諸如<remarks>或<returns>等標(biāo)記內(nèi),使您得以將結(jié)構(gòu)添加到文本中。vparam>vparam name='錯誤!超鏈接 弓1用無效。' > 錯誤!超鏈接引用無效。</param>name為方法參數(shù)名。將此名稱 用單引號括起來(”)。應(yīng)當(dāng)用于方法聲明的注釋中, 以描述方法的一個參數(shù)。vparamref>vparamref name="錯誤!超鏈接引用無效。"/>n ame要引用的參數(shù)名。將此名稱用雙<paramref&g

20、t;標(biāo)記為您提供了一種 指小 詞為參數(shù)的方法??梢蕴幚鞽MUC件,從而用莫種獨特的方法格式 化該參數(shù)。<see>引號括起來("")。<see錯誤!超鏈接引用無 效。 錯誤!超鏈接引用無效。"member"/ >cref = "member"對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成 員或 字段的引用。編譯器檢查到給/£ 代碼兀素存在后,將membe傳 遞給輸出XML中的兀素名。必須 將member括在雙引號(”")中。使您得以從文本內(nèi)指定鏈接。使用<seealso> 指小卅望在請參閱”

21、一節(jié)中出現(xiàn)的文本。<seealso>vseealso錯誤!超鏈接引用無效。錯誤!超鏈接引用無 效。"member"/ >cref = "member" 對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成 員或 字段的引用。編譯器檢查到給/£ 代碼兀素存在后,將membe傳 遞給輸出XML中的兀素名。必須 將member括在雙引號(”")中使您得以指定希望在“請參閱”一節(jié)中出現(xiàn)的文本。使用 <see>從文本<example>< example >錯誤!超鏈接引用無效。</example >

22、; description使用example標(biāo)記可以指定使用方法或其他庫成員的示例。一般情況下,這將涉及到< code >標(biāo)記 的使用。<code>代碼示例的說明。< code >錯誤!超鏈接引用無效。< /code >con te nt為布望將其標(biāo)記為 代碼的文本Q記為您提供了一種將多行指示為代碼的方法。使用<c>才旨示應(yīng)將說明中的文本標(biāo)記為代碼<summary>vsummary錯誤! 超鏈接引用無效。/summary止匕處description為對象的摘要。應(yīng)當(dāng)用于描述類型成員。使用< remarks >以

23、提供有關(guān)典型本身的信息。vexcepti on>vexception 錯誤!超鏈接弓1用無效。錯誤!超鏈接引用無vexcepti on > 標(biāo)記使您 可 以指定類能夠引發(fā)的異常。效。"member"*昔誤!超鏈接 弓 用無效。v/exceptio n> cref = "member'對可從當(dāng)前 編譯環(huán)境中 獲取的異常的引 用。編譯器檢查 到給定異常存在后,將member 轉(zhuǎn)換為輸出XML中的規(guī)范化元素 名。必須將membe拈在雙引號 ("")中。descripti on 說明。<in clude><i

24、n clude>標(biāo)記使您得以引用描<include file=' 錯誤!超鏈 接引用無效。'path='錯誤!超 鏈接引用無效。頌昔誤!超鏈接 引用無效。="錯誤!超鏈接引用 無效。"'/> file name 包含文 檔的文件 名。該文件名可用路徑 加以限定。將file name括在單 引號中('')。Tagpath : file name 中指向 標(biāo)述源代碼中類型和成員的另一文 件中 的注釋。這是除了將文檔注釋 宜接置于 源代碼文件中之外的另 一種可選方法。<include>標(biāo)記使用XMLXP

25、ath語法。有關(guān)自定義<include> 使 用的方法, 請參閱XPath文檔。記名的標(biāo)記路徑。將此路徑括在 單引號中('')。name注釋前邊的 標(biāo)記中的名稱說明符;名稱具有 一個 id 。id位于注釋之前的標(biāo)記的id。將此 id括在雙引號中("")。<list><list type="bullet" |"nu mber" | "table" ><listheader><term>錯誤!超鏈接引用無效。</term>vdesc

26、ription> 錯誤!超鏈接 弓I 用無效。v/descripti on></listheader><item><term>錯誤!超鏈接引用無效。</term><description> 錯誤!超鏈接 弓I 用無效。v/descripti on></item></list>term定義的項,該項將在text 中定義。descripti on 目符號歹U表或listheader塊用于JE義表或JE 義列表中的標(biāo)題行。定義表時,只 需為標(biāo)題 中的項提供一個項。列表中的每一項用item塊指JEo創(chuàng)

27、 建義列表時,既需要指JEterm也需要指/E text。但是,對 于表、項目符 號列表或編號列表,只需為text提供一個項。列表或表所擁有的item塊數(shù)可以根 據(jù)需要而JEovpermissi on>vpermission 錯誤!超鏈接引用vpermissi on 標(biāo)記使您得以將成 員無效。錯誤!超鏈接引用無效。"member"錯誤!超鏈接引用無效。v/permission>cref = "member"對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的的訪問記入文檔。System.Security.Permissio nSet 使您得以指定對成員的訪問。成

28、員或字段的引用。編譯器檢查 到給/£代碼兀素存在后,將 membe轉(zhuǎn)換為輸出XML中的規(guī)范 化兀素名。必須將membe拈在 雙引號("")中。descripti on 成員的訪問的<remarks><remarks>錯誤!超鏈接引用無效。</remarks>descripti on成員 的說明。<remarks>標(biāo)記是可以指定有關(guān)類或其他類型的概述桁息的位置。<summary>!可以描述該類型的 成員的位置。vretur ns><returns>錯誤!超鏈接引用無效。</returns>descripti on 返回值的說 明。<returns> 標(biāo)記應(yīng)當(dāng)用于方法聲明的注釋,以描述返回值。<value><value&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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論