4GL語言開發(fā)原則及規(guī)范--簡(jiǎn)化版(精編版)_第1頁
4GL語言開發(fā)原則及規(guī)范--簡(jiǎn)化版(精編版)_第2頁
4GL語言開發(fā)原則及規(guī)范--簡(jiǎn)化版(精編版)_第3頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范picc 新一代綜合業(yè)務(wù)系統(tǒng)項(xiàng)目組 i 4gl語言開發(fā)原則及規(guī)范中科軟件股份有限公司2002 年 04 月 27 日fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范picc 新一代綜合業(yè)務(wù)系統(tǒng)項(xiàng)目組 ii 目錄1編碼規(guī)范 . 11.1命名規(guī)范 . 11.1.1對(duì)象命名 . 11.1.2常量和變量命名 . 51.2注釋規(guī)范 . 71.2.1程序文件部分的注釋 . 81.2.2函數(shù)部分的注釋 . 91.2.3函數(shù)(過程)程序的增、刪、改的注釋說明約定.111.2.4函數(shù)體內(nèi)部的代碼段修改注釋 .121.2.5函數(shù)體內(nèi)部的代碼段說明約定 .131.3書

2、寫規(guī)范 .131.3.1基本原則 .131.3.2保留字引用規(guī)則 .141.3.3let 語句 .141.3.4if語句 .151.3.5define 語句 .151.3.6call 語句 .161.3.7函數(shù)體內(nèi)部組織 .161.4注意事項(xiàng) .18fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 1 1 編碼規(guī)范1.1 命名規(guī)范1.1.1對(duì)象命名數(shù)據(jù)庫命名規(guī)范數(shù)據(jù)庫名長(zhǎng)度:不超過informix 規(guī)定長(zhǎng)度 (十八位 ) ;采用英文形式,規(guī)則如下:數(shù)據(jù)庫名由兩部分組成:系統(tǒng)名+db ;舉例:財(cái)產(chǎn)保險(xiǎn)業(yè)務(wù)處理系統(tǒng)的數(shù)據(jù)庫命名為:prpinsdb 系統(tǒng)名由英文單詞

3、構(gòu)成,每個(gè)單詞首字母大寫,單詞可采取縮寫形式;附表提供的詞根表作為構(gòu)詞的唯一依據(jù)。本小節(jié)規(guī)范適用于各種語言版本的系統(tǒng)。數(shù)據(jù)庫表命名規(guī)范數(shù)據(jù)庫表名長(zhǎng)度:不超過informix 規(guī)定長(zhǎng)度 ( 十八位) ;采用英文和“ _”組成形式,規(guī)則如下:數(shù)據(jù)庫表名由三部分組成:系統(tǒng)名+業(yè)務(wù)類型 +表的英文名( +“_”+子對(duì)象名),業(yè)務(wù)類型用 1 位大寫字母表示,如承保業(yè)務(wù)為c、批改業(yè)務(wù)為 p、理賠業(yè)務(wù)為 l、收付費(fèi)業(yè)務(wù)的數(shù)據(jù)表為 j、通用代碼為 d;舉例:財(cái)產(chǎn)保險(xiǎn)承保保單基本信息表命名為:prpcmain;貨物運(yùn)輸保險(xiǎn)保單信息表(繼承了保單基本信息):prpcmain_cargo 。業(yè)務(wù)類型采

4、用附表提供的詞根表中規(guī)定的字母;表名由英文單詞構(gòu)成,保險(xiǎn)類別和業(yè)務(wù)類型的首字母大寫,表的英文名采取小寫形式,單詞可采取縮寫形式;當(dāng)一個(gè)對(duì)象繼承主對(duì)象時(shí),體現(xiàn)在數(shù)據(jù)表上則使用“_”分割;舉例: prpcmain_cargo:貨物運(yùn)輸保險(xiǎn)保單信息表,繼承了保單基本信息。fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 2 附表提供的詞根表作為構(gòu)詞的唯一依據(jù)。本小節(jié)規(guī)范適用于各種語言版本的系統(tǒng)。數(shù)據(jù)庫字段命名規(guī)范字段長(zhǎng)度:不超過informix 規(guī)定字段長(zhǎng)度 (十八位 ) ;采用英文形式,規(guī)則如下:1.字段名由英文單詞構(gòu)成,每個(gè)單詞首字母大寫;舉例:保單號(hào)碼: po

