技術(shù)支持程序員程序書寫規(guī)范
一、導(dǎo)言
BSHIS的軟件客戶化工作是一個龐大的系統(tǒng)工程。客戶化工作的好壞,軟件質(zhì)量的好壞直接影響著工程實施和工程進度。為了保證技術(shù)支持部程序員編寫程序的質(zhì)量和技術(shù)支持的質(zhì)量,特制定以下技術(shù)規(guī)范和代碼書寫注意事項。
此規(guī)范是個初稿,在實際應(yīng)用中,尚需要不斷完善和調(diào)整。另外,請各序員在實際操作過程中,提出自己的看法和建設(shè)性的意見和建議,以使規(guī)范不斷完善。
二、系統(tǒng)公用模塊修改
1、 support.pbl和hispublic.pbl要求各個子系統(tǒng)版本一致
2、 若發(fā)現(xiàn)標(biāo)準(zhǔn)版本錯誤,分類別處理
若是比較簡單的錯誤,很容易修改的,請自行修改,并及時將修改資料交到部門領(lǐng)導(dǎo),到時候統(tǒng)一提交到質(zhì)量部,以便及時通報各個技術(shù)人員。若是牽涉到很復(fù)雜的或者是有很大的業(yè)務(wù)調(diào)整,請?zhí)峤活I(lǐng)導(dǎo)審批后再進行修改。
:如:新增系統(tǒng)公用功能,雖然是可以放在以上兩個PBL,但為了不致被覆蓋,最好還是自己新建PBL的好。以上PBL中的代碼也不要去擅自去調(diào)整。
3、請不要將客戶化的內(nèi)容放在support.pbl和hispublic.pbl
4、若一定要對公用模塊要進行客戶化修改,可從其繼承,再作修改
DATAWINDOW有修改的話,請在繼承的模塊中引用新的從原來的復(fù)制下來再進行修改過的DATAWINDOW,而不要直接去修改原來的DATAWINDOW。
三、程序代碼編制規(guī)范
請參考產(chǎn)品質(zhì)量部的《程序編制規(guī)范.doc》
下面著重講講一些經(jīng)常在工作中出現(xiàn)的不規(guī)范的情況和應(yīng)該注意的地方:
1、 變量命名規(guī)范
典型的不規(guī)范的情況有:
如:局部變量命名為:integer gl_ksdm
實例變量命名為:integer ll_ksdm
我們命名原則的指定,宗旨是看到這個變量就應(yīng)該知道是什么變量(全局、局部、實例、共享),是什么類型。良好的變量命名習(xí)慣可以使程序閱讀起來很輕松,也可提高工作效率和錯誤的理解導(dǎo)致的工作不便。
變量的類型
對象 類型 前綴 備注
整型數(shù)字 Int I_ 界面中右對齊
Long L_ 界面中右對齊
浮點型數(shù)字 Double D_ 界面中右對齊
Decimal Dc_ 界面中右對齊
日期 Date D_ 界面中左對齊或居中
格式一般為:
yyyy.mm.dd
Datetime Dt_ Yyyy.mm.dd hh:mm:ss
Time T_ HH:MM:SS
類實例 可視 Vu_
非可視 U_
字符串 String S_ 界面中左對齊或居中
結(jié)構(gòu)體 Struct Str_
布爾型 Boolean B_ 居中
變量的范圍:
前綴 含義
G 全局
S 共享
I 實例
L 局部
A 參數(shù)
變量命名
變量范圍+變量類型+‘_’+變量名稱
例:全局的日期為Gd_today,門診號參數(shù)As_mzhm
注:BSHIS2.2公共全局類名:Uo_support::U_supporclass
BSHIS2.2全局參數(shù)結(jié)構(gòu)名:Base_info::Base_info
BSHIS2.2窗口數(shù)據(jù)傳輸變量結(jié)構(gòu):S_Exchange::S_Exchange
2、窗口和窗口相關(guān)的DATAWINDOW命名規(guī)范
一般將窗口相關(guān)的DATAWINDOW,具有和窗口相同的前綴。
這樣做的好處是:復(fù)制模塊或者整理和查看程序的時候很容易
如:w_yk_jchz (藥庫系統(tǒng)的進出匯總模塊)
相關(guān)的datawindow可命名為 d_yk_jchz
其他相關(guān)的模塊和DATAWINDOW都命名為包含 _yk_jchz_ 做為前綴的名字
目前存在亂命名的情況,嚴重的甚至出現(xiàn)同個系統(tǒng)的不同PBL出現(xiàn)名字重復(fù)。
有時候程序數(shù)據(jù)檢索錯誤,就是這個原因?qū)е碌模袝r候我們還可能花很大的力氣去找原因。
如:his2.1系統(tǒng)藥房系統(tǒng)中 d_ypxx 就出現(xiàn)過同名異構(gòu)的DATAWINDOW
3、函數(shù)的命名規(guī)范
(1)公用全局函數(shù):
GF_XXXX(GF+_+函數(shù)名稱)
(2)子系統(tǒng)使用的公共函數(shù):
GF_XX_XXXX(GF+_+系統(tǒng)簡稱+_+函數(shù)名稱)
(3)窗口函數(shù):
WF_XXXX(WF+_+函數(shù)名稱)
(4)類成員函數(shù):
Object.XXXX(函數(shù)名稱)
Object.of_XXXX(被其他對象和模塊調(diào)用)
Object.uf_XXXX(內(nèi)部調(diào)用)
(5)全局擴展函數(shù):
GE_XXXX(GE+_+函數(shù)名稱)
(6)局部擴展函數(shù):
LE_XXXX(LE+_+函數(shù)名稱)
|
|