Fw:Notes程式開發規範

HighCache發表於2009-09-17

1. 表單的規則

1.1. 表單命名規則

表單命名規範:必須有中文名和英文別名,其中英文別名命名格式為:frm + 其他字元。

必須填寫表單的別名.別名的可以用英文單片語合或漢語拼音.如果用拼音,在能夠容忍的長度內,儘量用全拼。

通用表單的英文別名命名格式為:$$ + 其他字元,一般不需要自己建立。

1.2. 表單的Js Header

表單的Js Header中的函式應儘可能的少。只保留僅與本表單相關的特殊的Js函式。

通用的Js函式應放到資源資料庫中。

1.3. 表單隱藏域設計

表單中的隱藏域全部放在一起,以表格的形式展現,並且放在表單的上方,如:

透過

……
的方式隱藏內容,不採用Domino本身的隱藏方式。

通用的隱藏域,如文件UNID,不能在表單中單獨建立這些域,如是通用的,則在資源庫中建立,表單再引入,方便日後管理和維護。

隱藏域用到多少建立多少,沒用到的隱藏域一個也不用放在表單中,隱藏域必須包含文字說明。

為了介面直觀明瞭,隱藏的內容全部採用紅色標出來。

1.4. 表單中的按鈕設計

表單按鈕採用HTML格式,每個按鈕佔用一列,方便日後的統一修改和維護。

1.5. 表單中的顯示內容

介面內容儘可能不用HTML程式碼方式設計,多采用Domino本身的設計方式,表格寬度選取“按視窗大小調整”,而不是“按固定寬度”,然後在表格外套一大表格,程式碼如:

border=0 align="center">
……
,如上圖所示。這樣做的目的是表格寬度由計算文字控制,這樣調整計算文字即可調整整個表格的大小。

正文內容和附件都是子表單,從資源庫中引入,不能重新建立,減少日後的維護。

1.6. 表單的OnLoad

Onload中的程式碼要儘可能的簡短,不要寫具體的實現程式碼,只寫被呼叫的函式體即可。例如:

//開啟前設定相關狀態域: ondocload();

1.7. 表單代理的呼叫

最好採用這樣的形式:document.all.item(‘savedoc’).click。這樣做的好處在於代理可以取得表單上所有域的內容,呼叫代理之前可以進行js前臺判斷。

如上邊方法不能實現,則根據自己擅長的方式處理。

2. 域的規則

命名規則:可以用英文單片語合或漢語拼音.如果用拼音,在能夠容忍的長度內,儘量用全拼,如收文編號:swbh或者swNumber。

表單保留域:表單中有些域必須統一,如標題(Subject),正文(Body)。

3. 檢視的規則

隱藏檢視命名規範:必須有中文名和英文別名,而且必須有括號括起,中文名命名為 $$ + 中文名稱,英文別名命名為 $$vw + 英文字元。如 ($$模組配置) $$vwModelConfig。

顯示檢視命名規範:必須有中文名和英文別名,英文別名命名為 vw + 英文字元。如: 模組配置 vwModelConfig。

檢視列中列標題和內容全部靠左對齊,沒有特殊的情況下,只有一列有連結,其他列只是顯示資訊;每列最好有排序功能。

刪除列放在檢視的第一列。

檢視的索引:“重新整理索引”屬性一般選為:“自動重新整理”;“廢棄索引”屬性一般選為:“不廢棄”。對於“使用者經常訪問,檢視中文件經常變動”的檢視,這種設定有助於提高檢視的開啟速度。

4. 代理的規則

代理命名規範:ag + 函式名,如儲存文件agSaveDoc,代理中不編寫具體實現程式碼,只是呼叫一個函式,如 call SaveDoc。函式存放在Script庫中,並且函式名稱必須是代理名字去掉ag後的函式名,即保持名字的同步。

有幾個通用代理:agToExcelPrint(列印)、ViewQueryOpenDefault(檢視模板表單開啟時呼叫)、wDeleteDocument(刪除文件)。