5、licyno 2.一個(gè)字段名所用的單詞不超過5 個(gè),在字段名不超過規(guī)定長(zhǎng)度的情況下,盡量采用英文單詞的全稱;3.在字段名總長(zhǎng)度超長(zhǎng)的情況下,不縮略核心單詞,其他單詞縮略不短于3個(gè)字母;4.形容詞定語放在所修飾名詞的后面;舉例:損失金額: sumloss 附表提供的詞根表作為構(gòu)詞的唯一依據(jù)。本小節(jié)規(guī)范適用于各種語言版本的系統(tǒng)。程序(文件)模塊命名長(zhǎng)度:不超過 informix 規(guī)定長(zhǎng)度 ( 十位);采用英文形式,規(guī)則如下:以對(duì)象名開頭(第一個(gè)字母大寫),后接對(duì)象操作名(第一個(gè)字母大寫);命名規(guī)則: objectopt.4gl 其中, object 是對(duì)象名。數(shù)據(jù)層默認(rèn)為基本表名。如

6、果表名超過10 位。則按照縮略規(guī)則執(zhí)行。bl層模塊劃分及命名:原則上每個(gè) bl層的對(duì)象對(duì)應(yīng)兩個(gè)模塊,一個(gè)對(duì)象主模塊,一個(gè)模塊存放歸屬于該對(duì)象的模塊變量。當(dāng)且僅當(dāng)主模塊中內(nèi)容過多時(shí),按照如下規(guī)則劃分:objectrd.4gl:存放涉及到查詢(讀)數(shù)據(jù)庫的服務(wù)函數(shù)objectwt.4gl:存放涉及到更新(寫)數(shù)據(jù)庫的服務(wù)函數(shù)objecttx.4gl:存放事務(wù)服務(wù)函數(shù)objectlg.4gl:存放不涉及數(shù)據(jù)庫操作的服務(wù)函數(shù)fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 3 db層模塊劃分及命名:全局動(dòng)態(tài)數(shù)組( de ):對(duì)于數(shù)據(jù)層的實(shí)體對(duì)象服務(wù)模塊,它們一般由工具生成,文件名一

7、般要與實(shí)體對(duì)象名一致,除非表名超過10 位,此時(shí)參考詞根表進(jìn)行命名。注意表名或者詞根表是命名僅有的參考依據(jù)。另外,除了通用服務(wù)以外,有些實(shí)體對(duì)象需要一些擴(kuò)展的服務(wù),這些服務(wù)放在實(shí)體對(duì)象服務(wù)模塊的最后定義;函數(shù)命名規(guī)范采用由大小寫英文字母和“_”組成方式,規(guī)則如下;直接調(diào)用的工具函數(shù)命名公式pub_” + ”對(duì)象名” + ”_” + “函數(shù)名”其中:對(duì)象名和函數(shù)名區(qū)分大小寫對(duì)象服務(wù)函數(shù)命名由于 informix-4gl 語言不是面向?qū)ο蟮拈_發(fā)語言,因而在程序設(shè)計(jì)中的對(duì)象服務(wù)是以函數(shù)的方式體現(xiàn)的;一般函數(shù)命名公式:作用范圍 +”_”+對(duì)象名 +”_”+對(duì)象的方法其中:作用范圍包括pu

