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

下載本文檔

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

文檔簡介

1、FI-PICCALL-SD-設計原則及開發(fā)規(guī)范PICC 新一代綜合業(yè)務系統(tǒng)項目組 i 4GL4GL 語言開發(fā)原則及規(guī)范語言開發(fā)原則及規(guī)范中科軟件股份有限公司中科軟件股份有限公司20022002 年年 0404 月月 2727 日日FI-PICCALL-SD-設計原則及開發(fā)規(guī)范PICC 新一代綜合業(yè)務系統(tǒng)項目組 ii 目目 錄錄1 1編碼規(guī)范編碼規(guī)范.11.1命名規(guī)范.11.1.1對象命名.11.1.2常量和變量命名.51.2注釋規(guī)范.71.2.1程序文件部分的注釋.81.2.2函數(shù)部分的注釋.91.2.3函數(shù)(過程)程序的增、刪、改的注釋說明約定.111.2.4函數(shù)體內(nèi)部的代碼段修改注釋.12

2、1.2.5函數(shù)體內(nèi)部的代碼段說明約定.131.3書寫規(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注意事項.18FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 11 1 編碼規(guī)范編碼規(guī)范1.11.1 命名規(guī)范命名規(guī)范1.1.1對象命名 數(shù)據(jù)庫命名規(guī)范數(shù)據(jù)庫命名規(guī)范數(shù)據(jù)庫名長度:不超過 INFORMIX 規(guī)定長度(十八位);采用英文形式,規(guī)則如下:數(shù)據(jù)庫名由兩部分組成:系統(tǒng)名+D

3、B;舉例:財產(chǎn)保險業(yè)務處理系統(tǒng)的數(shù)據(jù)庫命名為:PrpInsDB系統(tǒng)名由英文單詞構成,每個單詞首字母大寫,單詞可采取縮寫形式;附表提供的詞根表作為構詞的唯一依據(jù)。本小節(jié)規(guī)范適用于各種語言版本的系統(tǒng)。 數(shù)據(jù)庫表命名規(guī)范數(shù)據(jù)庫表命名規(guī)范數(shù)據(jù)庫表名長度:不超過 INFORMIX 規(guī)定長度(十八位);采用英文和“_”組成形式,規(guī)則如下:數(shù)據(jù)庫表名由三部分組成:系統(tǒng)名+業(yè)務類型+表的英文名(+“_”+子對象名),業(yè)務類型用 1 位大寫字母表示,如承保業(yè)務為 C、批改業(yè)務為 P、理賠業(yè)務為 L、收付費業(yè)務的數(shù)據(jù)表為 J、通用代碼為 D;舉例:財產(chǎn)保險承保保單基本信息表命名為:Pr

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

5、RMIX 規(guī)定字段長度(十八位);采用英文形式,規(guī)則如下:1. 字段名由英文單詞構成,每個單詞首字母大寫;舉例: 保單號碼:PolicyNo2. 一個字段名所用的單詞不超過 5 個,在字段名不超過規(guī)定長度的情況下,盡量采用英文單詞的全稱;3. 在字段名總長度超長的情況下,不縮略核心單詞,其他單詞縮略不短于 3 個字母;4. 形容詞定語放在所修飾名詞的后面;舉例:損失金額:SumLoss附表提供的詞根表作為構詞的唯一依據(jù)。本小節(jié)規(guī)范適用于各種語言版本的系統(tǒng)。 程序(文件)模塊命名程序(文件)模塊命名長度:不超過 INFORMIX 規(guī)定長度(十位);采用英文形式,規(guī)則如

6、下:以對象名開頭(第一個字母大寫),后接對象操作名(第一個字母大寫);命名規(guī)則:ObjectOpt.4gl 其中,Object 是對象名。數(shù)據(jù)層默認為基本表名。如果表名超過 10 位。則按照縮略規(guī)則執(zhí)行。BL 層模塊劃分及命名:原則上每個 BL 層的對象對應兩個模塊,一個對象主模塊,一個模塊存放歸屬于該對象的模塊變量。當且僅當主模塊中內(nèi)容過多時,按照如下規(guī)則劃分:objectRd.4gl:存放涉及到查詢(讀)數(shù)據(jù)庫的服務函數(shù)objectWt.4gl:存放涉及到更新(寫)數(shù)據(jù)庫的服務函數(shù)objectTx.4gl:存放事務服務函數(shù)objectLg.4gl:存放不涉及數(shù)據(jù)庫操作的服務函數(shù)FI-PIC

7、CALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 3DB 層模塊劃分及命名:全局動態(tài)數(shù)組(DE):對于數(shù)據(jù)層的實體對象服務模塊,它們一般由工具生成,文件名一般要與實體對象名一致,除非表名超過 10 位,此時參考詞根表進行命名。注意表名或者詞根表是命名僅有的參考依據(jù)。另外,除了通用服務以外,有些實體對象需要一些擴展的服務,這些服務放在實體對象服務模塊的最后定義; 函數(shù)命名規(guī)范函數(shù)命名規(guī)范采用由大小寫英文字母和“_”組成方式,規(guī)則如下;直接調(diào)用的工具函數(shù)命名公式pub_” + ”對象名” + ”_” + “函數(shù)名”其中:對象名和函數(shù)名區(qū)分大小寫對象服務函數(shù)命名由于

8、 INFORMIX-4GL 語言不是面向對象的開發(fā)語言,因而在程序設計中的對象服務是以函數(shù)的方式體現(xiàn)的;一般函數(shù)命名公式:作用范圍+”_”+對象名+”_”+對象的方法其中:作用范圍包括 pub/pri,對象名和方法名區(qū)分大小寫舉例:邏輯層險種對象 BLPrpDrisk 的增加操作 add 所對應的函數(shù)名為:pub_BLPrpDrisk_Add數(shù)據(jù)層代碼對象 DBPrpDcode 的 delete 操作 所對應的函數(shù)名為:pub_DBPrpDcode_Delete界面層保單對象 UIPolicy 的 錄入操作對應的函數(shù)名為:pub_UIPolicy_Input事務型的函數(shù)(或模塊)命名規(guī)范參見

9、3.2.5(數(shù)據(jù)庫事務編寫約定)數(shù)據(jù)層擴展服務函數(shù)命名:如果存在某數(shù)據(jù)表 TableName 的數(shù)據(jù)層服務,其功能是獲取表中某字段ColumnName 的最大值,則該數(shù)據(jù)層服務函數(shù)名定義為:pub_DBTableName_GetMaxColumnName如果某兩層結構數(shù)據(jù)表 TableName 的字段名為 Col,現(xiàn)存在數(shù)據(jù)層服務,其功能是根據(jù) Col 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務函數(shù)名定義為:FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 4pub_DBTableName_DeleteByCol如果某兩層結構數(shù)據(jù)表 TableName 主鍵為 id 和 no,每個 id

10、下包括若干 no,現(xiàn)存在數(shù)據(jù)層服務,其功能是根據(jù) id 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務函數(shù)名定義為:pub_DBTableName_DeleteByIN如果某數(shù)據(jù)表 TableName 主鍵為 id、no 和 col,現(xiàn)存在數(shù)據(jù)層服務,其功能是根據(jù) id 和 no 刪除表中數(shù)據(jù),則該數(shù)據(jù)層服務函數(shù)名定義為:pub_DBTableName_DeleteByINC也就是說,此時只取涉及的字段的首字母,寫在函數(shù)名的最后。 屏幕表格命名屏幕表格命名屏幕 FORM 名應與相關數(shù)據(jù)表或主調(diào)用文件保持一致;采用英文形式,規(guī)則如下:以對象名開頭(第一個字母大寫),后接對象操作名(第一

11、個字母大寫);命名規(guī)則:ObjOpt.per,其中 Obj 是對象名,Opt 是對象操作名。舉例:“主保單錄入”屏幕表格名稱為 CmainInp.per “保單查詢”屏幕表格名為 CmainQry.per “保單清單顯示”屏幕表格名為 CmainLst.per如果一個屏幕表格被用于錄入、查詢等多種功能,功能名為:main;舉例:主保單錄入、查詢的通用屏幕表格名為:CmainMain.per如果一個屏幕表格被用于非錄入、查詢等多種功能,功能名為:pub。舉例:主保單非錄入、查詢的通用屏幕表格名為:CmainPub.per屏幕記錄:以小寫字母命名,形式為 sc_tablename屏幕數(shù)組:以小寫字

12、母命名,形式為 sa_tablename 窗口和游標命名窗口和游標命名采用由小寫英文字母和“_”組成方式,規(guī)則如下;窗口命名以功能名開頭,后接 win,以“_”分隔。舉例:某項功能需要以屏幕表格的方式打開窗口,該功能主要實現(xiàn)權限記錄的增加。功能名為 grade_add,則窗口命名為:grade_add_win。FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 5OPEN WINDOW grade_add_win AT 2,2 WITH FORM “GradeMain” CLOSE WINDOW grade_add_win游標命名游標的命名規(guī)則同窗口

13、,只不過以 cur 結尾;舉例:某功能需以預處理+游標的方式從表 prpgrade 獲取數(shù)據(jù)。設功能名為 prpgrade_sel,則預處理命名為:prpgrade_sel_pre,游標命名為 prpgrade_sel_curPREPARE prpgrade_sel_pre FROM lv_sqlDECLARE prpgrade_sel_cur CURSOR FOR prpgrade_sel_preFOREACH prpgrade_sel_cur INTO sel_var_listEND FOREACH如果在同一個程序模塊內(nèi),游標的命名重復,可在結尾處加序號與以區(qū)別,序號從1 開始,依次遞增。

14、1.1.2常量和變量命名命名公式:常量名稱=變量作用域前綴+變量類型+_+自定義名稱注意:自定義名稱要有一定的意義且整個常量名稱全部大寫變量名稱=變量作用域前綴+變量類型+_+自定義名稱注意:自定義名稱要有一定的意義且整個常量名稱全部小寫除了對象之外,常量和變量也需要良好格式的命名約定。常量或變量應該總是被定義在盡可能小的范圍內(nèi)。全局 (Global) 變量可以導致極其復雜的狀態(tài)機構,并且使一個應用程序的邏輯非常難于理解。全局變量也使代碼的重用和維護更加困難。較好的編碼習慣是盡可能寫模塊化的代碼。除了全局變量(應該是不被傳遞的),過程和函數(shù)應該僅對傳遞給它們的對象操作。在過程中使用的全局變量應

15、該在過程起始處的聲明部分中標識出來。FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 6作用范圍前綴例子全局ggr_prpcmain模塊級ppv_sql本地到過程llv_count傳入?yún)?shù)iir_prpcmain常量/變量類型前綴例子結構rgr_prpcmain數(shù)組apa_count10其他vlv_proposalno描述變量變量主體應該使用小寫形式,并且應該足夠長以描述它的作用。對于頻繁使用的或長的項,推薦使用標準縮略語以使名稱的長度合理化。當使用縮略語時,要確保它們在整個應用程序中的一致性。在一個工程中,如果一會兒使用 proposalno 代表投保單號碼,一會使用 pr

