Domino Web開發規則
Domino Web開發規則
Domino Web開發規則之一:Notes命名規範
所有的設計元素的命名都分成兩部分,名稱和別名,規定名稱用中文命名,別名用英文,別名儘量使用簡寫,以WEB開發時不會產生較長的URL為前提,提高HTTP Request的響應速度。中文名稱前面加上字母A到Y用於組織分類和排序。表單和檢視的別名統一在前面加一個空格,代理統一不加空格,其目的是保證在design下看起來對齊一致。
1.設計元素
元素 |
規則 |
說明 |
幀結構集 |
名稱:中文名稱 |
樣例: |
幀 |
名稱:中文名稱 |
因為幀只存在於幀結構集中,所以不需要用字母來組織分類。 |
表單 |
名稱:中文名稱 |
樣例: |
檢視 |
顯示檢視命名 名稱:中文名稱 別名:"vw"+英文["By"+排序關鍵字描述] 程式檢視命名 名稱:"("+中文名稱+")" 別名:"vw"+英文["By"+排序關鍵字描述]
|
檢視的命名與表單是一致的,檢視中文名的組織字母與該表單一致,檢視別名也與表單的別名的英文部分保持一致。
比如如果表單名為:申請表單|fmApply,那麼對應的檢視名稱應該是"申請檢視|vwApply"。如果對於一個表單可能有不止一個檢視,經常用的情況是分類檢視,對於此類檢視,命名規範是名稱:中文名稱,別名:"vw"+英文+"By"+類別,
樣例: 申請\按日期|vwApplyByDate 申請\按類別|vwApplyByType (申請\按文件建立日期)|vwApplyByCreateDate
注:對於檢視的列,如果沒有強制性的排序要求,請確保所有的文件按建立時間降序排列,這樣新文件才會在最前面顯示(這個問題一定要注意)。
檢視一般分為顯示用檢視和程式用檢視。在開發時,公式或程式不要在顯示用檢視中進行操作,如查詢,取值。應另建立程式檢視提供公式或程式使用。這樣不會造成檢視設計發生改變時而影響公式或程式執行。 |
代理 |
名稱:中文名稱 |
代理的命名也要與表單保持一致,其名稱的中文組織字母與表單一樣,在表單中經常要使用到QueryOpenAgent和QuerySaveAgent,對應的代理應該是與其一致,比如表單"申請表單|fmApply",那麼對應此表單的QueryOpenAgent應該是"申請開啟代理|agApplyOpen",對應此表單的QuerySaveAgent應該是"申請儲存代理|agApplySave",對於非上述兩種情況的代理,不要加open或者save,儘量在代描備註中進行描述此代理作用。 對於所有的代理,如果不是真正意義的定時代理(需要伺服器定時來執行),不要把代理屬性設定成“定時”,如果設定成了定時可能存在一定的風險,並且在不同的系統開啟進行編輯儲存時,代理會自動去查詢執行的伺服器導致design半天不反應。
注:定時代理在多伺服器佈署時,如果代理所在資料庫在多臺伺服器上存在複本,請指定定時代理執行的伺服器,以免造成文件複製衝突問題。 |
子表單 |
名稱:中文名稱 只用於編輯類子表單 |
如果只用於編輯類子表單,別名應該為"sfm"+英文簡稱+"Edit"; |
域 |
命名規範:字首+英文,其中的英文如果資料字典有,則必須來自於資料字典,資料字典中沒有的,可自行命名,但需要遵守資料字典中的命名要求。 除了保留域,規範如下:
單值文字型別:St+英文,樣例:StTopic 多值文字型別:Mt++英文,樣例:MtAuthor 單值數字型別:Sn+英文,樣例:SnMoney 多值數字型別:Mn+英文,樣例:MnMoney 單值日期型別:Sd+英文,樣例:SdApply 多值日期型別:Md+英文,樣例:MdApply RTF型別:Rtf+英文,樣例:RtfRemark
注:和sap整合的域值可以參考sap參數列的定義,可不嚴格遵守上述域值定義規則。 | |
角色 |
角色的命名限制:不能超過10個英文字母。 不要用中文命名。 不要用過多的角色,正常情況下一個庫5個以下的角色,刪除無用的角色常用角色:Manager、Normal、AllReader |
Domino Web開發規則之二:DOMINO與開發相關的管理規範
1.伺服器HTTP優化設定
· 調整活動執行緒數,HTTP伺服器可以同時處理的請求數,而非連線數、會話數
· 併發執行Web代理
· HTTP執行緒排隊方式的調優
· JavaMaxHeapSize的設定
· 建議升級至6.5.6/7.0.2以上版本,就可以使用下面引數來優化HTTP私有記憶體的使用。
INotesThreadMemoryGivePoolsBack=1
· HTTP編輯輸出使用utf-8,這是為了在多編碼環境中時避免客戶機與伺服器環境不一致造成程式編碼問題。
2.資料庫ACL許可權控制
建議ACL許可權預設為
條目 |
型別 |
許可權 |
Anonymous |
未指定 |
不可存取 |
-Default- |
未指定 |
編輯者 建立文件許可權 |
LocalDomainAdmins |
個人群組 |
管理者 建立文件許可權 |
LocalDomainServers |
伺服器群組 |
管理者 建立文件許可權 |
OtherDomainServers |
伺服器群組 |
不可存取 |
<當前資料庫所在伺服器名稱> |
管理伺服器 |
管理者 建立文件許可權 |
3.WEB應用資料庫屬性設定
啟用“不維護未讀文件標誌”
啟用“優化文件表格對映”
啟用“取消事務日置”(如果佈署伺服器的環境啟用了事務日誌,按當前情況而定)
啟用“不支援答覆文件層級”(如果此資料庫使用了答覆文件,而不啟用此項)
啟用“允許更多的域”
啟用“允許壓縮資料庫設計”
修改$UpdateBy域條目限制,建議值為5
修改$Revisions域條目限制,建議值為5
具體設定如下圖:
Domino Web開發規則之三:以資源管理庫為中心開發
資源管理資料庫以管理公用設計元素為主,作為應用系統的框架提供給應用模組開發使用。主要有以下功能:
•管理和存放產品類模組(包括核心和標準應用)所需要的HTML模板/JS/CSS/XML/XSL/圖片/控制元件等。如:公共JS函式庫、皮膚所需的CSS和圖片以及各模組公共使用的圖片或圖示等;
•存放公共子表單/Web公共元件/WEB應用介面/公共LS類庫,如:公用子表單、組織機構選擇人員對話方塊以及核心LS類庫或JAVA類庫等;
•管理資料字典,統一維護,減化重複開發工作;如:下拉選單框中值的選擇;
基於此方法管理,能夠
•有助於開發團隊間共享專案成果,
•有助於從各個專案積累/封裝出優秀程式碼或元件提供以後專案使用,
1.Web元素管理
使用文件管理WEB元素如:HTML模板/JS/CSS/XML/XSL/圖片/控制元件,在產品開發或專案實施時呼叫。這樣有助於應用開發時的變更/維護。如下圖:
JS
CSS
圖片/控制元件/FLASH元件/HTML模板
對於產品核心類的圖示或通用的小圖示(不經常修改的)而存放於圖片資源中,供產品和專案開發時使用,如下圖:
2.分類字典管理
統一由資源庫管理分類字典,可以統一進行維護,不必再為每個應用模組的需要而定製簡要表,而且各應用間可共享分類設定。方式如下圖:
3.Web元件
統一由資源庫管理封裝公用元件,供應用模組呼叫。如:公用從檢視刪除指定文件的代理、AJAX方式的DBLookup代理、組織機構人員選擇框、日期選擇器、WORD控制元件JS片斷、意見填寫對話方塊等等。
由於每個應用模組都使用在資源庫的WEB元件,當WEB元件功能修改或升級時,只需要修改資源庫中的WEB元件,而不需要對每個庫進行修改。這樣有利於版本的維護和功能的更新,有助於團隊提高開發效率。
4.公共子表單(sfmCommandFields)
域名 |
預設值公式 |
描述 |
Notes部分 | ||
RF_ServerName |
@ServerName |
型別:姓名,顯示時計算 |
RF_User |
@UserName |
型別:姓名,顯示時計算 |
RF_UserCN |
tmpName:=@NameLookup([NoUpdate];RF_User;"displayname"); @If(tmpName=""|@IsError(tmpName);@Name([CN]; RF_User);tmpName) |
型別:姓名,顯示時計算 如果佈署時使用了等價名時可以使用@UserName(1)代替,使用@NameLookup是DOMINO整合了ADS或LDAP時使用。此預設公式可按情況而定 |
RF_DocStatus |
@IsDocBeingEdited |
型別:姓名,顯示時計算 |
RF_CreateUser |
@UserName |
型別:姓名,建立時計算 |
RF_CreatedTime |
@Created |
型別:日期,建立時計算 |
RF_ResFilePath |
"VResource.nsf" |
型別:文字,顯示時計算 |
RF_OrgFilePath |
"VOrgManage.nsf" |
型別:文字,顯示時計算 |
RF_PortalFilePath |
"VPortal.nsf" |
型別:文字,顯示時計算 |
RF_WfFilePath |
"VWfManage.nsf" |
型別:文字,顯示時計算 |
RF_DBPath |
@ReplaceSubstring(@Subset(@DbName; -1);"\\";"/") |
型別:文字,顯示時計算 |
RF_FilePath |
@LeftBack(RF_DBPath;"/") |
型別:文字,顯示時計算 |
RF_FileName |
@Right(DF_DBPath;"/") |
型別:文字,顯示時計算 |
RF_DBID |
@LowerCase(@ReplaceSubstring(@ReplicaID;":";"")) |
型別:文字,顯示時計算 注:只支援R6以上版本,如果是R5版本可使用計算RF_DBPath |
RF_ClientType |
@ClientType |
型別:文字,顯示時計算 |
RF_UNID |
@Text(@DocumentUniqueID) |
型別:文字,顯示時計算 |
Web部分 | ||
RF_ResURL |
"/"+RF_ResFilePath+"/" |
型別:文字,顯示時計算 |
RF_DBURL |
"/"+RF_DBPath+"/" |
型別:文字,顯示時計算 |
RF_DocURL |
RF_DBURL +"0/"+RF_UNID+"?opendocument" |
型別:文字,顯示時計算 |
Query_String_Decoded |
Query_String_Decoded |
型別:文字,顯示時計算 |
Server_name |
Server_name |
型別:文字,顯示時計算 |
HTTP_Referer |
HTTP_Referer |
型別:文字,顯示時計算 |
Remote_Addr |
Remote_Addr |
型別:文字,顯示時計算 |
REMOTE_USER |
REMOTE_USER |
型別:文字,顯示時計算 |
Path_Info |
Path_Info |
型別:文字,顯示時計算 |
此子表單做為表單必需子表單,提供這些域供JS、公式和LS方便使用。在開發時將此子表單拷貝至所需要開發的資料庫。
5.公共函式庫(LotusScript庫:LSCore)
此LS存放公共函式,此類函式或過程與應用模組無關(包括產品應用/專案應用模組),完成從產品核心程式碼角度上考慮,彌補LotusScript功能上不足之處,以產品核心為中心積累公共函式,供產品應用和專案應用使用,做為程式碼基礎呼叫的統一介面。
存放在此類的函式或過程由產品部統一規劃及嚴格控制。
封裝完成後,將所有程式碼引出至文字檔案中,使用%include引用進行預編譯。
6.工作流函式庫(LotusScript庫:LSWorkFlow)
此LS存放處理工作流相關函式和過程,此類函式或過程被相關聯的代理呼叫,完成工作流引擎上的處理。供產品應用和專案應用使用,做為程式碼呼叫工作流功能的統一介面。
此函式庫以LSCore為基礎。在構建時使用LSCore,即在Options中加入
Use “LSCore”
存放在此類的函式或過程由產品部統一規劃及嚴格控制。
封裝完成後,將所有程式碼引出至文字檔案中,使用%include引用進行預編譯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24998103/viewspace-695431/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開發 eslint 規則EsLint
- 開發60條規則
- 【java規則引擎】java規則引擎搭建開發環境Java開發環境
- Java遊戲開發規則Java遊戲開發
- web前端開發規範Web前端
- Web 開發規範 — WSGIWeb
- Web開發基本準則 , Web訪問安全Web
- Web開發的七個原則Web
- 谷歌 Web 開發最佳實踐手冊(4.1.8):PageSpeed 規則與建議谷歌Web
- SCRUM敏捷開發規則一欄Scrum敏捷
- Domino整合Portlet開發---安裝和配置Domino 6.5伺服器伺服器
- web前端中的命名規則Web前端
- 規則引擎開發經驗分享 - reddit
- web前端開發規範總結Web前端
- Web前端開發規範手冊Web前端
- Web應用開發的七項原則Web
- RPA專案之開發規則篇
- 資料庫SQL開發命名規則 (轉)資料庫SQL
- Web安全案例與開發規範Web
- web前端對檔案的引用規則Web前端
- Uniswap質押挖礦系統開發模式規則模式
- 軟體開發程式設計規範及原則程式設計
- .net core Web API引數繫結規則WebAPI
- Web安全開發規範手冊V1.0Web
- Web 安全開發規範手冊 V1.0Web
- Web 前端開發之js正規表示式用法Web前端JS
- 不可小覷的Web開發編碼規範Web
- 富Web應用開發的七大原則Web
- imtoken/tp/metamask小狐狸錢包系統開發(開發規則及原始碼)原始碼
- SQL稽核 | SQLE 如何開發一條自定義的規則SQL
- 區塊鏈主鏈開發規則及原始碼示例區塊鏈原始碼
- 用規則引擎開發靈活配置的業務系統
- 利用Domino V8新特性開發Mashup應用
- 利用 Domino V8 新特性開發 Mashup 應用
- Lotus Notes/Domino 環境下的 OpenSocial 開發
- web前端開發編碼規範及效能優化Web前端優化
- 開發原則。
- MySQL觸發器的使用規則MySql觸發器