8、b/pri ,對(duì)象名和方法名區(qū)分大小寫舉例:邏輯層險(xiǎn)種對(duì)象blprpdrisk 的增加操作 add 所對(duì)應(yīng)的函數(shù)名為:pub_blprpdrisk_add 數(shù)據(jù)層代碼對(duì)象 dbprpdcode 的 delete 操作 所對(duì)應(yīng)的函數(shù)名為:pub_dbprpdcode_delete 界面層保單對(duì)象 uipolicy 的 錄入操作對(duì)應(yīng)的函數(shù)名為:pub_uipolicy_input 事務(wù)型的函數(shù) ( 或模塊 )命名規(guī)范參見 3.2.5( 數(shù)據(jù)庫事務(wù)編寫約定 ) 數(shù)據(jù)層擴(kuò)展服務(wù)函數(shù)命名:如果存在某數(shù)據(jù)表tablename的數(shù)據(jù)層服務(wù),其功能是獲取表中某字段columnname 的最大值,則該數(shù)據(jù)層服務(wù)

9、函數(shù)名定義為:pub_dbtablename_getmaxcolumnname 如果某兩層結(jié)構(gòu)數(shù)據(jù)表tablename的字段名為 col,現(xiàn)存在數(shù)據(jù)層服務(wù),其功能是根據(jù) col 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務(wù)函數(shù)名定義為:fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 4 pub_dbtablename_deletebycol 如果某兩層結(jié)構(gòu)數(shù)據(jù)表tablename主鍵為 id 和 no,每個(gè) id 下包括若干 no,現(xiàn)存在數(shù)據(jù)層服務(wù),其功能是根據(jù)id 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務(wù)函數(shù)名定義為:pub_dbtablename_deletebyin如果某數(shù)據(jù)表 tablena

10、me主鍵為 id 、no 和 col ,現(xiàn)存在數(shù)據(jù)層服務(wù),其功能是根據(jù) id 和 no 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務(wù)函數(shù)名定義為:pub_dbtablename_deletebyinc也就是說,此時(shí)只取涉及的字段的首字母,寫在函數(shù)名的最后。屏幕表格命名屏幕 form 名應(yīng)與相關(guān)數(shù)據(jù)表或主調(diào)用文件保持一致;采用英文形式,規(guī)則如下:以對(duì)象名開頭 ( 第一個(gè)字母大寫 ),后接對(duì)象操作名 ( 第一個(gè)字母大寫 );命名規(guī)則: objopt.per ,其中 obj 是對(duì)象名, opt 是對(duì)象操作名。舉例:“主保單錄入”屏幕表格名稱為cmaininp.per “保單查詢”屏幕表格名為cmain

11、qry.per “保單清單顯示”屏幕表格名為cmainlst.per 如果一個(gè)屏幕表格被用于錄入、查詢等多種功能,功能名為:main;舉例:主保單錄入、查詢的通用屏幕表格名為:cmainmain.per 如果一個(gè)屏幕表格被用于非錄入、查詢等多種功能,功能名為:pub。舉例:主保單非錄入、查詢的通用屏幕表格名為:cmainpub.per 屏幕記錄:以小寫字母命名,形式為sc_tablename 屏幕數(shù)組:以小寫字母命名,形式為sa_tablename 窗口和游標(biāo)命名采用由小寫英文字母和“_”組成方式,規(guī)則如下;窗口命名以功能名開頭,后接win,以“_”分隔。舉例:某項(xiàng)功能需要以屏幕

12、表格的方式打開窗口,該功能主要實(shí)現(xiàn)權(quán)限記錄的增加。功能名為 grade_add ,則窗口命名為: grade_add_win。fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 5 open window grade_add_win at 2,2 with form “grademain”close window grade_add_win 游標(biāo)命名游標(biāo)的命名規(guī)則同窗口,只不過以cur 結(jié)尾;舉例:某功能需以預(yù)處理+游標(biāo)的方式從表prpgrade 獲取數(shù)據(jù)。設(shè)功能名為prpgrade_sel ,則預(yù)處理命名為: prpgrade_sel_pre ,游標(biāo)命名為 prpgrade

13、_sel_cur prepare prpgrade_sel_pre from lv_sql declare prpgrade_sel_cur cursor for prpgrade_sel_pre foreach prpgrade_sel_cur into sel_var_list end foreach 如果在同一個(gè)程序模塊內(nèi),游標(biāo)的命名重復(fù),可在結(jié)尾處加序號(hào)與以區(qū)別,序號(hào)從1 開始,依次遞增。1.1.2常量和變量命名命名公式:常量名稱 =變量作用域前綴 +變量類型 +_+自定義名稱注意:自定義名稱要有一定的意義且整個(gè)常量名稱全部大寫變量名稱 =變量作用域前綴 +變量類型 +_+自定義名稱注