16、psalno 代表保單號碼,將導致不必要的混淆。變量使用遵循如下幾條規(guī)則:函數(shù)內(nèi)部定義的每一個變量在使用之前都必須初始化,初始化區(qū)域以/-INIT開頭和-/結尾。便于工具能夠定期檢查變量是否初始化或者初始化是否正確,在函數(shù)內(nèi)部的變量初始化區(qū)域,嚴格按照上述規(guī)定檢查;對于數(shù)組的初始化,必須采用 INITIALIZE 數(shù)組 TO NULL,不要采用循環(huán)一條條記錄進行初始化,除非需要針對數(shù)組記錄中的某個字段特殊賦值;比如:定義數(shù)組變量 la_prptplan ARRAY20 OF RECORD LIKE PrpTplan.*, 初始化時直接用 INITIALIZE la_prptplan TO NU

17、LL,不要使用:FOR i=1 TO 20INITIALIZE la_prptplani.* TO NULL END FOR對象化后的系統(tǒng)不允許使用模塊變量;終端版系統(tǒng)應優(yōu)化算法,盡量避免使用數(shù)組,不允許使用大數(shù)組;FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 7變量定義及初始化舉例如下:FUNCTION pub_BLPrpCaddress_Ini( )DEFINE lr_prpcaddress RECORD LIKE PrpCaddress.*, la_prpcaddress ARRAY20 OF RECORD LIKE PrpCaddress.*, lv_prpcad

