欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java命名規(guī)范[樣例5]

      時(shí)間:2019-05-13 07:37:22下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《Java命名規(guī)范》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《Java命名規(guī)范》。

      第一篇:Java命名規(guī)范

      Java是一種區(qū)分字母的大小寫(xiě)(case-sensitive)的語(yǔ)言,下面談?wù)凧ava語(yǔ)言中包、類(lèi)、變量等的命名規(guī)范。

      (一)Package(包)的命名:

      Package的名字應(yīng)該都是由一個(gè)小寫(xiě)單詞組成,例如net.ebseries.modules。

      (二)Class(類(lèi))的命名:

      Class的名字首字母大寫(xiě),通常由多個(gè)單詞合成一個(gè)類(lèi)名,要求每個(gè)單詞的首字母也要大寫(xiě),例如:DataFile或InfoParser。

      (三)變量的命名:

      變量的名字可大小寫(xiě)混用,但首字符應(yīng)小寫(xiě)。詞由大寫(xiě)字母分隔,限制用下劃線,限制使用美元符($),因?yàn)檫@個(gè)字符對(duì)內(nèi)部類(lèi)有特殊的含義。如:inputFileSize。

      (四)Interface(接口)的命名:與Class的命名類(lèi)似。

      (五)Static Final 變量(相當(dāng)于常量)的命名

      Static Final 變量的名字應(yīng)該都大寫(xiě),并且指出完整含義,例如:final MAXUPLOADFILESIZE=1024。

      (六)方法的命名

      方法名的第一個(gè)單詞應(yīng)該是動(dòng)詞,大小寫(xiě)可混用,但首字母應(yīng)小寫(xiě)。在每個(gè)方法名內(nèi),大寫(xiě)字母將詞分隔并限制使用下劃線。參數(shù)的名字必須和變量的命名規(guī)范一致。使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字:

      setCounter(int size){this.size = size;}

      數(shù)組的命名

      數(shù)組應(yīng)該總是用下面的方式來(lái)命名:byte[] buffer;而不是:byte buffer[](習(xí)慣性問(wèn)題而已)。

      值得注意的是,命名時(shí)應(yīng)盡量采用完整的英文描述符(也有特例)。此外,一般應(yīng)采用小寫(xiě)字母,但類(lèi)名、接口名以及任何非初始單詞的第一個(gè)字母要大寫(xiě)。

      歸納成以下幾點(diǎn),就是:盡量使用完整的英文描述符、采用適用于相關(guān)領(lǐng)域的術(shù)語(yǔ)、采用大小寫(xiě)混合使名字可讀、盡量少用縮寫(xiě),但如果用了,要明智地使用,且在整個(gè)工程中統(tǒng)一、避免使用長(zhǎng)的名字(小于 15 個(gè)字母是個(gè)好主意)、避免使用類(lèi)似的名字,或者僅僅是大小寫(xiě)不同的名字、避免使用下劃線(除靜態(tài)常量等)。

      第二篇:Java命名規(guī)范

      Java包的名字都是由小寫(xiě)單詞組成。但是由于Java面向?qū)ο缶幊痰奶匦?,每一名Java程序員都可以編寫(xiě)屬于自己的Java包,為了保障每個(gè)Java包命名的唯一性,在最新的Java編程規(guī)范中,要求程序員在自己定義的包的名稱(chēng)之前加上唯一的前綴。由于互聯(lián)網(wǎng)上的域名稱(chēng)是不會(huì)重復(fù)的,所以程序員一般采用自己在互聯(lián)網(wǎng)上的域名稱(chēng)作為自己程序包的唯一前綴。例如: net.frontfree.javagroup

      類(lèi)的名字必須由大寫(xiě)字母開(kāi)頭而單詞中的其他字母均為小寫(xiě);如果類(lèi)名稱(chēng)由多個(gè)單詞組成,則每個(gè)單詞的首字母均應(yīng)為大寫(xiě)例如TestPage;如果類(lèi)名稱(chēng)中包含單詞縮寫(xiě),則這個(gè)所寫(xiě)詞的每個(gè)字母均應(yīng)大寫(xiě),如:XMLExample,還有一點(diǎn)命名技巧就是由于類(lèi)是設(shè)計(jì)用來(lái)代表對(duì)象的,所以在命名類(lèi)時(shí)應(yīng)盡量選擇名詞。

      例如: Circle

      interface RasterDelegate;

      interface Storing;

      方法的名字的第一個(gè)單詞應(yīng)以小寫(xiě)字母作為開(kāi)頭,后面的單詞則用大寫(xiě)字母開(kāi)頭。例如: sendMessge

      變量(Variables)除了變量名外,所有實(shí)例,包括類(lèi),類(lèi)常量,均采用大小寫(xiě)混合的方式,第一個(gè)單詞的首字母小寫(xiě),其后單詞的首字母大寫(xiě)。變量名不應(yīng)以下劃線或美元符號(hào)開(kāi)頭,盡管這在語(yǔ)法上是允許的。

      變量名應(yīng)簡(jiǎn)短且富于描述。變量名的選用應(yīng)該易于記憶,即,能夠指出其用途。盡量避免單個(gè)字符的變量名,除非是一次性的臨時(shí)變量。臨時(shí)變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字符型。char c;

      int i;

      float myWidth;

      實(shí)例變量(Instance Variables)大小寫(xiě)規(guī)則和變量名相似,除了前面需要一個(gè)下劃線 int _employeeId;

      String _name;

      Customer _customer;

      常量的名字應(yīng)該都使用大寫(xiě)字母,并且指出該常量完整含義。如果一個(gè)常量名稱(chēng)由多個(gè)單詞組成,則應(yīng)該用下劃線來(lái)分割這些單詞。

      例如: MAX_VALUE

      第三篇:資源上傳命名規(guī)范

      資源上傳命名規(guī)范

      【導(dǎo)語(yǔ)】

      為了提高資源可讀性,讓您更加方便查閱資料,網(wǎng)站制定了《第二教育網(wǎng)資源命名規(guī)范》文檔,所有上傳的資料必須符合文檔中要求。具體如下:

      【高中上傳資源命名規(guī)范】

      一.標(biāo)題命名規(guī)則:

      1、備課資源命名規(guī)則:(教案,學(xué)案,課件,單元測(cè)試)

      年級(jí)+科目+空格(半角)+資源標(biāo)題+類(lèi)別+空格+版本+必選修

      例:

      高中語(yǔ)文 第六單元《短歌行》教案 新人教版必修2 高中英語(yǔ) Unit4 Warming Up and Reading課件 新人教版必修1

      2、對(duì)于試題命名規(guī)則:省份+市+學(xué)校+年份+年級(jí)+科目+類(lèi)別+版本

      例:

      江蘇省淮州中學(xué)09-10學(xué)年高二地理下學(xué)期期末考試新人教版

      無(wú)答案(缺答案改成無(wú)答案),掃描版,PDF版,圖片版 例:

      江蘇省淮州中學(xué)09-10學(xué)年高二地理下學(xué)期期末考試(掃描版)新人教版

      江蘇省淮州中學(xué)09-10學(xué)年高二地理下學(xué)期期末考試(圖片版)新人教版

      江蘇省淮州中學(xué)09-10學(xué)年高二地理下學(xué)期期末考試(PDF版)新人教版

      江蘇省淮州中學(xué)09-10學(xué)年高二地理下學(xué)期期末考試(無(wú)答案)新人教版

      3、對(duì)于套題命名規(guī)則:必須格式相同(包括符號(hào)和空格)

      例:

      2011年高考語(yǔ)文系統(tǒng)集成一輪復(fù)習(xí)方案 第一編語(yǔ)言知識(shí)及運(yùn)用 新人教版 2011年高考語(yǔ)文系統(tǒng)集成一輪復(fù)習(xí)方案 第二編文言文閱讀 新人教版

      2011年高考語(yǔ)文系統(tǒng)集成一輪復(fù)習(xí)方案 第三編文學(xué)常識(shí)、名著閱讀和名句名篇 新人教版 2011年高考語(yǔ)文系統(tǒng)集成一輪復(fù)習(xí)方案 第四編古代詩(shī)歌鑒賞 新人教版 2011年高考語(yǔ)文系統(tǒng)集成一輪復(fù)習(xí)方案 第五編現(xiàn)代文閱讀 新人教版

      二.特殊命名規(guī)則:

      注意:標(biāo)題里除書(shū)名號(hào)和特別標(biāo)題符號(hào)需要除外,其它符號(hào)(如:冒號(hào),中間橫線,間隔號(hào),一律用空格代替。對(duì)于特殊格式文件名命名規(guī)則:

      年級(jí)+科目+空格(半角)+資源標(biāo)題+類(lèi)別+空格+(特殊文件格式)+空格+版本+必選修

      例:

      高中英語(yǔ) unit 4 Listening素材(mp3)新人教版必修4 高中英語(yǔ) unit 4 Listening視頻課件(avi)新人教版必修4 注:凡是swf 格式的文件,統(tǒng)一用命名:(flash)

      對(duì)于網(wǎng)站上的視頻素材,統(tǒng)一命名年級(jí)+科目+標(biāo)題+視頻+ 類(lèi)別+視頻格式+版本+必選修 例:高中政治 經(jīng)濟(jì)全球化視頻素材(avi)新人教版必修1 三.命名專(zhuān)業(yè)性

      1,高一,高二,高三和必選修,不能并形存在

      例:該試題原文件名是:高一語(yǔ)文 第六單元《短歌行》教案 新人教版必修2 則命名規(guī)則:高中語(yǔ)文

      第六單元《短歌行》教案 新人教版必修2 實(shí)現(xiàn):文件名為高中,上傳后臺(tái)傳到相對(duì)應(yīng)所屬的,高一年級(jí)里

      2,綜合網(wǎng)站各科分類(lèi),正確判斷資源版本和必選修的準(zhǔn)確性

      3,根據(jù)資源標(biāo)題及內(nèi)容,正確判斷資源所屬科目的準(zhǔn)確性 4, 根據(jù)原件名稱(chēng)去修改文件名,不能隨意改動(dòng)文件名的標(biāo)題

      【初中、小學(xué)上傳資源命名規(guī)范】

      一.標(biāo)題命名規(guī)則:

      初中:所有“新版”資源需要再標(biāo)題上標(biāo)注為(新版)+版本

      小學(xué):所有“新版”資源需要再標(biāo)題上標(biāo)注為(新版)+版本

      1、備課資源的命名規(guī)則如下(注:備課包括課件 教案 學(xué)案 素材)

      1)年級(jí)+科目+上下冊(cè)+空格(半角)+資源標(biāo)題+類(lèi)別+空格+版本

      例:三年級(jí)語(yǔ)文上冊(cè) 第10課《寫(xiě)給云》課件 西師大版

      二年級(jí)數(shù)學(xué)上冊(cè) 課間活動(dòng)教案 北師大版 七年級(jí)數(shù)學(xué)上冊(cè) 1.4絕對(duì)值教案 浙教版

      七年級(jí)語(yǔ)文下冊(cè) 第一單元導(dǎo)學(xué)案 人教新課標(biāo)版

      八年級(jí)物理上冊(cè) 4.4 光的折射教學(xué)課件(新版)新人教版

      2)省份+年份+年級(jí)+科目+上下冊(cè)+資源標(biāo)題+類(lèi)別+版本

      例:江蘇省灌南縣2012年秋七年級(jí)語(yǔ)文上冊(cè)《偉人細(xì)胞》教案 蘇教版

      3)省份+年份+年級(jí)+科目+上下冊(cè)+資源標(biāo)題+主題+類(lèi)別+版本

      例:湖北省鐘祥市石牌鎮(zhèn)七年級(jí)數(shù)學(xué)上冊(cè)《整式的加減》復(fù)習(xí)課件 新人教版

      安徽省亳州市風(fēng)華中學(xué)七年級(jí)語(yǔ)文上冊(cè)《第4課 金色花》課件3(新版)新人教版

      2、試題資源的命名規(guī)則如下(注:試題包括期中 期末 月考 練習(xí)單元測(cè)試 復(fù)習(xí)等)

      1)省份+年份+年級(jí)+科目+上下學(xué)期(第一學(xué)期)+類(lèi)別+版本

      例:浙江省湖州市吳興區(qū)2013年一年級(jí)語(yǔ)文上學(xué)期期末考試試卷

      江蘇省太倉(cāng)市2012-2013學(xué)年七年級(jí)英語(yǔ)第一學(xué)期期末考試試題 人教新目標(biāo)版 吉林省鎮(zhèn)賚縣鎮(zhèn)2013屆九年級(jí)語(yǔ)文第四次月考試題(掃描版)新人教版 山東省青州市2013年三年級(jí)語(yǔ)文下學(xué)期期末質(zhì)量檢測(cè)試題(無(wú)答案)

      吉林省鎮(zhèn)賚縣鎮(zhèn)2013-2014九年級(jí)語(yǔ)文第四次月考試題(新版)新人教版 注:年份之間的橫線一定要是這個(gè)狀態(tài)的“-”

      上學(xué)期(下學(xué)期)與第一學(xué)期(第二學(xué)期)不可以并存。

      “期中考試試題”不可以并存,應(yīng)該為“期中試題”

      “缺答案”要改為“無(wú)答案”

      掃描版的試題標(biāo)題要為“掃描版,無(wú)答案” 而不應(yīng)該是“無(wú)答案,掃描版”。

      2)初中例如有單元、章節(jié)、知識(shí)點(diǎn)的要改為上冊(cè)而不是上學(xué)期。下冊(cè)與下學(xué)期同理。

      例:廣東省江門(mén)市七年級(jí)生物上學(xué)期第三單元綜合檢測(cè)題(無(wú)答案)正確應(yīng)為:廣東省江門(mén)市七年級(jí)生物上冊(cè) 第三單元綜合檢測(cè)題(無(wú)答案)

      3、中考套題的命名規(guī)則如下(注:必須格式相同 包括符號(hào)和空格 中考與九年級(jí)不可以并存)

      1)年份+年級(jí)+科目(+復(fù)習(xí)或總復(fù)習(xí))+資源標(biāo)題+類(lèi)別+版本

      例:

      【南方新中考】2013年中考生物復(fù)習(xí)人的生活需要空氣課件 新人教版

      【南方新中考】2013年中考生物復(fù)習(xí)生物的生殖和發(fā)育課件 新人教版

      【南方新中考】2013年中考生物復(fù)習(xí)被子植物的一生課件 新人教版

      【南方新中考】2013年中考生物復(fù)習(xí)專(zhuān)題四 突破中考社會(huì)熱點(diǎn)題型課件 新人教版

      【備考2014 志鴻優(yōu)化設(shè)計(jì)】2013版中考化學(xué)總復(fù)習(xí)基礎(chǔ)講練 第五單元 化學(xué)方程式 新人教版(中學(xué)教材全解)2013-2014學(xué)年九年級(jí)化學(xué)全冊(cè) 第8章 食品中的有機(jī)化合物綜合檢測(cè)題 滬教版

      注:“【】”此符號(hào)的使用規(guī)則為,必須是參考用書(shū)或者是教材類(lèi)的資源,其余的比較突出的重點(diǎn)需使用“()”

      來(lái)顯示。

      2)省份+年份+年級(jí)+科目(+復(fù)習(xí)或總復(fù)習(xí))+主題+資源標(biāo)題+版本

      例:

      廣東省2013年中考政治復(fù)習(xí)專(zhuān)題檢測(cè)試題 過(guò)富有情趣的生活

      廣東省2013年中考政治復(fù)習(xí)專(zhuān)題檢測(cè)試題 交往藝術(shù)新思維

      廣東省2013年中考政治復(fù)習(xí)專(zhuān)題檢測(cè)試題 滿(mǎn)懷希望迎接明天

      廣東省2013年中考政治復(fù)習(xí)專(zhuān)題檢測(cè)試題 我們的文化

      特例:

      2012年中考政治一輪復(fù)習(xí)八上 7.1禮貌待人精品課件 新人教版

      2012年中考政治一輪復(fù)習(xí)七上 1笑迎生活認(rèn)識(shí)自我精品課件 新人教版

      2012年中考政治一輪復(fù)習(xí)九年級(jí) 16關(guān)注經(jīng)濟(jì)發(fā)展精品課件 新人教版 3)小升初的命名規(guī)則

      例:2014小升初語(yǔ)文知識(shí)點(diǎn)專(zhuān)項(xiàng)復(fù)習(xí)專(zhuān)題一 基礎(chǔ)知識(shí) a o e 教案

      湖北省小升初英語(yǔ) 閱讀理解基礎(chǔ)訓(xùn)練10 北京市小升初語(yǔ)文模擬測(cè)試題

      (四)4、特殊格式文件名命名規(guī)則如下

      1)年級(jí)+科目+上下冊(cè)+空格(半角)+資源標(biāo)題+類(lèi)別+(特殊文件格式)+空格+版本

      例:五年級(jí)英語(yǔ)上冊(cè) lesson1課文朗讀素材(MP3)新路徑(一起)

      九年級(jí)化學(xué)上冊(cè) co2制作及性質(zhì)素材(flash)新人教版

      七年級(jí)語(yǔ)文上冊(cè)《15 錢(qián)塘湖春行》視頻素材(f4v)(新版)新人教版

      2)省份+年級(jí)+科目+上下冊(cè)+空格(半角)+資源標(biāo)題+類(lèi)別+(特殊文件格式)+空格+版本

      例:重慶市綦江區(qū)三江中學(xué)八年級(jí)語(yǔ)文上冊(cè) 了解蓮視頻素材(mpg)

      注:

      1、凡是swf 格式的文件,統(tǒng)一用命名(flash)其它類(lèi)型可以根據(jù)其文件的屬性來(lái)定。

      2、標(biāo)題里除書(shū)名號(hào)和特別標(biāo)題符號(hào)需要除外,其它符號(hào)(如:冒號(hào),中間橫線,間隔號(hào),用空格代替,也有特例,需要自己判斷,下面是例子。

      特例:

      3、標(biāo)題里外不符,要以里面的為準(zhǔn)進(jìn)行命題,同時(shí)如果標(biāo)題上沒(méi)有知識(shí)點(diǎn)而里面有知識(shí)點(diǎn)的,要將其復(fù)制到標(biāo)題上。

      5、打包文件名命名規(guī)則如下

      1)省份+年份+年級(jí)+科目+上下冊(cè)+資源標(biāo)題+類(lèi)別+(打包套)+版本

      例:湖南省岳陽(yáng)市七年級(jí)英語(yǔ)上冊(cè) Unit 6 Do you like bananas教案(打包5套)人教新目標(biāo)版

      寧夏外國(guó)語(yǔ)學(xué)校小升初英語(yǔ)專(zhuān)項(xiàng)訓(xùn)練 完形填空(打包50套)

      2)省份+年份+年級(jí)+科目+上下冊(cè)+資源標(biāo)題+類(lèi)別(注:多種)+(打包套)+版本

      例:八年級(jí)地理上冊(cè) 《第一章 第四節(jié) 中國(guó)的民族》課件+學(xué)案+同步練習(xí)(打包3套)湘教版

      注:多種類(lèi)別的打包要將知識(shí)點(diǎn)加上書(shū)名號(hào)

      二.命名專(zhuān)業(yè)性

      1、綜合網(wǎng)站各科分類(lèi),正確判斷資源版本和上下冊(cè)的準(zhǔn)確性

      2、根據(jù)資源標(biāo)題及內(nèi)容,正確判斷資源所屬科目的準(zhǔn)確性

      3、根據(jù)原件名稱(chēng)去修改文件名,不能隨意改動(dòng)文件名的標(biāo)題

      4、以上文件根據(jù)實(shí)際情況進(jìn)行隨時(shí)添加修改。

      第四篇:oracle命名規(guī)范

      1、編寫(xiě)目的

      使用統(tǒng)一的命名和編碼規(guī)范,使數(shù)據(jù)庫(kù)命名及編碼風(fēng)格標(biāo)準(zhǔn)化,以便于閱讀、理解和繼承。

      2、適用范圍

      本規(guī)范適用于公司范圍內(nèi)所有以O(shè)RACLE作為后臺(tái)數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)和項(xiàng)目開(kāi)發(fā)工作。

      3、對(duì)象命名規(guī)范 3.1 數(shù)據(jù)庫(kù)和SID 數(shù)據(jù)庫(kù)名定義為系統(tǒng)名+模塊名

      ?

      全局?jǐn)?shù)據(jù)庫(kù)名和例程SID名要求一致

      ?

      因SID名只能包含字符和數(shù)字,所以全局?jǐn)?shù)據(jù)庫(kù)名和SID名中不能含有“_”等字符

      3.2 表相關(guān) 3.2.1 表空間

      ?

      面向用戶(hù)的專(zhuān)用數(shù)據(jù)表空間以用戶(hù)名+_+data命名,如Aud用戶(hù)專(zhuān)用數(shù)據(jù)表空間可命名為Aud_data ?

      面向用戶(hù)的專(zhuān)用索引表空間以用戶(hù)名+_+idx命名 ?

      面向用戶(hù)的專(zhuān)用臨時(shí)表空間以用戶(hù)名+_+tmp命名 ?

      面向用戶(hù)的專(zhuān)用回滾段表空間以用戶(hù)名+_+rbs命名

      ?

      面向應(yīng)用的表空間以應(yīng)用名+_data/應(yīng)用名+_idx/應(yīng)用名+_tmp/應(yīng)用名+_rbs命名 ?

      LOB段數(shù)據(jù)專(zhuān)用表空間以其數(shù)據(jù)表空間+_+lobs命名,如上例中數(shù)據(jù)表空間為Aud_data,則LOB段表空間可命名為Aud_data_lobs 3.2.2 表空間文件

      表空間文件命名以表空間名+兩位數(shù)序號(hào)(序號(hào)從01開(kāi)始)組成,如Aud_data01等 3.2.3 表

      表命名要遵循以下原則:

      ?

      一般表采用“系統(tǒng)名+t_+模塊名+_+表義名” 格式構(gòu)成

      ?

      若數(shù)據(jù)庫(kù)中只含有單個(gè)模塊,命名可采用“系統(tǒng)名+t_+表義名”格式構(gòu)成

      ?

      模塊名或表義名均以其漢語(yǔ)拼音的首字符命名,表義名中漢語(yǔ)拼音均采用小寫(xiě),且字符間不加分割符;

      ?

      表別名命名規(guī)則:取表義名的前3個(gè)字符加最后一個(gè)字符。如果存在沖突,適當(dāng)增加字符(如取表義名的前4個(gè)字符加最后一個(gè)字符等)?

      臨時(shí)表采用“系統(tǒng)名+t_tmp_+表義名” 格式構(gòu)成 ?

      表的命名如

      dft_gy_cbap:系統(tǒng)名(電費(fèi) df)+t_+模塊名(高壓 gy)+_+表義名(抄表安排 cbap)dft_cbbj: 系統(tǒng)名(電費(fèi) df)+t_+表義名(抄表標(biāo)記 cbbj)

      dft_tmp_hj: 系統(tǒng)名(電費(fèi) df)+tmp+表義名(合計(jì)hj)(此處為臨時(shí)表)?

      關(guān)聯(lián)表命名為Re_表A_表B,Re是Relative的縮寫(xiě),表A和表B均采用其表義名或縮寫(xiě)形式。

      3.2.4 屬性(列或字段)屬性命名遵循以下原則:

      ?

      采用有意義的列名,為實(shí)際含義的漢語(yǔ)拼音的首字符,且字符間不加任何分割符

      ?

      屬性名前不要加表名等作為前綴 ?

      屬性后不加任何類(lèi)型標(biāo)識(shí)作為后綴 ?

      不要使用“ID”作為列名 ?

      關(guān)聯(lián)字段命名以 “cd+_+關(guān)聯(lián)表的表義名(或縮寫(xiě))+_+字段名”進(jìn)行 3.2.5 主鍵

      ?

      任何表都必須定義主鍵 ?

      表主鍵命名為:“pk+_+表名(或縮寫(xiě))+_+主鍵標(biāo)識(shí)” 如“pk_YHXX_IDKH”等 3.2.6 外鍵

      表外鍵命名為: “fk+_+表名(或縮寫(xiě))+_主表名(或縮寫(xiě))+_+主鍵標(biāo)識(shí)” 如“fk_YHLX_YHXX_SFZH”等 3.2.7 CHECK約束

      CHECK約束命名為: “chk+_+CHECK約束的列名(或縮寫(xiě))” 3.2.8 UNIQUE約束

      UNIQUE約束命名為: “unq+_+UNIQUE約束的列名(或縮寫(xiě))” 3.2.9 索引

      索引的命名為:“表名(或縮寫(xiě))+_+列名+_idx”。

      其中多單詞組成的屬性列列名取前幾個(gè)單詞首字符再加末單詞首字符組成 如yd_kh表khid上的index: yd_kh_khid_idx 3.2.10 觸發(fā)器

      ?

      AFTER型觸發(fā)器

      系統(tǒng)名+tr_+<表名>_+ +[_row] ?

      BEFORE型觸發(fā)器

      系統(tǒng)名+tr_+<表名>_+bef_+[_row] ?

      INSTEAD OF型觸發(fā)器

      系統(tǒng)名+ti_+<表名>+_++[_row] ?

      各種類(lèi)型的觸發(fā)器中 i,u,d分別表示insert、update和delete 行級(jí)觸發(fā)器,后加_row標(biāo)識(shí),語(yǔ)句級(jí)觸發(fā)器不加,如 yddftr_CSH_i_row 3.2.11 簇

      簇以簇中要存儲(chǔ)的各個(gè)表(或表別名)及表間加and的組成命名,即表“A+And+表B?”,如存儲(chǔ)GR(工人)和GRJN(工人技能)表的簇命名為GRAndGRJN 3.3 視圖

      視圖命名以系統(tǒng)名v_+模塊名作為前綴,其他命名規(guī)則和表的命名類(lèi)似 3.4 序列

      序列命名以seq_+含義名組成 3.5 同義詞

      同義詞命名與其基礎(chǔ)對(duì)象的名稱(chēng)一致,但要去除其用戶(hù)前綴或含有遠(yuǎn)程數(shù)據(jù)庫(kù)鏈接的后綴 3.6 存儲(chǔ)對(duì)象相關(guān) 3.6.1 存儲(chǔ)過(guò)程

      存儲(chǔ)過(guò)程命名由“系統(tǒng)名+sp+_+存儲(chǔ)過(guò)程標(biāo)識(shí)(縮寫(xiě))”組成

      存儲(chǔ)過(guò)程標(biāo)識(shí)要以實(shí)際含義的漢語(yǔ)拼音的首字符構(gòu)成,并用下劃線分割各個(gè)組成部分。如增加代理商的帳戶(hù)的存儲(chǔ)過(guò)程為“sfsp_ZJDLSZH”。3.6.2 函數(shù)

      函數(shù)命名由“系統(tǒng)名+f+_+函數(shù)標(biāo)識(shí)”組成 3.6.3 包

      包命名由“系統(tǒng)名+pkg+_+包標(biāo)識(shí)”組成 3.6.4 函數(shù)文本中的變量采用下列格式命名:

      ?

      參數(shù)變量命名采用“i(o或io)+_+名稱(chēng)”形式,前綴i或o表輸入還是輸出參數(shù) ?

      過(guò)程變量命名采用“l(fā)+_+名稱(chēng)”形式 ?

      全局包變量命名采用“g+_+名稱(chēng)”形式 ?

      游標(biāo)變量命名采用“名稱(chēng)+_+cur”形式 ?

      常量型變量命名采用“c+_+名稱(chēng)”形式

      ?

      變量名采用小寫(xiě),若屬于詞組形式,用下劃線分隔每個(gè)單詞

      ?

      變量用來(lái)存放表中的列或行數(shù)據(jù)值時(shí),使用%TYPE、%ROWTYPE方式聲明變量,使變量聲明的類(lèi)型與表中的保持同步,隨表的變化而變化 3.7 用戶(hù)及角色

      ?

      用戶(hù)命名由“系統(tǒng)名稱(chēng)+_+user+_+名詞(或縮寫(xiě))或名詞短語(yǔ)(或縮寫(xiě))”組成 ?

      角色命名由“系統(tǒng)名稱(chēng)+_+role+_+名詞(或縮寫(xiě))或名詞短語(yǔ)(或縮寫(xiě))”組成 3.8 數(shù)據(jù)庫(kù)鏈接

      ?

      數(shù)據(jù)庫(kù)鏈接命名由“遠(yuǎn)程服務(wù)器名+_+數(shù)據(jù)庫(kù)名+_+link”組成 ?

      若遠(yuǎn)程服務(wù)器名和數(shù)據(jù)庫(kù)名一致,上式“_+數(shù)據(jù)庫(kù)名”部分省去 3.9 命名中的其它注意事項(xiàng)

      ?

      命名都不得超過(guò)30個(gè)字符。?

      不要在對(duì)象名的字符之間留空格

      ?

      小心保留詞,要保證你的命名沒(méi)有和保留詞、數(shù)據(jù)庫(kù)系統(tǒng)或者常用訪問(wèn)方法沖突

      4、編碼規(guī)范 4.1 一般性注釋

      4.1.1 注釋盡可能簡(jiǎn)潔、詳細(xì)而全面

      4.1.2 創(chuàng)建每一數(shù)據(jù)庫(kù)對(duì)象時(shí)都要加上COMMENT ON注釋?zhuān)哉f(shuō)明該對(duì)象的功能和用途;建表時(shí),對(duì)某些數(shù)據(jù)列也要加上COMMENT ON注釋?zhuān)哉f(shuō)明該列和/或列取值的含義。如:XX表中有CZZT列屬性為NUMBER(10, 0)可加COMMENT ON注釋如下

      COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超時(shí), 3 = 登出' 4.1.3 注釋語(yǔ)法包含兩種情況:?jiǎn)涡凶⑨?、多行注?單行注釋?zhuān)鹤⑨屒坝袃蓚€(gè)連字符(--),一般對(duì)變量、條件子句可以采用該類(lèi)注釋。多行注釋?zhuān)悍?hào)之間的內(nèi)容為注釋內(nèi)容。對(duì)某項(xiàng)完整的操作建議使用該類(lèi)注釋。4.2 函數(shù)文本注釋

      4.2.1 在每一個(gè)塊和過(guò)程(存儲(chǔ)過(guò)程、函數(shù)、包、觸發(fā)器、視圖等)的開(kāi)頭放置注釋 CREATE [OR REPLACE] PROCEDURE dfsp_xxx ?

      4.2.2 傳入?yún)?shù)的含義應(yīng)該有所說(shuō)明。如果取值范圍確定,也應(yīng)該一并說(shuō)明。取值有特定含義的變量(如boolean類(lèi)型變量),應(yīng)給出每個(gè)值的含義。

      4.2.3 在每一個(gè)變量聲明的旁邊添加注釋。說(shuō)明該變量要用作什么 通常,簡(jiǎn)單使用單行注釋就行了,例如

      l_sfzh CHAR(11)

      --身份證號(hào)碼 4.2.4 在塊的每個(gè)主要部分之前添加注釋 在塊的每個(gè)主要部分之前增加注釋?zhuān)忉屜隆M語(yǔ)句目的,最好是說(shuō)明該段語(yǔ)句及算法的目的以及要得到的結(jié)果,但不要對(duì)其細(xì)節(jié)進(jìn)行過(guò)多的描述

      4.2.5 在塊和過(guò)程的開(kāi)頭注釋中還可以增加要訪問(wèn)的數(shù)據(jù)庫(kù)等信息 4.3 常用SQL語(yǔ)句的編寫(xiě)規(guī)范 4.3.1 CREATE語(yǔ)句

      CREATE TABLE dft_dksz(YHBS

      VARCHAR2(20)

      NOT NULL,ZHGX

      DATE,DKKHD

      VARCHAR2(24),CONSTRAINT pk_dksz_yhbs PRIMARY KEY(YHBS))

      4.3.2 SELECT語(yǔ)句

      查詢(xún)語(yǔ)句采用以下原則編寫(xiě)(可最大化重用共享池中的SQL語(yǔ)句,提高應(yīng)用程序性能): ?

      將SELECT語(yǔ)句分為5部分:(1)由SELECT開(kāi)頭,后跟一個(gè)顯示查詢(xún)結(jié)果的列表;

      (2)由FROM開(kāi)頭,后跟一個(gè)或多個(gè)獲取數(shù)據(jù)所涉及的表;(3)由WHERE開(kāi)頭,后跟一個(gè)或多個(gè)確定所需值的條件;

      (4)由GROUP BY開(kāi)頭,后跟一個(gè)或多個(gè)表列名,通過(guò)這些列以對(duì)查詢(xún)結(jié)果進(jìn)行匯總;(5)由ORDER BY開(kāi)頭,后跟一個(gè)或多個(gè)表列名,通過(guò)這些列以對(duì)查詢(xún)結(jié)果進(jìn)行排序。?

      每個(gè)部分分行編寫(xiě),將每一行的第一個(gè)關(guān)鍵字與第一行的SELECT尾部對(duì)齊,如 SELECT col1, col2, col3

      FROM table1 WHERE col1 > col2 GROUP BY col1, col2 ORDER BY col1;?

      關(guān)鍵字用大寫(xiě),列名和表名采用小寫(xiě)

      ?

      語(yǔ)句中嵌入逗號(hào)時(shí),在逗號(hào)后面加一空格,當(dāng)逗號(hào)是最后一個(gè)字符時(shí),把它放在本行

      ?

      當(dāng)語(yǔ)句的同一部分要延續(xù)到下一行時(shí),按下列格式排列: SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10 ?

      將語(yǔ)句中WHERE和AND部分格式化,書(shū)寫(xiě)布局類(lèi)似于 WHERE

      AND

      AND ?

      當(dāng)語(yǔ)句中出現(xiàn)括號(hào)時(shí),括號(hào)的兩邊不留空格

      ?

      在SQL語(yǔ)句使用運(yùn)算符時(shí),操作兩邊應(yīng)各留一個(gè)空格,如 WHERE X = Y

      AND A = B

      AND C = D 4.3.3 INSERT語(yǔ)句

      INSERT INTO <要插入的表名>

      (<列1>, <列2>,.., <列n-1>, <列n>)

      VALUES

      (<列1值>, <列2值>,.., <列n-1值>, <列n值>)4.3.4 UPDATE語(yǔ)句

      UPDATE <要更新的表名>

      SET <要更新的列> = <列值> 4.3.5 DELETE語(yǔ)句 DELETE FROM table1 WHERE col1 = '???' 4.4 條件執(zhí)行語(yǔ)句(IF)編寫(xiě)規(guī)范

      條件執(zhí)行語(yǔ)句IF?ELSE按以下格式編寫(xiě) IF <條件表達(dá)式> THEN

      <一條或多條語(yǔ)句> [ELSE(或ELSIF<條件表達(dá)式>)THEN

      <一條或多條語(yǔ)句> END IF;注:(1)

      在IF?THEN和ELSE(或ELSIF)及ELSE?THEN和END IF間可包含一條或多條PL/SQL語(yǔ)句,而不需要加BEGIN和END(2)

      IF?ELSE?ENDIF語(yǔ)句可以嵌套(3)

      注意ELSIF的寫(xiě)法 4.5 循環(huán)語(yǔ)句編寫(xiě)規(guī)范 4.5.1 簡(jiǎn)單循環(huán)語(yǔ)句 LOOP

      <零條或多條語(yǔ)句> EXIT WHEN <條件表達(dá)式>

      <零條或多條語(yǔ)句> END LOOP;4.5.2 FOR循環(huán)語(yǔ)句

      FOR 變量 IN [變量取值范圍] LOOP

      <一條或多條語(yǔ)句> END LOOP;4.5.3 WHILE循環(huán)語(yǔ)句 WHILE <條件表達(dá)式> LOOP

      <一條或多條語(yǔ)句> END LOOP;4.6 函數(shù)文本(存儲(chǔ)過(guò)程、函數(shù)和包等)

      ?

      對(duì)于存儲(chǔ)過(guò)程、函數(shù)等程序塊都要有異常處理部分,在異常部分的最后都要設(shè)置OTHERS異常情態(tài)處理器,以提高程序的自檢能力,格式如下: BEGIN

      ? EXCEPTION WHEN excep—name1 THEN

      ?

      WHEN excep—name2 THEN

      ? WHEN OTHERS THEN

      ?

      END;?

      對(duì)于子程序、觸發(fā)器、包等帶名的程序塊,要使用結(jié)束標(biāo)識(shí),如 CREATE OR REPLACE PROCEDURE XXXsp_XXX IS

      ? BEGIN

      ?

      END XXXsp_XXX;

      第五篇:C#編碼規(guī)范及命名規(guī)范

      山東鋒士自動(dòng)化系統(tǒng)有限公司

      C# 編碼規(guī)范

      指導(dǎo)規(guī)則和最佳實(shí)踐 Version 1.0

      董毅 2010/4/26

      第一條 編碼的風(fēng)格和細(xì)節(jié)要求

      編碼風(fēng)格

      至少在單一文件中縮進(jìn)和風(fēng)格要保持一致,同一行中內(nèi)容不要太長(zhǎng),最好不要大于10個(gè)單詞。不要隨意地或者以容易混淆作用域嵌套關(guān)系的方式放置括號(hào),要盡量遵循每個(gè)文件中已經(jīng)使用的體例。

      命名約定和規(guī)范

      1.不要使用晦澀的名稱(chēng),起名要簡(jiǎn)單易懂

      a.避免使用單字母做變量名,比如:i 或者 t。應(yīng)使用index或者temp進(jìn)行替代 b.不要縮寫(xiě)單詞,比如用num代替number 2.使用全大寫(xiě)字母表示宏,常量,如:LIKE_THIS 3.類(lèi),函數(shù)和枚舉的名稱(chēng)的單詞首字母大寫(xiě),如:LikeThis public class SomeClass {

      const int DefaultSize = 100;public void SomeMethod(){ } } 4.變量的首字母小寫(xiě),其他單詞首字母大寫(xiě),如:likeThis void MyMethod(int someNumber){ int number;} 5.接口的第一個(gè)字母用I開(kāi)頭

      interface IMyInterface {...} 6.私有成員變量以m_開(kāi)頭,剩余內(nèi)容遵從首字母大寫(xiě)的規(guī)范

      public class SomeClass { private int m_Number;} 7.屬性類(lèi)以Attribute做后綴,異常類(lèi)以Exception做后綴

      8.命名方法以【動(dòng)詞】-【目標(biāo)】組成,比如:ShowDialog()

      9.擁有返回值的方法應(yīng)該以返回值描述其方法名,比如:GetObjectState()10.總是使用C#的預(yù)定義類(lèi)型,而不是System命名空間中的別名,比如:

      object 而不是

      Object string 而不是

      String int

      而不是

      Int32 11.對(duì)于基類(lèi),類(lèi)型描述采用大寫(xiě)字母。當(dāng)處理.NET中的類(lèi)型時(shí)才保留后綴Type //正確

      public class LinkedList { } //避免

      public class LikedList { }

      12.使用有意義的名字空間,比如項(xiàng)目名稱(chēng)或者公司名稱(chēng) 13.避免使用類(lèi)的全稱(chēng),而是使用using語(yǔ)句進(jìn)行引用 14.避免在命名空間內(nèi)使用using語(yǔ)句

      15.將所有framework命名空間嗎放在一起,后面放自定義或第三方的命名空間名

      using System;using System.Collections;using System.ComponentModel;using System.Data;using MyCompany;using MyControls;

      16.采用委托推斷,不要顯式實(shí)例化委托

      delegate void SomeDelegate();public void SomeMethod(){ } SomeDelegate someDelegate = SomeMethod;

      17.縮進(jìn)至少在同一文件中要保持統(tǒng)一風(fēng)格,注釋縮進(jìn)和其注釋的代碼在同一層次 18.所有注釋要經(jīng)過(guò)認(rèn)真檢查,不要有不明語(yǔ)義或者錯(cuò)別字 19.所有成員變量應(yīng)該定義在前面,和屬性或方法間空開(kāi)一行

      public class MyClass { int m_Number;string m_Name;

      public void SomeMethod1(){ } public void SomeMethod2(){ } }

      20.局部變量的定義盡可能靠近它的初次使用 21.文件名應(yīng)該體現(xiàn)其包含的類(lèi)

      22.當(dāng)使用partial類(lèi)型且每部分分配一個(gè)文件時(shí),以類(lèi)名+邏輯部分的方式來(lái)命名文件

      //MyClass.cs public partial class MyClass { } //MyClass.Designer.cs public partial class MyClass { } 23.做大括號(hào)總是放在新行中

      24.匿名方法模仿普通方法布局,但是大括號(hào)要和委托聲明對(duì)其

      delegate void SomeDelegate(string someString);//正確

      void InvokeMethod(){ SomeDelegate someDelegate = delegate(string name){ MessageBox.Show(name);};someDelegate(“Juval”);} //錯(cuò)誤

      void InvokeMethod(){ SomeDelegate someDelegate = delegate(string name){ MessageBox.Show(name);};someDelegate(“Juval”);}

      25.沒(méi)有參數(shù)的匿名方法使用空括號(hào),僅當(dāng)匿名方法被用于任何委托時(shí)才可以省略括號(hào)

      delegate void SomeDelegate();//正確

      SomeDelegate someDelegate1 = delegate(){ MessageBox.Show(“Hello”);};//錯(cuò)誤

      SomeDelegate someDelegate1 = delegate { MessageBox.Show(“Hello”);};

      26.在使用Lambda表達(dá)式時(shí),模仿一般的方法規(guī)范。

      delegate void SomeDelegate(string someString);

      SomeDelegate someDelegate =(name)=> { Trace.WriteLine(name);MessageBox.Show(name);};

      27.當(dāng)內(nèi)聯(lián)Lambda表達(dá)式僅包含一個(gè)簡(jiǎn)單的語(yǔ)句時(shí),應(yīng)避免多語(yǔ)句或者返回語(yǔ)句出現(xiàn)在大括號(hào)中??梢院?jiǎn)單使用小括號(hào)表達(dá):

      delegate void SomeDelegate(string someString);

      void MyMethod(SomeDelegate someDelegate){ }

      //正確

      MyMethod(name=>MessageBox.Show(name));

      //錯(cuò)誤

      MyMethod((name)=>{Trace.WriteLine(name);MessageBox.Show(name);});注釋

      編寫(xiě)有用的注釋?zhuān)灰谧⑨屩兄貜?fù)寫(xiě)代碼語(yǔ)義。應(yīng)該編寫(xiě)的是解釋方法和原理的說(shuō)明性注釋。

      函數(shù)

      不要在一個(gè)函數(shù)中包含太多內(nèi)容,函數(shù)的功能要簡(jiǎn)單,短小,使人更容易理解,也有利于防錯(cuò)。

      第二條 盡量在代碼中不包含被警告的內(nèi)容

      高度重視警告:使用編譯器的最高警告級(jí)別。構(gòu)建盡量做到干凈利落(沒(méi)有警告)。理解所有的警告。通過(guò)修改代碼而不是降低警告級(jí)別來(lái)排除警告。

      即使程序一開(kāi)始似乎能夠正確運(yùn)行,也還是要這樣做。即使你能夠肯定警告是良心的,仍然要這樣做。因?yàn)榱夹跃娴谋澈罂赡茈[藏著未來(lái)指向真正危險(xiǎn)的警告。

      項(xiàng)目設(shè)置和項(xiàng)目結(jié)構(gòu)

      1. 總是以4級(jí)警告建立項(xiàng)目

      2. 在發(fā)布版中將警告當(dāng)作錯(cuò)誤(注意這不是VS.NET的缺省設(shè)置)

      3. 永遠(yuǎn)不要抑制特定的編譯警告

      4. 總是在應(yīng)用程序的配置文件中顯式地說(shuō)明支持的運(yùn)行時(shí)版本

      5. 避免顯式的自定義版本改向和綁定到CLR程序集

      6. 不要在AssemblyInfo.cs中放任何邏輯。除了在AssemblyInfo.cs中,不要在任何文件中放程序集屬性(應(yīng)包括公司名稱(chēng)、描述、版權(quán)等)7. 所有程序集應(yīng)該使用相對(duì)路徑引用 8. 不允許在程序集中循環(huán)引用

      9. 努力對(duì)同一邏輯應(yīng)用程序中(通常是一個(gè)解決方案)的所有程序集和客戶(hù)端使用統(tǒng)一的版本號(hào)

      10.將Visual Studio.NET應(yīng)用配置文件命名為App.config,并將其包括在項(xiàng)目中 11. 將Visual Studio.NET缺省的項(xiàng)目結(jié)構(gòu)改為標(biāo)準(zhǔn)的布局,對(duì)項(xiàng)目文件夾和文件應(yīng)用統(tǒng)一的結(jié)構(gòu) 12. 一個(gè)發(fā)布版本應(yīng)該包含Debug標(biāo)記

      第三方頭文件

      無(wú)法修改的庫(kù)頭文件可能包含引起警告的構(gòu)造。如果這樣,可以用自己的包含原頭文件的版本將此文件包裝起來(lái),并有選擇的為該作用域關(guān)閉警告,然后在整個(gè)項(xiàng)目的其他地方包含此包裝文件。

      代碼中盡量不包含未使用的函數(shù),變量

      經(jīng)確認(rèn)確實(shí)不需要使用的函數(shù),變量(不包括為未來(lái)使用而設(shè)的占位符),可以進(jìn)行刪除處理。

      不要遺漏return語(yǔ)句

      PS:例外情況

      有時(shí)候編譯器可能會(huì)發(fā)出一些確實(shí)無(wú)意義的警告。這些警告要經(jīng)過(guò)團(tuán)隊(duì)確認(rèn)后盡量在局部進(jìn)行屏蔽,但要做出明確的注釋?zhuān)f(shuō)明為什么必須禁用。

      第三條 使用自動(dòng)構(gòu)建系統(tǒng) 第四條 使用版本控制系統(tǒng)

      應(yīng)確保每次提交的代碼都可以構(gòu)建成功。

      第五條 定期進(jìn)行代碼審查

      互相閱讀彼此的代碼不但可以盡快提高自己的編碼水平,也可以相互借鑒更好的方法。

      第六條 一個(gè)實(shí)體應(yīng)該只有一個(gè)緊湊的職責(zé)

      一次只解決一個(gè)問(wèn)題:只給一個(gè)實(shí)體(變量、類(lèi)、函數(shù)、名稱(chēng)空間、模塊和庫(kù))賦予一個(gè)定義良好的職責(zé)。應(yīng)該只選擇目的單一的函數(shù),小而且目的單一的類(lèi),和邊界清晰的緊湊模塊。

      應(yīng)該用較小的低層抽象構(gòu)建更高層次的抽象,要避免將幾個(gè)低層抽象集合成一個(gè)較大的低層次抽象聚合體。用幾個(gè)簡(jiǎn)單的行為來(lái)實(shí)現(xiàn)一個(gè)復(fù)雜的行為,比反其道而行之更加容易。

      第七條 正確,簡(jiǎn)單和清晰第一

      軟件簡(jiǎn)單為美:正確優(yōu)于速度,簡(jiǎn)單優(yōu)于復(fù)雜,清晰優(yōu)于機(jī)巧,安全優(yōu)于不安全。

      要避免使用程序設(shè)計(jì)語(yǔ)言中的冷僻特性。應(yīng)該使用最簡(jiǎn)單的有效技術(shù)。不要使用不必要的操作符重載

      構(gòu)造函數(shù)的參數(shù),應(yīng)該使用命名變量,而不要使用臨時(shí)變量

      這能夠避免可能的聲明二義性,還經(jīng)常能使代碼的意圖更加清晰,從而更容易維護(hù),而且也更安全。

      第八條 編程中應(yīng)該知道何時(shí)和如何考慮可伸縮性

      當(dāng)數(shù)據(jù)爆炸性增長(zhǎng)時(shí):不要進(jìn)行不成熟的優(yōu)化,如果能夠證明優(yōu)化必要而且非常重要,則應(yīng)該集中精力改善算法的復(fù)雜性,而不是進(jìn)行小型的優(yōu)化,比如節(jié)省一個(gè)多余的加法運(yùn)算。

      為了避免未來(lái)可能遭遇到的數(shù)據(jù)處理容量上的瓶頸問(wèn)題,應(yīng)該預(yù)先做這些事情:

      使用靈活的、動(dòng)態(tài)分配的數(shù)據(jù),不要使用固定大小的數(shù)組

      那種“比現(xiàn)在所需要的最大數(shù)組還要大”的數(shù)組,在正確性和安全性方面都存在嚴(yán)重問(wèn)題。只有在編譯時(shí)大小固定不變的數(shù)組才是可接受的。

      了解算法的實(shí)際復(fù)雜性

      要留心那些不易發(fā)覺(jué)的陷阱,比如看似線性的算法實(shí)際上要調(diào)用其他線性操作,結(jié)果算法實(shí)際上是二次的。

      優(yōu)先使用線性算法或者盡可能快的算法 盡可能避免劣于線性復(fù)雜性的算法

      如果面對(duì)的是一個(gè)O(NlogN)或者O(N2)算法,就必須花費(fèi)精力尋找替代方案,只有代碼才不至于在數(shù)據(jù)量顯著增長(zhǎng)的情況下陷入深度激增的性能深潭。例如:建議使用范圍成員函數(shù)(通常是線性的)而不是反復(fù)調(diào)用單元素替代函數(shù),后者會(huì)很容易在一個(gè)線性的操作要調(diào)用另一個(gè)線性操作時(shí)變成二次復(fù)雜性。永遠(yuǎn)不要使用指數(shù)復(fù)雜性的算法,除非真的別無(wú)選擇

      在決定接受指數(shù)算法之前,必須盡力尋找替代方案,因?yàn)閷?duì)于指數(shù)算法來(lái)說(shuō),即使是數(shù)據(jù)量的有限增加,也會(huì)使算法的性能急劇下降。

      總而言之,要盡可能優(yōu)先使用線性(或者更好的)算法,盡可能合理的避免使用比線性算法差的多項(xiàng)式算法。竭盡全力避免使用指數(shù)算法。

      第九條 不要進(jìn)行不成熟的優(yōu)化

      我們將不成熟的優(yōu)化定義為這樣的行為:以性能為名,使設(shè)計(jì)或代碼更加復(fù)雜,從而導(dǎo)致可讀性更差,卻沒(méi)有經(jīng)過(guò)驗(yàn)證的性能需求(比如實(shí)際的度量數(shù)據(jù)與目標(biāo)的比較結(jié)果)作為正當(dāng)理由,因此本質(zhì)上對(duì)程序沒(méi)有真正的好處。

      因此,默認(rèn)時(shí),不要把注意力集中在如何使代碼更快上;首先關(guān)注的應(yīng)該是使代碼盡可能的清晰和易讀。

      第十條 不要進(jìn)行不必要的劣化

      所謂不成熟的劣化一詞,指的就是編寫(xiě)如下這些沒(méi)有必要的、可能比較低效的程序:

      在可以用通過(guò)引用傳遞的時(shí)候,卻定義了通過(guò)值傳遞的參數(shù) 在使用前綴++操作符很合適的場(chǎng)合,卻使用后綴版本 在構(gòu)造函數(shù)中使用賦值操作而不是初始化列表

      第十一條 盡量減少全局和共享數(shù)據(jù)

      共享會(huì)導(dǎo)致沖突:避免共享數(shù)據(jù),尤其是全局?jǐn)?shù)據(jù)。共享數(shù)據(jù)會(huì)增加耦合度,從而降低可維護(hù)性,通常還會(huì)降低性能。

      名字空間作用域中的對(duì)象、靜態(tài)成員對(duì)象或者跨線程或跨進(jìn)程共享的對(duì)象會(huì)減少多線程和多處理器環(huán)境中的并行性,往往是產(chǎn)生性能和可伸縮性瓶頸的源頭。建議用通信方式(比如消息隊(duì)列)代替數(shù)據(jù)共享。盡量降低類(lèi)之間的耦合,盡量減少交互

      第十二條 隱藏信息

      不要泄密:不要公開(kāi)提供抽象的實(shí)體的內(nèi)部信息。而應(yīng)該公開(kāi)抽象(至少是get/set抽象),而不是數(shù)據(jù)。

      數(shù)據(jù)只是抽象、概念性狀態(tài)的一種可能的具體化而已。如果將注意力集中在概念而不是其表示形式上,就能夠提供富于提示性的接口,并按需要對(duì)實(shí)現(xiàn)進(jìn)行調(diào)整。比如緩存還是實(shí)時(shí)地計(jì)算,又比如使用不同的表示方式,針對(duì)某種使用模式進(jìn)行優(yōu)化。

      絕對(duì)不要將類(lèi)的數(shù)據(jù)成員設(shè)為public,僅對(duì)最需要的類(lèi)型標(biāo)記為public,其他的標(biāo)記為internal。它同樣適用于更大的實(shí)體比如程序庫(kù)。模塊和程序庫(kù)同樣應(yīng)該提供定義抽象和其中信息流的接口,從而使與調(diào)用代碼的通信比采用數(shù)據(jù)共享方式更安全,耦合度更低。

      第十三條 盡量在編譯和連接時(shí)檢查錯(cuò)誤,而不要等到運(yùn)行時(shí)

      運(yùn)行時(shí)檢查取決于控制流和數(shù)據(jù)的具體情況,這意味著很難知道檢查是否徹底。相比而言,編譯時(shí)檢查與控制流和數(shù)據(jù)無(wú)關(guān),一般情況下能夠獲得更高的可信度。

      第十四條 盡量合理的使用const常量

      不變的值更易于理解、跟蹤和分析,所以應(yīng)該盡可能地使用常量代替變量,定義值的時(shí)候,應(yīng)該把常量作為默認(rèn)的選項(xiàng):常量很安全,在編譯時(shí)會(huì)對(duì)其進(jìn)行檢查。盡量不要強(qiáng)制轉(zhuǎn)換常量的類(lèi)型。

      例如:

      const int x = 0;public const double productWeight = 11.7;private const string productName = “Visual C#”;

      第十五條 避免使用語(yǔ)義不清的參數(shù)

      要避免在代碼中使用諸如42和3.14159這樣的文字常量。它們本身沒(méi)有提供任何說(shuō)明,并且因?yàn)樵黾恿藱z測(cè)的重復(fù)而使維護(hù)更加復(fù)雜??梢杂梅?hào)名稱(chēng)和表達(dá)式替換它們,比如width*aspectRatio

      名稱(chēng)能夠增加信息,并提供單一的維護(hù)點(diǎn),而程序中到處重復(fù)的原始數(shù)據(jù)是無(wú)名的,維護(hù)起來(lái)很麻煩。常量應(yīng)該是枚舉或者const值,有合適的作用域和名稱(chēng)。

      重要的特定于領(lǐng)域的常量應(yīng)該放在名字空間一級(jí)

      第十六條 盡可能局部的使用變量 第十七條 避免函數(shù)過(guò)長(zhǎng),避免嵌套過(guò)深

      過(guò)長(zhǎng)的函數(shù)和嵌套過(guò)深的代碼塊的出現(xiàn),經(jīng)常是因?yàn)闆](méi)能賦予一個(gè)函數(shù)以一個(gè)緊湊的職責(zé)所致,這兩種情況通常都能夠通過(guò)更好的重構(gòu)予以解決。每個(gè)函數(shù)都應(yīng)該是顧其名而能思其義,易于理解的工作單元,要避免將多個(gè)小概念單元合并到一個(gè)長(zhǎng)的函數(shù)體中的做法。

      一些建議:

      盡量緊湊:對(duì)一個(gè)函數(shù)只賦予一種職責(zé)

      不要自我重復(fù):優(yōu)先使用命名函數(shù),而不要讓相似的代碼片斷反復(fù)出現(xiàn) 優(yōu)先使用&&:在可以使用&&條件判斷的地方要避免使用連續(xù)嵌套的if 不要過(guò)分使用try 優(yōu)先使用標(biāo)準(zhǔn)算法

      不要根據(jù)類(lèi)型標(biāo)簽(type tag)進(jìn)行分支(switch)第十八條 盡量減少定義性依賴(lài),避免循環(huán)依賴(lài)

      循環(huán)依賴(lài)是指兩個(gè)模塊直接或者間接地相互依賴(lài)。所謂模塊就是一個(gè)緊湊的發(fā)布單元,而互相依賴(lài)的多個(gè)模塊并不是真正的獨(dú)立模塊,而是緊緊膠著在一起的一個(gè)更大的模塊,因此,循環(huán)依賴(lài)有礙于模塊性,是大型項(xiàng)目的禍根。請(qǐng)避免循環(huán)依賴(lài)。

      第十九條 不要引用多余的資源文件 第二十條 盡量不要重載默認(rèn)的操作符,至少應(yīng)保證操作符的自然語(yǔ)義不被破壞 第二十一條 優(yōu)先使用++和—的標(biāo)準(zhǔn)形式。優(yōu)先調(diào)用前綴形式。第二十二條 用小類(lèi)代替巨類(lèi)

      小類(lèi)更易于編寫(xiě),更易于保證正確、測(cè)試和使用。小類(lèi)更有可能適用于各種不同情況。應(yīng)該用這種小類(lèi)體現(xiàn)簡(jiǎn)單概念,不要用大雜燴式的類(lèi)。

      第二十三條 要避免使用隱式轉(zhuǎn)換

      在做類(lèi)型提供隱式轉(zhuǎn)換之前,請(qǐng)三思而行,應(yīng)該依賴(lài)的是顯式轉(zhuǎn)換。

      隱式轉(zhuǎn)換有兩個(gè)主要的問(wèn)題:

      1.它們會(huì)在最意料不到的地方拋出異常

      2.它們并不總是能與語(yǔ)言的其他元素有效地配合 第二十四條 將數(shù)據(jù)成員設(shè)為私有的,無(wú)行為的聚集

      要避免將公用數(shù)據(jù)和非公用數(shù)據(jù)混合在一起,因?yàn)檫@幾乎總是設(shè)計(jì)混亂的標(biāo)志。信息隱藏是優(yōu)秀軟件工程的關(guān)鍵,應(yīng)該將所有數(shù)據(jù)成員都設(shè)為私有的,這是類(lèi)用來(lái)保持其不變式的最佳方式。

      第二十五條 不要允許異??缭侥K邊界傳播

      最低限度,應(yīng)用程序必須在以下位置有捕獲所有異常的catch(…)兜底語(yǔ)句,其中大多數(shù)都直接適用于模塊:

      1.在main函數(shù)的附近:捕獲并用日志記錄任何將使程序不正常終止而其他地方又沒(méi)有捕獲的異常。

      2.在從無(wú)法控制的代碼中執(zhí)行回調(diào)附近3.在現(xiàn)場(chǎng)邊界的附近4.在模塊接口邊界的附近

      5.在IO,數(shù)據(jù)庫(kù)連接等高危操作附近

      第二十六條 如有可能,盡量用算法調(diào)用代替手工編寫(xiě)的循環(huán)

      對(duì)非常簡(jiǎn)單的循環(huán)而言,手工編寫(xiě)的循環(huán)有可能是最簡(jiǎn)單也是最有效的解決方案。但是編寫(xiě)算法調(diào)用代替手工編寫(xiě)的循環(huán),可以使表達(dá)力更強(qiáng)、維護(hù)性更好、更不易出錯(cuò),而且同樣高效。

      第二十七條 編碼慣例

      1. 避免在一個(gè)文件中放多個(gè)類(lèi)

      2. 一個(gè)文件應(yīng)該只對(duì)一個(gè)命名空間提供類(lèi)型,避免在同一文件中有多個(gè)命名空間 3. 避免一個(gè)文件的長(zhǎng)度超過(guò)500行(除了機(jī)器生成的代碼)4. 避免方法定義超過(guò)25行

      5. 避免超過(guò)5個(gè)參數(shù)的方法,使用結(jié)構(gòu)傳遞多個(gè)參數(shù) 6. 每行應(yīng)該不超過(guò)80個(gè)字符,或者10個(gè)單詞 7. 不要手工編輯任何機(jī)器生成的代碼

      A.如果修改機(jī)器生成的代碼,修改代碼格式和風(fēng)格以符合本編碼標(biāo)準(zhǔn) B.盡可能使用partial類(lèi)以分解出需要維護(hù)的部分 8. 避免對(duì)顯而易見(jiàn)的內(nèi)容作注釋

      A.代碼應(yīng)該是自解釋的,由可讀性強(qiáng)的變量和方法組成的好的代碼應(yīng)該不需要注釋 B.參加第一條中的注釋部分

      9. 僅對(duì)操作的前提、內(nèi)在的算法等寫(xiě)文檔 10. 避免方法級(jí)的文檔

      A.對(duì)API文檔采用大量的外部文檔

      B.方法級(jí)注釋僅作為對(duì)其他開(kāi)發(fā)人員的提示 11. 決不要硬編碼數(shù)值,聲明一個(gè)常量是最好的選擇 12. 僅對(duì)本輪就是常量的值使用const修飾符,例如一周的天數(shù) 13. 避免對(duì)只讀變量使用const修飾符。在此情況下,采用readonly修飾符

      public class MyClass { public const int DaysInWeek = 7;public readonly int Number;public MyClass(int someValue){ Number = someValue;} }

      14.對(duì)任何假設(shè)采用assert。平均來(lái)講,每五行代碼中就有一行是斷言

      using System.Diagnostics;object GetObject(){} object someObject = GetObject();Debug.Assert(someObject!= null);

      15. 16. 17. 每行代碼都應(yīng)該經(jīng)過(guò)白盒測(cè)試 僅捕獲已經(jīng)顯式處理了的異常

      在拋出異常的catch語(yǔ)句中,總是拋出最初異常以保持最初錯(cuò)誤的堆棧位置

      catch(Exception exception){ MessageBox.Show(exception.Message);throw;}

      18. 定義自定義的異常時(shí)

      A.從ApplicationException繼承 B.提供自定義的序列化 19. 避免采用friend程序集,因?yàn)檫@樣增加了程序集間的耦合度 20. 避免使用依賴(lài)于從特定位置運(yùn)行的程序集的代碼。21. 盡量減少應(yīng)用程序集(客戶(hù)端EXE程序集)的代碼,采用類(lèi)庫(kù)而不要包含業(yè)務(wù)邏輯層代碼。22. 避免對(duì)枚舉提供明確的值

      //正確

      public enum Color { Red,Green,Blue } //錯(cuò)誤

      public enum Color { Red=1,Green=2,Blue=3 }

      23. 避免對(duì)枚舉指定類(lèi)型

      //錯(cuò)誤

      public enum Color : long { Red, Green, Blue }

      24. 25. 26. If語(yǔ)句總是使用括號(hào),即使它只包含一句語(yǔ)句 避免使用?:條件運(yùn)算符 避免使用(#if…#endif),應(yīng)使用conditional方法代替

      [Conditianal(“MySpecialCondition”] public void MyMethod(){}

      27. 避免在布爾條件語(yǔ)句中調(diào)用函數(shù),賦值到局部變量并檢查它們的值。

      bool IsEverythingOK(){} //錯(cuò)誤

      if(IsEverythingOK()){} //正確

      bool ok=IsEverythingOK();if(ok){}

      28.29. 總是使用從0開(kāi)始的數(shù)組

      總是使用一個(gè)for循環(huán)顯式地初始化一個(gè)引用類(lèi)型數(shù)組

      public class MyClass {} const int ArraySize=100;MyClass[] array=new MyClass{ArraySize];for(int index=0;index

      30. 31. 不用提供public或protected成員變量,而是使用屬性 應(yīng)盡量使用get/set的自動(dòng)返回屬性

      //錯(cuò)誤

      class MyClass { int m_Number;

      public int Number { get { return m_Number;} set { m_Number=value;} } } //正確

      class MyClass { public int Number { get;set;} }

      32. 33. 34. 35. 避免使用new,應(yīng)使用override替代

      在一個(gè)密封的類(lèi)里總是把public和protected方法標(biāo)記為virtual 永遠(yuǎn)不要使用不安全的代碼 合理使用as操作符進(jìn)行映射

      Dog dog = new GermanShepherd();GermanSheperd shepherd = dog as GermanShepherd;if(shepherd!= null){} 36. 37.

      { 在使用一個(gè)委托前總是要先檢查它是否為空(null)

      不要提供公有成員變量,使用存取器(accessors)進(jìn)行替代

      public class MyPublisher MyDelegate m_SomeEvent;public event MyDelegate SomeEvent { add { m_SomeEvent += value;} remove { m_SomeEvent-= value;} } }

      38. 避免定義事件處理委托,使用EventHandler或者GenericEventHandler進(jìn)行替代 39. 使用EventsHelper安全的發(fā)布事件 40. 總是優(yōu)先使用接口,但要避免一個(gè)接口只包含一個(gè)成員,包含3-5個(gè)成員較為合適。上限為12。41. 避免事件成為接口成員 42. 提供明確定義的接口描述 43. 不要假設(shè)一個(gè)接口是可以安全運(yùn)作的,永遠(yuǎn)都要做好處理意外的準(zhǔn)備

      SomeType obj1;IMyInterface obj2;

      obj2=obj1 as IMyInterface;if(obj2!= null){ obj2.Method1();} else { //處理可能出現(xiàn)的錯(cuò)誤

      }

      44. 不要將可能改變的,或用于數(shù)據(jù)庫(kù)連接的,或者交付給最終客戶(hù)使用的任何字符串進(jìn)行硬編碼,要使用資源文件定義他們 45. 使用String.Empty代替””

      //錯(cuò)誤

      string name = “";//正確

      string name = String.Empty;

      46. 47. 48.

      定義長(zhǎng)字符串的時(shí)候,應(yīng)該使用StringBuilder,而不是string 永遠(yuǎn)不要使用goto語(yǔ)句,除非迫不得已

      在switch代碼塊中總要包含一個(gè)default項(xiàng),并且為其設(shè)置斷言

      int number = SomeMethod();switch(number){ case 1: Trace.WriteLine(”Case 1:“);break;case 2: Trace.WriteLine(”Case 2:“);break;default: Debug.Assert(false);break;}

      49.不要使用this引用,除非某些特殊情況,比如從一個(gè)構(gòu)造器中運(yùn)行另外一個(gè)

      //一個(gè)正確使用this的例子

      public class MyClass { public MyClass(string message){} public MyClass():this(”Hello"){} }

      50. 不要使用base關(guān)鍵詞。除非你想要解決一個(gè)子類(lèi)成員和基類(lèi)間的名稱(chēng)沖突,或者運(yùn)行一個(gè)基類(lèi)構(gòu)造器

      //一個(gè)正確使用base的例子

      public class Dog { public Dog(string name){} virtual public void Bark(int howLong){} } public class GermanShepherd:Dog { public GermanShepherd(string name):base(name){} public override void Bark(int howLong){ base.Bark(howLong);} }

      51. 不要使用GC.AddMemortyPressure(),不要依賴(lài)HandleCollector。合理的使用Dispose()和Finalize()方法 52. 一般情況下不要使用check來(lái)檢查代碼(防止性能損失),但是在可能的溢出區(qū)則使用check來(lái)保持代碼的安全性。安全性的優(yōu)先級(jí)永遠(yuǎn)高于性能。

      int CalcPower(int number,int power){ int result=1;for(int count=1;count<=power;count++){ checked { result*=number;} } return result;}

      53. 在代碼中要避免直接使用object數(shù)據(jù)類(lèi)型(System.Object),可以使用約束或者as進(jìn)行替代。

      class SomeClass {} //錯(cuò)誤

      class MyClass { void SomeMethod(T t){ object temp=t;SomeClass obj=(SomeClass)temp;} } //正確

      class MyClass where T: SomeClass { void SomeMethod(T t){ SomeClass obj =t;} }

      54.{} 一般而言,不要在通用接口中定義約束。接口級(jí)別的約束經(jīng)常會(huì)被強(qiáng)類(lèi)型所覆蓋

      public class Customer //錯(cuò)誤

      public interface IList where T: Customer {} //正確

      public interface ICustomerList:IList {} 第二十八條 安全

      1. 總是對(duì)應(yīng)用程序私有的組件,集合等使用強(qiáng)名,這樣可以保證安全性

      2. 在應(yīng)用程序配置文件中使用加密算法,進(jìn)行安全保護(hù)

      3. 對(duì)不受控制的引用方法,要做適當(dāng)?shù)陌踩幚?,如加入斷言控?/p>

      4. 不要使用SuppressUnmanagedCodeSecurity屬性 5. 不要使用/unsafe來(lái)切換TlbImp.exe的默認(rèn)行為。

      6. 在服務(wù)器端要使用自定義的安全規(guī)則來(lái)擴(kuò)展Microsoft的默認(rèn)配置,以保證更高級(jí)別的安全性

      7. 為防止引誘性攻擊,應(yīng)修改組件級(jí)別的運(yùn)行權(quán)限,限制其可能的不安全行為

      8. 在編寫(xiě)Windows程序時(shí),在每個(gè)Main()中都要使用相應(yīng)的安全規(guī)則

      下載Java命名規(guī)范[樣例5]word格式文檔
      下載Java命名規(guī)范[樣例5].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        前端開(kāi)發(fā)命名規(guī)范范文

        前端開(kāi)發(fā)工作規(guī)范 為提高團(tuán)隊(duì)協(xié)作效率,便于后臺(tái)人員添加功能及前端后期優(yōu)化維護(hù),輸出高質(zhì)量的文檔,特制訂此文檔。本規(guī)范文檔一經(jīng)確認(rèn),前端開(kāi)發(fā)人員必須按本文檔規(guī)范進(jìn)行前臺(tái)頁(yè)......

        POP店鋪命名規(guī)范

        POP店鋪命名規(guī)范 一、POP店鋪命名總則: 1.1店鋪名不得超過(guò)30個(gè)字符; 1.2店鋪名不得與已經(jīng)開(kāi)通的店鋪名稱(chēng)重復(fù),如兩個(gè)店鋪同時(shí)申請(qǐng)同一店鋪名的,則依照申請(qǐng)?jiān)谙仍瓌t審批開(kāi)通店鋪,......

        css命名規(guī)范(英文命名)[合集5篇]

        一.文件命名規(guī)范 [b]樣式文件命名[/b] [quote]主要的 master.css 布局,版面 layout.css 專(zhuān)欄 columns.css 文字 font.css 打印樣式 print.css 主題 themes.css [/quote] [b]C......

        css命名規(guī)范(英文命名)5篇

        一.文件命名規(guī)范 [b]樣式文件命名[/b] [quote]主要的 master.css 布局,版面 layout.css 專(zhuān)欄 columns.css 文字 font.css 打印樣式 print.css 主題 themes.css [/quote] [b]C......

        C語(yǔ)言命名規(guī)范10條

        C語(yǔ)言命名規(guī)范10條從事C語(yǔ)言的教學(xué)也有兩年了,在教學(xué)中發(fā)現(xiàn)學(xué)生們?cè)诰幊谭矫嬗幸粋€(gè)極不好的習(xí)慣,就是隨意命名,這不僅給自己日后閱讀自己程序時(shí)帶來(lái)不便,也給其他的程序閱讀者帶......

        Java安全開(kāi)發(fā)規(guī)范

        Java安全開(kāi)發(fā)規(guī)范 第1章前言 為提高應(yīng)用安全水平,特制定本規(guī)范對(duì)代碼編制進(jìn)行規(guī)范。 規(guī)范中的安全要求按照嚴(yán)格程度分為三級(jí): > Policy 必須遵循的策略,實(shí)現(xiàn)方法可以自定義,但不......

        JAVA代碼注釋規(guī)范

        JAVA代碼注釋規(guī)范 一、 規(guī)范存在的意義 1. 好的注釋規(guī)范可以讓人一眼看明白這是干什么的,特別是對(duì)于我們這種行業(yè);共同合作完成一個(gè)項(xiàng)目需要分工明確,所以也需要有明了的注釋規(guī)......

        java注釋規(guī)范總結(jié)大全

        在軟件開(kāi)發(fā)的過(guò)程中總是強(qiáng)調(diào)注釋的規(guī)范,但是沒(méi)有一個(gè)具體的標(biāo)準(zhǔn)進(jìn)行說(shuō)明,通常都是在代碼編寫(xiě)規(guī)范中簡(jiǎn)單的描述幾句,不能作為一個(gè)代碼注釋檢查的標(biāo)準(zhǔn)和依據(jù),做什么都要有一個(gè)依據(jù)......