14、意:自定義名稱要有一定的意義且整個(gè)常量名稱全部小寫除了對(duì)象之外,常量和變量也需要良好格式的命名約定。常量或變量應(yīng)該總是被定義在盡可能小的范圍內(nèi)。全局 (global) 變量可以導(dǎo)致極其復(fù)雜的狀態(tài)機(jī)構(gòu),并且使一個(gè)應(yīng)用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護(hù)更加困難。較好的編碼習(xí)慣是盡可能寫模塊化的代碼。除了全局變量(應(yīng)該是不被傳遞的),過程和函數(shù)應(yīng)該僅對(duì)傳遞給它們的對(duì)象操作。在過程中使用的全局變量應(yīng)該在過程起始處的聲明部分中標(biāo)識(shí)出來。fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 6 作用范圍前綴例子全局g gr_prpcmain 模塊級(jí)p pv_sql 本地到

15、過程l lv_count 傳入?yún)?shù)i ir_prpcmain 常量/ 變量類型前綴例子結(jié)構(gòu)r gr_prpcmain 數(shù)組a pa_count10 其他v lv_proposalno 描述變量變量主體應(yīng)該使用小寫形式,并且應(yīng)該足夠長(zhǎng)以描述它的作用。對(duì)于頻繁使用的或長(zhǎng)的項(xiàng),推薦使用標(biāo)準(zhǔn)縮略語以使名稱的長(zhǎng)度合理化。當(dāng)使用縮略語時(shí),要確保它們?cè)谡麄€(gè)應(yīng)用程序中的一致性。在一個(gè)工程中,如果一會(huì)兒使用 proposalno 代表投保單號(hào)碼,一會(huì)使用prpsalno 代表保單號(hào)碼,將導(dǎo)致不必要的混淆。變量使用遵循如下幾條規(guī)則: 函數(shù)內(nèi)部定義的每一個(gè)變量在使用之前都必須初始化,初始化區(qū)域以 /-init開頭和

16、 -/ 結(jié)尾。便于工具能夠定期檢查變量是否初始化或者初始化是否正確,在函數(shù)內(nèi)部的變量初始化區(qū)域,嚴(yán)格按照上述規(guī)定檢查;對(duì)于數(shù)組的初始化,必須采用initialize 數(shù)組 to null ,不要采用循環(huán)一條條記錄進(jìn)行初始化,除非需要針對(duì)數(shù)組記錄中的某個(gè)字段特殊賦值; 比如:定義數(shù)組變量la_prptplan array20 of record like prptplan.*, 初始化時(shí)直接用initialize la_prptplan to null,不要使用:for i=1 to 20 initialize la_prptplani.* to null end for 對(duì)象化后的系統(tǒng)不允許使

17、用模塊變量; 終端版系統(tǒng)應(yīng)優(yōu)化算法,盡量避免使用數(shù)組,不允許使用大數(shù)組;fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 7 變量定義及初始化舉例如下:function pub_blprpcaddress_ini( ) define lr_prpcaddress record like prpcaddress.*, la_prpcaddress array20 of record like prpcaddress.*, lv_prpcaddress_count smallint, lv_result integer #/-init #-變量初始化 initialize lr

18、_prpcaddress.* to null initialize la_prpcaddress to null #-初始化數(shù)組變量 let lv_prpcaddress_count=0 let lv_result=0 #-/ call pub_deprpcaddress_getrec() returning lr_prpcaddress.* end function1.2 注釋規(guī)范良好的程序注釋有助于幫助我們了解程序的實(shí)現(xiàn),也可以對(duì)程序文件進(jìn)行一定量統(tǒng)計(jì)分析。約定如下:程序注釋是程序文件的一個(gè)重要組成部分,中英文注釋均可(考慮到各種平臺(tái)對(duì)中文的支持,建議用英文);informix-4gl 的