18、dress_count SMALLINT,lv_result INTEGER #/-INIT #-變量初始化 INITIALIZE lr_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.21.2 注釋規(guī)范注釋規(guī)范良好的程序注釋有助于幫助我們了解程序的實現(xiàn),也可以對程序文件進行

19、一定量統(tǒng)計分析。約定如下:程序注釋是程序文件的一個重要組成部分,中英文注釋均可(考慮到各種平臺對中文的支持,建議用英文);INFORMIX-4GL 的注釋有三種:#、-、。分單行注釋和多行注釋兩種。單行注釋以-開頭。多行注釋以#開頭。除了臨時的注釋(調(diào)試程序使用),嚴禁使用。為了對 4GL 文件進行一定量的統(tǒng)計分析,規(guī)范代碼的編寫質量。制定了一組注釋框架來對 4GL 程序進行說明。規(guī)則如下:FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 81.2.1程序文件部分的注釋程序文件頭的注釋說明主要包括該程序文件包含類的名稱(CLASS)、類的功能描述(DESC)、文件創(chuàng)建作者(A

20、UTHOR)、創(chuàng)建日期(CREATEDATE)、及更新列表(MODIFYLIST)等信息。還包括類的成員包括公有和私有。舉例:#/-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ù)計算保費#-/說明:MODIFYLIST 中#后一個空格,NAME,DATE,REASON 和其內(nèi)容都要左對齊,NAME 寬8 列,其后一個空格,

