国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.net官方編碼方法和命名規(guī)則

2024-07-10 12:58:48
字體:
供稿:網(wǎng)友
visual studio 

編碼方法

編碼方法合并了軟件開發(fā)的許多方面。盡管它們通常對(duì)應(yīng)用程序的功能沒有影響,但它們對(duì)于改善對(duì)源代碼的理解是有幫助的。這里考慮了所有形式的源代碼,包括編程、腳本撰寫、標(biāo)記和查詢語言。

不建議將這里定義的編碼方法形成一套固定的編碼標(biāo)準(zhǔn)。相反,它們旨在作為開發(fā)特定軟件項(xiàng)目的編碼標(biāo)準(zhǔn)的指南。

編碼方法分為三部分:

  • 命名
  • 注釋
  • 格式

命名

對(duì)于理解應(yīng)用程序的邏輯流,命名方案是最有影響力的一種幫助。名稱應(yīng)該說明“什么”而不是“如何”。通過避免使用公開基礎(chǔ)實(shí)現(xiàn)(它們會(huì)發(fā)生改變)的名稱,可以保留簡(jiǎn)化復(fù)雜性的抽象層。例如,可以使用 getnextstudent(),而不是 getnextarrayelement()。

命名原則是:選擇正確名稱時(shí)的困難可能表明需要進(jìn)一步分析或定義項(xiàng)的目的。使名稱足夠長(zhǎng)以便有一定的意義,并且足夠短以避免冗長(zhǎng)。唯一名稱在編程上僅用于將各項(xiàng)區(qū)分開。表現(xiàn)力強(qiáng)的名稱是為了幫助人們閱讀;因此,提供人們可以理解的名稱是有意義的。不過,請(qǐng)確保選擇的名稱符合適用語言的規(guī)則和標(biāo)準(zhǔn)。

以下幾點(diǎn)是推薦的命名方法。

例程

  • 避免容易被主觀解釋的難懂的名稱,如對(duì)于例程的 analyzethis(),或者對(duì)于變量的 xxk8。這樣的名稱會(huì)導(dǎo)致多義性,而不僅僅是抽象。
  • 在面向?qū)ο蟮恼Z言中,在類屬性的名稱中包含類名是多余的,如 book.booktitle。而是應(yīng)該使用 book.title。
  • 使用動(dòng)詞-名詞的方法來命名對(duì)給定對(duì)象執(zhí)行特定操作的例程,如 calculateinvoicetotal()。
  • 在允許函數(shù)重載的語言中,所有重載都應(yīng)該執(zhí)行相似的函數(shù)。對(duì)于那些不允許函數(shù)重載的語言,建立使相似函數(shù)發(fā)生關(guān)系的命名標(biāo)準(zhǔn)。

變量

  • 只要合適,在變量名的末尾追加計(jì)算限定符(avg、sum、min、max、index)。
  • 在變量名中使用互補(bǔ)對(duì),如 min/max、begin/end 和 open/close。
  • 鑒于大多數(shù)名稱都是通過連接若干單詞構(gòu)造的,請(qǐng)使用大小寫混合的格式以簡(jiǎn)化它們的閱讀。另外,為了幫助區(qū)分變量和例程,請(qǐng)對(duì)例程名稱使用 pascal 大小寫處理 (calculateinvoicetotal),其中每個(gè)單詞的第一個(gè)字母都是大寫的。對(duì)于變量名,請(qǐng)使用 camel 大小寫處理 (documentformattype),其中除了第一個(gè)單詞外每個(gè)單詞的第一個(gè)字母都是大寫的。
  • 布爾變量名應(yīng)該包含 is,這意味著 yes/no 或 true/false 值,如 fileisfound。
  • 在命名狀態(tài)變量時(shí),避免使用諸如 flag 的術(shù)語。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個(gè)以上的可能值。不是使用 documentflag,而是使用更具描述性的名稱,如 documentformattype。
  • 即使對(duì)于可能僅出現(xiàn)在幾個(gè)代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對(duì)于短循環(huán)索引使用單字母變量名,如 i 或 j。
  • 不要使用原義數(shù)字或原義字符串,如 for i = 1 to 7。而是使用命名常數(shù),如 for i = 1 to num_days_in_week 以便于維護(hù)和理解。

  • 在命名表時(shí),用單數(shù)形式表示名稱。例如,使用 employee,而不是 employees。
  • 在命名表的列時(shí),不要重復(fù)表的名稱;例如,在名為 employee 的表中避免使用名為 employeelastname 的字段。
  • 不要在列的名稱中包含數(shù)據(jù)類型。如果后來有必要更改數(shù)據(jù)類型,這將減少工作量。