19、注釋有三種: #、- 、 。分單行注釋和多行注釋兩種。單行注釋以 - 開頭。多行注釋以 #開頭。除了臨時(shí)的注釋(調(diào)試程序使用),嚴(yán)禁使用 。為了對(duì) 4gl文件進(jìn)行一定量的統(tǒng)計(jì)分析,規(guī)范代碼的編寫質(zhì)量。制定了一組注釋框架來對(duì) 4gl程序進(jìn)行說明。規(guī)則如下:fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 8 1.2.1程序文件部分的注釋程序文件頭的注釋說明主要包括該程序文件包含類的名稱(class) 、類的功能描述(desc) 、文件創(chuàng)建作者 (author) 、創(chuàng)建日期 (createdate)、及更新列表 (modifylist)等信息。還包括類的成員包括公有和私有。舉例

20、:#/-class dbprpdkind #desc 類功能描述#author 創(chuàng)建者名稱#createdate yyyy/mm/dd #modifylist # name date reason # wupeng 2002/03/13 優(yōu)化 save 函數(shù),提高效率# sunribo 2002/03/14 增 premiumcal函數(shù)計(jì)算保費(fèi)#-/ 說明:modifylist中#后一個(gè)空格 ,name,date,reason和其內(nèi)容都要左對(duì)齊 ,name 寬8 列, 其后一個(gè)空格 , 然后是 date 寬 10 列, 其后一個(gè)空格 , 然后是 reason, 如果 reason需要折行 ,

21、另起一行 , 仍和 reason 對(duì)齊#/-publicproperties global define gr_prpcmain record like prpcmain.* end global #-/ #/-privateproperties define pr_prpcmain record like prpcmain.* define pv_proposalno like pprptmain.proposalno -* 投保單號(hào)#-/ fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 9 1.2.2函數(shù)部分的注釋每一函數(shù)(或過程)都應(yīng)包括該函數(shù)(或過程)的注釋部分包

22、括一個(gè)method框架。描述實(shí)現(xiàn)的功能簡(jiǎn)介、輸出參數(shù)說明等方面的描述。在函數(shù)內(nèi)部變量定義前包括該函數(shù)return 的框架,以 /-return 開頭和 -/ 結(jié)尾,對(duì)于無返回值和有返回值的return 描述規(guī)則如下:1、無返回值的 return 書寫規(guī)則:#/-return# variable define remark#-/ 2、有返回值的 return 書寫規(guī)則:#/-return# variable define remark# lv_result smallint 返回的 sql 值# lr_prpcmain prpcmain.* 數(shù)據(jù)庫表記錄# lv_amount decimal(1

23、6,2)# lv_policyno prpcmain.policyno 保單號(hào)# lr_sumpolicy selfdefine# none true/false # none -1/0/100 失敗/ 成功/ 沒找到#-/ 3、有返回值且注釋超過一行的return 書寫規(guī)則:#/-return# variable define remark# lv_result smallint 返回的 sql 值 # 0:成功; 1 失敗# lr_prpcmain prpcmain.* 數(shù)據(jù)庫表記錄 fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 10 # 對(duì)應(yīng)保單主表# lv_am

24、ount decimal(16,2)# lv_policyno prpcmain.policyno 保單號(hào)# lr_sumpolicy selfdefine# none true/false # none -1/0/100 失敗/ 成功/ 沒找到#-/ 說明:(1)#-return 、variable、 define 、 remark 所在行為固定格式;(2)每行只能注釋一個(gè)返回值,返回值注釋的先后與函數(shù)實(shí)際返回順序一致;(3)variable 、define 、remark和其內(nèi)容要左對(duì)齊;(4)對(duì)于 remark一行不夠的話,在注釋后補(bǔ)反斜杠”, 另起一行,和上一行的注釋內(nèi)容左對(duì)齊。(5)