21、然后是 DATE 寬 10 列,其后一個空格,然后是 REASON,如果 REASON需要折行,另起一行,仍和 REASON 對齊#/-PUBLICPROPERTIESGLOBALDEFINE gr_prpcmain RECORD LIKE prpcmain.*END GLOBAL#-/#/-PRIVATEPROPERTIESDEFINE pr_prpcmainRECORD LIKE PrpCmain.*DEFINE pv_proposalno LIKE PprpTmain.ProposalNo-*投保單號#-/FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 91.2.2函

22、數(shù)部分的注釋每一函數(shù)(或過程)都應包括該函數(shù)(或過程)的注釋部分包括一個 METHOD 框架。描述實現(xiàn)的功能簡介、輸出參數(shù)說明等方面的描述。在函數(shù)內(nèi)部變量定義前包括該函數(shù) RETURN 的框架,以/-RETURN 開頭和-/結尾,對于無返回值和有返回值的 RETURN 描述規(guī)則如下:1 1、無返回值的、無返回值的 RETURNRETURN 書寫規(guī)則:書寫規(guī)則:#/-RETURN# # VARIABLEVARIABLE DEFINEDEFINE REMARKREMARK#-/#-/2 2、有返回值的、有返回值的 RETURNRETURN 書寫規(guī)則:書寫規(guī)則:#/-RETURN# # VARIAB

23、LEVARIABLE DEFINEDEFINE REMARKREMARK# # lv_result smallint 返回的 sql 值# # lr_prpcmain PrpCmain.* 數(shù)據(jù)庫表記錄 # # lv_amountlv_amount DECIMAL(16,2)DECIMAL(16,2)# # lv_policyno PrpCmain.PolicyNo 保單號# # lr_sumpolicy SELFDEFINESELFDEFINE# # NONE TRUE/FALSE # # NONE -1/0/100 失敗/成功/沒找到#-/#-/3 3、有返回值且注釋超過一行的、有返回值且

