UFQP2-09QI002 VB程序編程規(guī)范_第1頁
UFQP2-09QI002 VB程序編程規(guī)范_第2頁
UFQP2-09QI002 VB程序編程規(guī)范_第3頁
UFQP2-09QI002 VB程序編程規(guī)范_第4頁
UFQP2-09QI002 VB程序編程規(guī)范_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

文件編號:UF/QP/2-09/QI/002編寫:翟萬達(dá)、周明川 審核:SEPG日期:01/10/25版號:1.0draft頁號:9/1010PAGEPAGE12024對象命名約定應(yīng)該用一致的前綴來命名對象,使人們?nèi)菀鬃R別對象的類型。下面列出了VisualBasic支持的一些推薦使用的對象約定。推薦使用的控件前綴控件類型前綴例子3DPanelpnlpnlGroupADODataadoadoBiblioAnimatedbuttonanianiMailBoxCheckboxchkchkReadOnlyCombobox,drop-downlistboxcbocboEnglishCommandbuttoncmdcmdExitCommondialogdlgdlgFileOpenCommunicationscomcomFaxControl(當(dāng)特定類型未知時,在過程中所使用的)ctrctrCurrentDatadatdatBiblioData-boundcomboboxdbcbodbcboLanguageData-boundgriddbgrddbgrdQueryResultData-boundlistboxdblstdblstJobTypeDatacombodbcdbcAuthorDatagriddgddgdTitlesDatalistdbldblPublisherDatarepeaterdrpdrpLocationDatepickerdtpdtpPublishedDirectorylistboxdirdirSourceDrivelistboxdrvdrvTargetFilelistboxfilfilSourceFlatscrollbarfsbfsbMoveFormfrmfrmEntryFramefrafraLanguageGaugegaugauStatusGraphgragraRevenueGridgrdgrdPricesHierarchicalflexgridflexflexOrdersHorizontalscrollbarhsbhsbVolumeImageimgimgIconImagecomboimgcboimgcboProductImageListilsilsAllIconsLabellbllblHelpMessageLightweightcheckboxlwchklwchkArchiveLightweightcomboboxlwcbolwcboGermanLightweightcommandbuttonlwcmdlwcmdRemoveLightweightframelwfralwfraSaveOptionsLightweighthorizontalscrollbarlwhsblwhsbVolumeLightweightlistboxlwlstlwlstCostCentersLightweightoptionbuttonlwoptlwoptIncomeLevelLightweighttextboxlwtxtlwoptStreetLightweightverticalscrollbarlwvsblwvsbYearLinelinlinVerticalListboxlstlstPolicyCodesListViewlvwlvwHeadingsMAPImessagempmmpmSentMessageMAPIsessionmpsmpsSessionMCImcimciVideoMenumnumnuFileOpenMonthviewmvwmvwPeriodMSChartchchSalesbyRegionMSFlexgridmsgmsgClientsMSTabmstmstFirstOLEcontaineroleoleWorksheetOptionbuttonoptoptGenderPictureboxpicpicVGAPictureclipclpclpToolbarProgressBarprgprgLoadFileRemoteDatardrdTitlesRichTextBoxrtfrtfReportShapeshpshpCircleSlidersldsldScaleSpinspnspnPagesStatusBarstastaDateTimeSysInfosyssysMonitorTabStriptabtabOptionsTextboxtxttxtLastNameTimertmrtmrAlarmToolbartlbtlbActionsTreeViewtretreOrganizationUpDownupdupdDirectionVerticalscrollbarvsbvsbRate推薦使用的數(shù)據(jù)訪問對象(DAO)的前綴用下列前綴來指示數(shù)據(jù)訪問對象。數(shù)據(jù)庫對象前綴例子ContainerconconReportsDatabasedbdbAccountsDBEnginedbedbeJetDocumentdocdocSalesReportFieldfldfldAddressGroupgrpgrpFinanceIndexixidxAgeParameterprmprmJobCodeQueryDefqryqrySalesByRegionRecordsetrecrecForecastRelationrelrelEmployeeDeptTableDeftbdtbdCustomersUserusrusrNewWorkspacewspwspMine一些例子:DimdbBiblioAsDatabaseDimrecPubsInNYAsRecordset,strSQLStmtAsStringConstDB_READONLY=4'設(shè)置常量。'打開數(shù)據(jù)庫。SetdbBiblio=OpenDatabase("BIBLIO.MDB")'為SQL語句設(shè)置文本。strSQLStmt="SELECT*FROMPublishersWHERE_State='NY'"'創(chuàng)建新的記錄集對象。SetrecPubsInNY=db.OpenRecordset(strSQLStmt,_dbReadOnly)推薦使用的菜單前綴應(yīng)用程序頻繁使用許多菜單控件,對于這些控件具備一組唯一的命名約定很實用。除了最前面"mnu"標(biāo)記以外,菜單控件的前綴應(yīng)該被擴(kuò)展:對每一級嵌套增加一個附加前綴,將最終的菜單的標(biāo)題放在名稱字符串的最后。下表列出了一些例子。菜單標(biāo)題序列菜單處理器名稱FileOpenmnuFileOpenFileSendEmailmnuFileSendEmailFileSendFaxmnuFileSendFaxFormatCharactermnuFormatCharacterHelpContentsmnuHelpContents當(dāng)使用這種命名約定時,一個特定的菜單組的所有成員一個接一個地列在VisualBasic的“屬性”窗口中。而且,菜單控件的名字清楚地表示出它們所屬的菜單項。為其它控件選擇前綴對于上面沒有列出的控件,應(yīng)該用唯一的由兩個或三個字符組成的前綴使它們標(biāo)準(zhǔn)化,以保持一致性。只有當(dāng)需要澄清時,才使用多于三個字符的前綴。例如,對于派生的或修改的控件象上述那樣擴(kuò)展其前綴,使得在真正使用了哪一個控件的問題上避免混淆。對于第三方控件,應(yīng)該把制造商的小寫縮寫名附加到前綴中。例如,從VisualBasicProfessional3D框架中創(chuàng)建的一個控件實例可以用fra3d這樣的前綴,以避免混淆所使用的控件。常量和變量命名約定除了對象之外,常量和變量也需要良好格式的命名約定。本節(jié)列出了VisualBasic支持的常量和變量的推薦約定。并且討論標(biāo)識數(shù)據(jù)類型和范圍的問題。變量應(yīng)該總是被定義在盡可能小的范圍內(nèi)。全局(Public)變量可以導(dǎo)致極其復(fù)雜的狀態(tài)機(jī)構(gòu),并且使一個應(yīng)用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護(hù)更加困難。VisualBasic中的變量可以有下列范圍:范圍聲明位置可見位置過程級過程,子過程或函數(shù)過程中的‘Private’在聲明它的過程中模塊級窗體或代碼模塊(.frm、.bas)的聲明部分中的‘Private’窗體或代碼模塊中的每一個過程全局代碼模塊(.bas)的聲明部分中的‘Public’應(yīng)用程序中的每一處在VisualBasic的應(yīng)用程序中,只有當(dāng)沒有其它方便途徑在窗體之間共享數(shù)據(jù)時才使用全局變量。當(dāng)必須使用全局變量時,在一個單一模塊中聲明它們,并按功能分組。給這個模塊取一個有意義的名稱,以指明它的作用,如Public.bas。較好的編碼習(xí)慣是盡可能寫模塊化的代碼。例如,如果應(yīng)用程序顯示一個對話框,就把要完成這一對話任務(wù)所需要的所有控件和代碼放在單一的窗體中。這有助于將應(yīng)用程序的代碼組織在有用的組件中,并減小它運行時的開銷。除了全局變量(應(yīng)該是不被傳遞的),過程和函數(shù)應(yīng)該僅對傳遞給它們的對象操作。在過程中使用的全局變量應(yīng)該在過程起始處的聲明部分中標(biāo)識出來。此外,應(yīng)該用ByVal將參數(shù)傳遞給Sub過程及function過程,除非明顯地需要改變已傳遞的參數(shù)值。變量范圍前綴隨著工程大小的增長,劃分變量范圍的工作也迅速增加。在類型前綴的前面放置單字母范圍前綴標(biāo)明了這種增長,但變量名的長度并沒有增加很多。范圍前綴例子全局ggstrUserName模塊級mmblnCalcInProgress本地到過程無dblVelocity如果一個變量在標(biāo)準(zhǔn)模塊或窗體模塊中被聲明為Public,那么該變量具有全局范圍。如果一個變量在標(biāo)準(zhǔn)模塊或窗體模塊中被分別聲明為Private,那么該變量有模塊級范圍。注意一致性是卓有成效地使用這種技術(shù)的關(guān)鍵;VisualBasic中的語法檢查器不會捕捉以"p."開頭的模塊級變量。常量常量名的主體是大小寫混合的,每個單詞的首字母大寫。盡管標(biāo)準(zhǔn)VisualBasic常量不包含數(shù)據(jù)類型和范圍信息,但是象i、s、g和m這樣的前綴對于理解一個常量的值和范圍還是很有用的。對于常量名,應(yīng)遵循與變量相同的規(guī)則。例如:mintUserListMax'對用戶列表的最大限制'(整數(shù)值,本地到模塊)gstrNewLine'新行字符'(字符串,應(yīng)用程序全局使用)變量聲明所有的變量將會節(jié)省編程時間,因為鍵入操作引起的錯誤減少了(例如,究竟是aUserNameTmp,還是sUserNameTmp,還是sUserNameTemp)。在“選項”對話框的“編輯器”標(biāo)簽中,復(fù)選“要求變量聲明”選項。OptionExplicit語句要求在VisualBasic程序中聲明所有的變量。應(yīng)該給變量加前綴來指明它們的數(shù)據(jù)類型。而且前綴可以被擴(kuò)展,用來指明變量范圍,特別是對大型程序。變量數(shù)據(jù)類型用下列前綴來指明一個變量的數(shù)據(jù)類型。數(shù)據(jù)類型前綴例子BooleanblnblnFoundeanBbytbytRasterDatanByteCollectionocolcolWidgetsectionocurcurRevenueonobjectCudtmdtmStartectCurdbldblToleranceCurreerrerrOrderNumrencyDaintintQuantityyDatlnglngDistanceObjectobjobjCurrentectSinsngsngAverageSinglestrstrFNamegleStringUser-defudtudtEmployeeUser-devntvntCheckSum描述變量和過程名變量或過程名的主體應(yīng)該使用大小寫混合形式,并且應(yīng)該足夠長以描述它的作用。而且,函數(shù)名應(yīng)該以一個動詞起首,如InitNameArray或CloseDialog。對于頻繁使用的或長的項,推薦使用標(biāo)準(zhǔn)縮略語以使名稱的長度合理化。一般來說,超過32個字符的變量名在VGA顯示器上讀起來就困難了。當(dāng)使用縮略語時,要確保它們在整個應(yīng)用程序中的一致性。在一個工程中,如果一會兒使用Cnt,一會兒使用Count,將導(dǎo)致不必要的混淆。用戶定義的類型在一項有許多用戶定義類型的大工程中,常常有必要給每種類型一個它自己的三個字符的前綴。如果這些前綴是以"u"開始的,那么當(dāng)用一個用戶定義類型來工作時,快速識別這些類型是很容易的。例如,ucli可以被用來作為一個用戶定義的客戶類型變量的前綴。結(jié)構(gòu)化編碼約定除了命名約定外,結(jié)構(gòu)化編碼約定,可以極大地改善代碼的可讀性,如代碼注釋和一致性縮進(jìn)。代碼注釋約定所有的過程和函數(shù)都應(yīng)該以描述這段過程的功能的一段簡明注釋開始(這段例程干什么)。這種描述不應(yīng)該包括執(zhí)行過程細(xì)節(jié)(它是怎么做的),因為這常常是隨時間而變的,而且這種描述會導(dǎo)致不必要的注釋維護(hù)工作,甚至更糟—成為錯誤的注釋。代碼本身和必要的嵌入注釋將描述實現(xiàn)方法。當(dāng)參數(shù)的功能不明顯且當(dāng)過程希望參數(shù)在一個特定的范圍內(nèi)時,也應(yīng)描述傳遞給過程的參數(shù)。被過程改變的函數(shù)返回值和全局變量,特別是通過引用參數(shù)的那些,也必須在每個過程的起始處描述它們。過程頭注釋塊應(yīng)該包括下列節(jié)標(biāo)題。關(guān)于例子,請參閱下節(jié)“格式化代碼”。節(jié)標(biāo)題注釋描述目的該過程完成什么(而不是怎么完成)。假設(shè)列出每個外部變量、控件、打開文件或其它不明顯元素。效果列出每個被影響的外部變量、控件、或文件及其作用(只有當(dāng)它不明顯時)。輸入每一個可能不明顯的參數(shù)。參數(shù)分別在單獨的行上,并嵌入注釋。返回函數(shù)返回值的說明。記住下列幾點:每一個重要變量的聲明應(yīng)該包括一個嵌入注釋,來描述該變量的使用。變量、控件及過程的命名應(yīng)該足夠清楚,使得只有復(fù)雜的執(zhí)行細(xì)節(jié)才需要嵌入注釋。.Bas模塊包含工程的VisualBasic一般常量聲明,在其起始處,應(yīng)該包括描述應(yīng)用程序的綜述,列舉主要數(shù)據(jù)對象、過程、算法、對話、數(shù)據(jù)庫及系統(tǒng)需求。有時,一段描述算法的偽碼可能會有所幫助。格式化代碼因為許多程序員仍然使用VGA顯示器,所以在允許代碼格式來反映邏輯結(jié)構(gòu)和嵌套的同時,應(yīng)盡可能地省屏幕空間。下面列出幾點:標(biāo)準(zhǔn)的、基于制表位的嵌套塊應(yīng)該被縮進(jìn)四個空格(缺省情況下)。過程的功能綜述注釋應(yīng)該縮進(jìn)一個空格。跟在綜述注釋后面的最高級的語句應(yīng)該縮進(jìn)一個制表位,而每一個嵌套的塊再縮進(jìn)一個制表位。例如:'*****************************************************'目的:在用戶列表數(shù)組中找出'一個指定用戶的第一次出現(xiàn)位置。'輸入:'strUserList():被搜索的用戶列表。'strTargetUser:要搜索的用戶名。'返回:在rasUserList數(shù)組中rsTargetUser'的第一次出現(xiàn)的索引。'如果目標(biāo)用戶沒找到,返回-1。'*****************************************************FunctionintFindUser(strUserList()AsString,strTargetUserAs_String)AsIntegerDimiAsInteger'循環(huán)計數(shù)器。DimblnFoundAsInteger'目標(biāo)尋找標(biāo)志。intFindUser=-1i=0Whilei<=Ubound(strUserList)andNotblnFoundIfstrUserList(i)=strTargetUserThenblnFound=TrueintFindUser=iEndIfWendEndFunction

溫馨提示

  • 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

提交評論