25、define 節(jié)約定:對(duì)于like 型的變量,該處寫出表名.* ,或者表名 .字段名,如:prpcmain.* , prpcmain.policyno ;對(duì)于 decimal類型,必須寫出精度,如decimal(16,2)。(6)如果變量為自定義的結(jié)構(gòu),在define行填寫selfdefine;(7)如果返回值不是變量,variable項(xiàng)固定為none ,define項(xiàng)羅列出返回?cái)?shù)值,用“/ ”分隔;(8)該規(guī)則位置放在函數(shù)中的parameter 節(jié)之前。舉例如下:#/-method #desc 根據(jù)主鍵獲取 prpcfee 表的記錄#-/ function pub_dbprpcfee_get

26、info(iv_policyno,iv_currency) #/-return# variable define remark # lr_prpcfee.* prpcfee.* 保額保費(fèi)記錄# lv_ret smallint #-/ #/-parameter define iv_policyno like prpcfee.policyno define iv_currency like prpcfee.currency #-/ fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 11 在函數(shù)內(nèi)部變量定義的同時(shí)包括一個(gè)parameter框架, 以/-parameter開頭和 -

27、/結(jié)尾,用來說明函數(shù)的入?yún)⒓叭雲(yún)⒌念愋?。舉例:#/-method #desc 函數(shù)描述#return smallint -函數(shù)返回值# integer -其他返回值#-/ function pub_dbprpcmain_insert(iv_prpcmain.*) #/-parameter -prpcmain 表紀(jì)錄define iv_cmain record like prpcmain.* #-/ define lv_result integer . . . end function 1.2.3函數(shù)(過程)程序的增、刪、改的注釋說明約定程序的這幾種操作包含在注釋關(guān)鍵字modify 中。注釋以

28、” -*modify” 開頭,其中modify 與” *” 之間不能有空格, 框架中包括注釋人姓名(必須),操作delete/add/update(必須) , 操作時(shí)間(必須),地點(diǎn) ( 必須),必要時(shí)說明操作原因。舉例:( 空行) -* modify begin sunribo,delete,2002-03-15,beijing,程序邏輯錯(cuò)誤( 空行) fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 12 #function pub_dbprpdkind_update(ir_prpdkind) #. #. #end function ( 空行) -* modify en

29、d sunribo,delete,2002-03-15,beijing ( 空行) 記住下列幾點(diǎn):程序增、刪、改的注釋應(yīng)該按時(shí)整理。無用的注釋及時(shí)清理掉。所有的變量定義之后都要加上能夠說明其用途的注釋。1.2.4函數(shù)體內(nèi)部的代碼段修改注釋在函數(shù)中修改代碼段應(yīng)在所修改代碼段首尾處增加注釋,在結(jié)尾處應(yīng)將縮添加起首處注釋的修改人、修改信息和關(guān)鍵字等信息重復(fù)一次,并將起首處的begin改為結(jié)束標(biāo)志 end所添加注釋應(yīng)與所注釋代碼段保持同樣縮進(jìn),并與所注釋代碼段間上下各保留一空行以便于瀏覽。此外,在進(jìn)行bug修改或補(bǔ)充功能開發(fā)時(shí)應(yīng)將bug編號(hào)或功能編號(hào)書寫在注釋中,作為與功能相關(guān)的標(biāo)識(shí)。舉例:(空行)-

30、* modify begin sunribo,delete,2002-03-15,beijing,for ibug2111 (空行)let lr_prptmain.proposalno=”let lr_prptmain.riskcode=”qza ”(空行)-* modify end sunribo,delete,2002-03-15,beijing (空行)fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 13 1.2.5函數(shù)體內(nèi)部的代碼段說明約定在程序中開始大的代碼段之前,要加入特殊的注釋,用于標(biāo)記說明下面代碼段的功能。此類注釋以 #- 開頭,縮進(jìn)和代碼段的縮進(jìn)相同,同