microsoft sql server

  • 不要給存儲(chǔ)過程加 sp 前綴,這個(gè)前綴是為標(biāo)識(shí)系統(tǒng)存儲(chǔ)過程保留的。
  • 不要給用戶定義的函數(shù)加 fn_ 前綴,這個(gè)前綴是為標(biāo)識(shí)內(nèi)置函數(shù)保留的。
  • 不要給擴(kuò)展存儲(chǔ)過程加 xp_ 前綴,這個(gè)前綴是為標(biāo)識(shí)系統(tǒng)擴(kuò)展存儲(chǔ)過程保留的。

雜項(xiàng)

  • 盡量減少使用縮寫,而是使用以一致方式創(chuàng)建的縮寫。縮寫應(yīng)該只有一個(gè)意思;同樣,每個(gè)縮寫詞也應(yīng)該只有一個(gè)縮寫。例如,如果用 min 作為 minimum 的縮寫,那么在所有地方都應(yīng)這樣做;不要將 min 又用作 minute 的縮寫。
  • 在命名函數(shù)時(shí)包括返回值的說明,如 getcurrentwindowname()。
  • 與過程名一樣,文件和文件夾的名稱也應(yīng)該精確地說明它們的用途。
  • 避免對(duì)不同的元素重用名稱,如名為 processsales() 的例程和名為 iprocesssales 的變量。
  • 在命名元素時(shí)避免同音異義詞(如 write 和 right),以防在檢查代碼時(shí)發(fā)生混淆。
  • 在命名元素時(shí),避免使用普遍拼錯(cuò)的詞。另外,應(yīng)清楚區(qū)域拼寫之間存在的差異,如 color/colour 和 check/cheque。
  • 避免用印刷標(biāo)記來標(biāo)識(shí)數(shù)據(jù)類型,如用 $ 代表字符串或用 % 代表整數(shù)。

注釋

軟件文檔以兩種形式存在:外部的和內(nèi)部的。外部文檔(如規(guī)范、幫助文件和設(shè)計(jì)文檔)在源代碼的外部維護(hù)。內(nèi)部文檔由開發(fā)人員在開發(fā)時(shí)在源代碼中編寫的注釋組成。

不考慮外部文檔的可用性,由于硬拷貝文檔可能會(huì)放錯(cuò)地方,源代碼清單應(yīng)該能夠獨(dú)立存在。外部文檔應(yīng)該由規(guī)范、設(shè)計(jì)文檔、更改請(qǐng)求、錯(cuò)誤歷史記錄和使用的編碼標(biāo)準(zhǔn)組成。

內(nèi)部軟件文檔的一個(gè)難題是確保注釋的維護(hù)與更新與源代碼同時(shí)進(jìn)行。盡管正確注釋源代碼在運(yùn)行時(shí)沒有任何用途,但這對(duì)于必須維護(hù)特別復(fù)雜或麻煩的軟件片段的開發(fā)人員來說卻是無價(jià)的。

以下幾點(diǎn)是推薦的注釋方法:

  • 如果用 c# 進(jìn)行開發(fā),請(qǐng)使用 xml 文檔功能。有關(guān)更多信息,請(qǐng)參見:xml 文檔。
  • 修改代碼時(shí),總是使代碼周圍的注釋保持最新。
  • 在每個(gè)例程的開始,提供標(biāo)準(zhǔn)的注釋樣本以指示例程的用途、假設(shè)和限制很有幫助。注釋樣本應(yīng)該是解釋它為什么存在和可以做什么的簡(jiǎn)短介紹。
  • 避免在代碼行的末尾添加注釋;行尾注釋使代碼更難閱讀。不過在批注變量聲明時(shí),行尾注釋是合適的;在這種情況下,將所有行尾注釋在公共制表位處對(duì)齊。
  • 避免雜亂的注釋,如一整行星號(hào)。而是應(yīng)該使用空白將注釋同代碼分開。
  • 避免在塊注釋的周圍加上印刷框。這樣看起來可能很漂亮,但是難于維護(hù)。
  • 在部署之前,移除所有臨時(shí)或無關(guān)的注釋,以避免在日后的維護(hù)工作中產(chǎn)生混亂。
  • 如果需要用注釋來解釋復(fù)雜的代碼節(jié),請(qǐng)檢查此代碼以確定是否應(yīng)該重寫它。盡一切可能不注釋難以理解的代碼,而應(yīng)該重寫它。盡管一般不應(yīng)該為了使代碼更簡(jiǎn)單以便于人們使用而犧牲性能,但必須保持性能和可維護(hù)性之間的平衡。
  • 在編寫注釋時(shí)使用完整的句子。注釋應(yīng)該闡明代碼,而不應(yīng)該增加多義性。
  • 在編寫代碼時(shí)就注釋,因?yàn)橐院蠛芸赡軟]有時(shí)間這樣做。另外,如果有機(jī)會(huì)復(fù)查已編寫的代碼,在今天看來很明顯的東西六周以后或許就不明顯了。
  • 避免多余的或不適當(dāng)?shù)淖⑨專缬哪牟恢饕膫渥ⅰ?
  • 使用注釋來解釋代碼的意圖。它們不應(yīng)作為代碼的聯(lián)機(jī)翻譯。
  • 注釋代碼中不十分明顯的任何內(nèi)容。
  • 為了防止問題反復(fù)出現(xiàn),對(duì)錯(cuò)誤修復(fù)和解決方法代碼總是使用注釋,尤其是在團(tuán)隊(duì)環(huán)境中。
  • 對(duì)由循環(huán)和邏輯分支組成的代碼使用注釋。這些是幫助源代碼讀者的主要方面。
  • 在整個(gè)應(yīng)用程序中,使用具有一致的標(biāo)點(diǎn)和結(jié)構(gòu)的統(tǒng)一樣式來構(gòu)造注釋。
  • 用空白將注釋同注釋分隔符分開。在沒有顏色提示的情況下查看注釋時(shí),這樣做會(huì)使注釋很明顯且容易被找到。