24、注釋超過一行的 RETURNRETURN 書寫規(guī)則:書寫規(guī)則:#/-RETURN# # VARIABLEVARIABLE DEFINEDEFINE REMARKREMARK# # lv_result smallint 返回的 sql 值# # 0 0:成功;:成功;1 1 失敗失敗# # lr_prpcmain PrpCmain.* 數(shù)據(jù)庫表記錄FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 10# # 對應保單主表對應保單主表# # lv_amountlv_amount DECIMAL(16,2)DECIMAL(16,2)# # lv_policyno PrpCmain.

25、PolicyNo 保單號# # lr_sumpolicy SELFDEFINESELFDEFINE# # NONE TRUE/FALSE # # NONE -1/0/100 失敗/成功/沒找到#-/#-/說明:(1)#-RETURN、VARIABLE、DEFINE、REMARK 所在行為固定格式;(2)每行只能注釋一個返回值,返回值注釋的先后與函數(shù)實際返回順序一致;(3)VARIABLEVARIABLE、DEFINEDEFINE、REMARKREMARK和其內(nèi)容要左對齊;(4)對于對于 REMARKREMARK 一行不夠的話,在注釋后補反斜杠一行不夠的話,在注釋后補反斜杠” ”, ,另起一行,

26、和上一行的注釋內(nèi)容左對齊。另起一行,和上一行的注釋內(nèi)容左對齊。(5)DEFINE 節(jié)約定:對于 LIKE 型的變量,該處寫出表名.*,或者表名.字段名,如:PrpCmain.*,PrpCmain.PolicyNo;對于 DECIMAL 類型,必須寫出精度,如 DECIMAL(16,2)。(6)如果變量為自定義的結構,在DEFINEDEFINE 行填寫SELFDEFINESELFDEFINE;(7)如果返回值不是變量,VARIABLEVARIABLE項固定為 NONE,DEFINEDEFINE項羅列出返回數(shù)值,用“/”分隔;(8)該規(guī)則位置放在函數(shù)中的 PARAMETER 節(jié)之前。舉例如下:#/

27、-METHOD#DESC 根據(jù)主鍵獲取 PrpCfee 表的記錄#-/FUNCTION pub_DBPrpCfee_GetInfo(iv_policyno,iv_currency)#/-RETURN# VARIABLE DEFINE REMARK# lr_PrpCfee.* PrpCfee.* 保額保費記錄# lv_ret SMALLINT #-/#/-PARAMETERDEFINE iv_policyno LIKE PrpCfee.policynoDEFINE iv_currency LIKE PrpCfee.currency#-/FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有

28、限公司 11在函數(shù)內(nèi)部變量定義的同時包括一個 PARAMETER 框架,以/-PARAMETER 開頭和-/結尾,用來說明函數(shù)的入?yún)⒓叭雲(yún)⒌念愋汀Ee例:#/-METHOD#DESC 函數(shù)描述#RETURN SMALLINT -函數(shù)返回值# INTEGER -其他返回值#-/FUNCTION pub_DBPrpCmain_Insert(iv_prpcmain.*)#/-PARAMETER-PrpCmain 表紀錄DEFINE iv_cmain RECORD LIKE PrpCmain.*#-/DEFINE lv_result INTEGER. . .END FUNCTION1.2.3函數(shù)(過程)

29、程序的增、刪、改的注釋說明約定程序的這幾種操作包含在注釋關鍵字 MODIFY 中。注釋以”-*MODIFY”開頭,其中MODIFY 與”*”之間不能有空格,框架中包括注釋人姓名(必須),操作DELETE/ADD/UPDATE(必須),操作時間(必須),地點(必須),必要時說明操作原因。舉例:(空行)-*MODIFY BEGIN Sunribo,DELETE,2002-03-15,beijing,程序邏輯錯誤 (空行)#FUNCTION pub_DBPrpDkind_Update(ir_prpdkind)FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 12#.#.#END F