31、時(shí)這種注釋需要配以整齊的標(biāo)號(hào),以增加可讀性,便于理解。舉例: #-1.查詢出所有從起始節(jié)點(diǎn)出發(fā)的路徑 #-2.依次將這些路徑取出并放入一個(gè)數(shù)組 #-3.關(guān)閉取路徑的游標(biāo) #-4.循環(huán)判斷路徑是否滿足條件, 并標(biāo)記滿足條件的記錄 #-5.選出所有選中的路徑中優(yōu)先級(jí)最高的進(jìn)行返回1.3 書寫規(guī)范1.3.1基本原則編碼要清晰工整,保證程序的可讀性、系統(tǒng)的可維護(hù)性:在任何情況下都不能使用tab鍵;程序中一律采用4個(gè)空格的縮進(jìn);除了” , ”運(yùn)算符之外,所有的運(yùn)算符和操作數(shù)之間都要加一個(gè)空格;一個(gè)代碼行物理上不能超過屏幕規(guī)定的缺省最大寬度(80 列) ,即不能產(chǎn)生折行,如果邏輯行長(zhǎng)度超過80,除了函數(shù)定

32、義或者調(diào)用語句根據(jù)函參折行對(duì)齊、define語句根據(jù)變量折行對(duì)齊以外,其他情況一律將超長(zhǎng)部分另起一行空4 格后書寫;成對(duì)出現(xiàn)的語句起始和結(jié)束關(guān)鍵字必須左對(duì)齊書寫。ui-bl-db 三層允許前端調(diào)用后端( uibl,uidb ,bldb ),不允許出現(xiàn)后端反調(diào)前端的情況;舉例:if then fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 14 . . . end if while condition do end while function abc() . . . end function 1.3.2保留字引用規(guī)則編碼中引用的所有保留字均必須大寫;程序注釋提供的關(guān)鍵字:

33、author createdate desc parameter return publicproperties privateproperties class modify modifylist informix-4gl 提供的保留字:select update delete insert if then else case when otherwise end function procedure while exit informix-4gl 提供的系統(tǒng)變量、函數(shù)一律大寫;舉例:int_flag 、arr_count、set_count等1.3.3let語句let語句一行能寫下就寫在一行

34、, 邏輯行長(zhǎng)度大于 80 時(shí)按照邏輯表達(dá)式拆分后 , 另起一行空 4 格后書寫。舉例:let lv_where_part = a.username = e.usercode and , e.groupno = d.groupno and , e.modelno = , lr_wflog.modelno, and , fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 15 e.nodeno = , lr_wflog.nodeno 1.3.4if 語句if 之后的邏輯表達(dá)式一行能寫下就寫在一行, 邏輯行長(zhǎng)度大于 80 時(shí)按照邏輯表達(dá)式拆分后 , 另起一行空 4 格后書寫。對(duì)于

35、if 加上之后的條件如果足夠在一行的話,then 跟在后面, 否則單獨(dú)占一行。所有的邏輯運(yùn)算符 (and,or) 一律放在每行開始。禁止使用 else if 語句, 可以采用 case 語句改寫 。舉例:if lr_prptmain.proposalno is null then error 該字段不允許為空 , 請(qǐng)重新輸入 ! end if if lr_prptmain.proposalno is null or length(lr_prptmain.proposalno) = 0 then error 該字段不允許為空 , 請(qǐng)重新輸入 ! next field proposalno els

36、e 。end if 另外,控制分支結(jié)構(gòu)較為復(fù)雜時(shí),用case 語句代替一系列 if 語句,必要的時(shí)候另外組織函數(shù),寧可犧牲一些資源,也要保持程序文件的清晰程度。1.3.5define語句define語句必須和 function 對(duì)齊書寫。每個(gè)函數(shù)的入?yún)⒍家獑为?dú)使用一個(gè)define語句。fi-piccall-sd- 設(shè)計(jì)原則及開發(fā)規(guī)范中科軟件股份有限公司 16 函數(shù)體內(nèi)用到的變量定義時(shí)按照變量對(duì)齊。變量類型說明的對(duì)齊方式不做要求。1.3.6call語句call語句的書寫原則是 : 如果一行能寫下 , 就不將 returning語句折行書寫 , 如果寫不下, 將 returning 折行縮進(jìn) 4 格書寫 . 如果函參過多一行寫不下 , 將參數(shù)折行左對(duì)齊call的第一參數(shù)書寫 , 返回

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論