5. Script庫的規則

每個資料庫中一般包括3個Script庫,ErrorLog(出錯處理),MainLib(代理呼叫的各個函式),Common(通用函式),特別說一下,Common庫以資源庫中的為基準,如設計過程中,出現通用的函式,則先將函式放到資源庫的Common庫中,然後在複製的自己的庫,即一定保持資源庫中的Common庫的函式是最新最全的。

為了程式碼的規範,特作以下設定:

當前會話物件命名:session

當前資料庫物件:db,其他的資料庫:db+ 英文字元.

當前文件物件: note或者doc。其他的文件 doc+英文字元。

6. 註釋規則

每個函式前邊必須包含一段註釋,包括函式功能、引數說明、建立日誌等。程式碼段內,必須有足夠的註釋,原則上根據每個子功能劃分,即函式到底做了哪些事情?把你的回答寫成註釋即可。

7. 錯誤處理規則

每個函式必須具備出錯處理機制,錯誤內容寫入系統出錯日誌庫中。出錯函式呼叫已經寫好,不用自個編寫。

原理:使用LotusScript的“on error goto lable”,當發生錯誤時,跳轉到”lable”指定的行下面,然後由我們自己來處理錯誤,我們提供了一個錯誤處理類“ErrorLog”。該類中的方法“Sub writeErrorToLog(db As notesdatabase,Byval Errmsg As String,Byval Errline As String)”用於處理錯誤,該方法的功能是記錄出錯資訊,並寫到出錯日誌庫中。

使用方法:

在函式的開始新增

On Error Goto er1 ‘當發生錯誤時轉到”er1:”行處寫:

Call writeErrorToLog(session.CurrentDatabase,Cstr(Error()),Cstr(Erl()))

8. LotusScript程式碼規則

8.1. 函式的長度

函式中的程式碼行數原則上不要多於100行。

8.2. 函式的命名

讓我們看一些錯誤的命名:

PersonLog ‘更新人員日誌

PeopleOut ‘列印人員外出的資訊

相對比較正確的應該是這樣

UpdatePersonLog ‘更新人員日誌

PrintPeopleOut ‘列印人員外出的資訊

8.3. 引數的規則

引數名字要有意義

例如:

sub SetValue(width, height) ’ 良好的風格

sub SetValue(x,y)’不好的風格

例如編寫字串複製函式StringCopy,它有兩個引數。如果把引數名字起為str1和str2,例如function StringCopy( str1, str2)。那麼我們很難搞清楚究竟是把str1複製到str2中,還是剛好倒過來。可以把引數名字起得更有意義,如叫strSource和strDestination。這樣從名字上就可以看出應該把strSource複製到strDestination。

如果輸入引數以值傳遞的方式傳遞 ,則宜改用“ByVal argument”方式來傳遞,這樣可以防止作為引數的變數值被修改,同時又可以省去臨時變數的構造過程,從而提高效率。

避免函式有太多的引數,引數個數儘量控制在5個以內。

8.4. 函式的返回值

要書寫函式的返回值型別

函式的返回值要與函式的名字相配合

函式的正常返回值和錯誤返回值的區分

函式儘量不要透過引數傳遞函式的返回值

8.5. 函式的職責

函式的職責要單一,如果覺得職責的“粒度”不好把握,可以先用自然語言寫出總控模組(可以作為註釋),針對自然語言的每句話即可作為一個函式。

8.6. 變數的規則

變數的定義後面要書寫該變數的註釋

變數的作用範圍儘量少用全域性,作用範圍越小越好

一組變數作用相近時,可將這組變數集中在一起定義,並且對該組變數作個說明,比如下面分為兩組

Private docApp As notesdocument '應用主文件

Private dbApp As notesdatabase '應用資料庫


本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/tangyunning/archive/2009/08/04/4409031.aspx

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/184309/viewspace-1027068/,如需轉載,請註明出處,否則將追究法律責任。

相關文章