30、UNCTION(空行)-*MODIFY END Sunribo,DELETE,2002-03-15,beijing (空行)記住下列幾點:程序增、刪、改的注釋應該按時整理。無用的注釋及時清理掉。所有的變量定義之后都要加上能夠說明其用途的注釋。1.2.4函數(shù)體內(nèi)部的代碼段修改注釋在函數(shù)中修改代碼段應在所修改代碼段首尾處增加注釋,在結尾處應將縮添加起首處注釋的修改人、修改信息和關鍵字等信息重復一次,并將起首處的 BEGIN 改為結束標志 END 所添加注釋應與所注釋代碼段保持同樣縮進,并與所注釋代碼段間上下各保留一空行以便于瀏覽。此外,在進行 BUG 修改或補充功能開發(fā)時應將 BUG 編號或功能編

31、號書寫在注釋中,作為與功能相關的標識。舉例:(空行)-*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-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 131.2.5函數(shù)體內(nèi)部的代碼段說明約定在程序中開始大的代碼段之前,要加入特殊的注釋,用于標記說明下面代碼段的功能。此類注

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

33、即不能產(chǎn)生折行,如果邏輯行長度超過 80,除了函數(shù)定義或者調(diào)用語句根據(jù)函參折行對齊、DEFINE 語句根據(jù)變量折行對齊以外,其他情況一律將超長部分另起一行空 4 格后書寫;成對出現(xiàn)的語句起始和結束關鍵字必須左對齊書寫。UI-BL-DB 三層允許前端調(diào)用后端(UIBL,UIDB,BLDB),不允許出現(xiàn)后端反調(diào)前端的情況;舉例:IF THENFI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 14. . . END IFWHILE conditiondo END WHILEFUNCTION abc(). . . END FUNCTION1.3.2保留字引用規(guī)則編碼中引用的所有保留字

34、均必須大寫;程序注釋提供的關鍵字:AUTHOR CREATEDATE DESC PARAMETER RETURN PUBLICPROPERTIES PRIVATEPROPERTIES CLASS MODIFY MODIFYLISTINFORMIX-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

35、語句LET 語句一行能寫下就寫在一行,邏輯行長度大于 80 時按照邏輯表達式拆分后, 另起一行空 4 格后書寫。舉例:LET lv_where_part = a.UserName = e.UserCode AND , e.GroupNo = d.GroupNo AND , e.ModelNo = , lr_wflog.ModelNo, AND ,FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 15 e.NodeNo = , lr_wflog.NodeNo1.3.4IF 語句IF 之后的邏輯表達式一行能寫下就寫在一行,邏輯行長度大于 80 時按照邏輯表達式拆分后,另起一行空

36、4 格后書寫。對于 IF 加上之后的條件如果足夠在一行的話,THEN 跟在后面,否則單獨占一行。所有的邏輯運算符(AND,OR)一律放在每行開始。禁止使用 ELSE IF 語句,可以采用 CASE 語句改寫。舉例:IF lr_prptmain.ProposalNo IS NULL THENERROR 該字段不允許為空,請重新輸入!END IFIF lr_prptmain.ProposalNo IS NULLOR LENGTH(lr_prptmain.ProposalNo) = 0 THENERROR 該字段不允許為空,請重新輸入!NEXT FIELD ProposalNoELSE。END IF另外,控制分支結構較為復雜時,用 CASE 語句代替一系列 IF 語句,必要的時候另外組織函數(shù),寧可犧牲一些資源,也要保持程序文件的清晰程度。1.3.5DEFINE 語句DEFINE 語句必須和 FUNCTION 對齊書寫。每個函數(shù)的入?yún)⒍家獑为毷褂靡粋€ DEFINE 語句。FI-PICCALL-SD-設計原則及開發(fā)規(guī)范中科軟件股份有限公司 16函數(shù)體內(nèi)用到的變量定義時按照變量對齊。變量類型說明的對齊方式不做要求。1.3.6CALL 語句CALL 語句的書寫原則是:如果一行能寫下,就不將 RETURNING 語句折行書寫,如果寫不下,將 RE

溫馨提示

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

評論

0/150

提交評論