格式

格式化使代碼的邏輯結(jié)構(gòu)很明顯。花時(shí)間確保源代碼以一致的邏輯方式進(jìn)行格式化,這對(duì)于您和必須解密源代碼的其他開發(fā)人員都有幫助。

以下幾點(diǎn)是推薦的格式化方法。

  • 建立標(biāo)準(zhǔn)的縮進(jìn)大小(如四個(gè)空格),并一致地使用此標(biāo)準(zhǔn)。用規(guī)定的縮進(jìn)對(duì)齊代碼節(jié)。
  • 在發(fā)布源代碼的硬拷貝版本時(shí)使用 monotype 字體。
  • 在括號(hào)對(duì)對(duì)齊的位置垂直對(duì)齊左括號(hào)和右括號(hào),如:
    for (i = 0; i < 100; i++){   ...}

    還可以使用傾斜樣式,即左括號(hào)出現(xiàn)在行尾,右括號(hào)出現(xiàn)在行首,如:

    for (i = 0; i < 100; i++){   ...}

    無論選擇哪種樣式,請(qǐng)?jiān)谡麄€(gè)源代碼中使用那個(gè)樣式。

  • 沿邏輯結(jié)構(gòu)行縮進(jìn)代碼。沒有縮進(jìn),代碼將變得難以理解,如:
    if ... thenif ... then...elseend ifelse...end if

    縮進(jìn)代碼會(huì)產(chǎn)生出更容易閱讀的代碼,如:

    if ... then   if ... then   ...   else   ...   end ifelse...end if
  • 為注釋和代碼建立最大的行長(zhǎng)度,以避免不得不滾動(dòng)源代碼編輯器,并且可以提供整齊的硬拷貝表示形式。
  • 在大多數(shù)運(yùn)算符之前和之后使用空格,這樣做時(shí)不會(huì)改變代碼的意圖。但是,c++ 中使用的指針表示法是一個(gè)例外。
  • 使用空白為源代碼提供結(jié)構(gòu)線索。這樣做會(huì)創(chuàng)建代碼“段”,有助于讀者理解軟件的邏輯分段。
  • 當(dāng)一行被分為幾行時(shí),通過將串聯(lián)運(yùn)算符放在每一行的末尾而不是開頭,清楚地表示沒有后面的行是不完整的。
  • 只要合適,每一行上放置的語句避免超過一條。例外是 c、c++、c# 或 jscript 中的循環(huán),如 for (i = 0; i < 100; i++)。
  • 編寫 html 時(shí),建立標(biāo)準(zhǔn)的標(biāo)記和屬性格式,如所有標(biāo)記都大寫或所有屬性都小寫。另一種方法是,堅(jiān)持 xhtml 規(guī)范以確保所有 html 文檔都有效。盡管在創(chuàng)建 web 頁時(shí)需折中考慮文件大小,但應(yīng)使用帶引號(hào)的屬性值和結(jié)束標(biāo)記以方便維護(hù)。
  • 編寫 sql 語句時(shí),對(duì)于關(guān)鍵字使用全部大寫,對(duì)于數(shù)據(jù)庫元素(如表、列和視圖)使用大小寫混合。
  • 在物理文件之間在邏輯上劃分源代碼。
  • 將每個(gè)主要的 sql 子句放在不同的行上,這樣更容易閱讀和編輯語句,例如:
    select firstname, lastnamefrom customerswhere state = 'wa'
  • 將大的復(fù)雜代碼節(jié)分為較小的、易于理解的模塊。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 保定市| 隆子县| 义乌市| 水富县| 格尔木市| 凤庆县| 特克斯县| 雷山县| 景洪市| 白城市| 洪泽县| 富阳市| 乃东县| 通化县| 元氏县| 天镇县| 星子县| 永善县| 沧州市| 滦平县| 扶余县| 浮梁县| 南华县| 和静县| 兴业县| 习水县| 柯坪县| 海淀区| 阿拉善右旗| 同江市| 资讯 | 吴江市| 肃宁县| 合肥市| 阳东县| 长葛市| 东阿县| 措勤县| 嘉义市| 新绛县| 克山县|