posts - 21,  comments - 6,  trackbacks - 0

          今天進入可開發前的準備階段。在開發項目前,要求每位開發小組成員都必須先閱讀以下約定,嚴格按以下約定來進行開發。

          系統框架

          ·系統總框架采用SUN J2EE框架,使用JAVA/XML技術和組件技術, 基于Application server開發。

          ·項目中的程序必須嚴格按J2EE1.3規范來編碼,EJB建議采用2.0規范編碼,盡可能多使用EJB 模式設計,參考技術文檔如下:

          1.《J2EE Tutorial》

          j2ee-1_3-doc-tutorial-draft5.pdf

          2.《JBoss 3.0Quick Start Guide》

          3.《EJB Design Patterns》

          開發環境

          ·測試用Application server采用JAS,JAS 配置于Linux OS下,IP地址:192.168.0.6。登錄用戶名:J2EEOA,密碼:J2EEOA。登錄ftp工具建議使用SSH Secure Shell或LeapFTP,ftp地址為192.168.0.6:22。

          ·項目開發源碼目錄為/home/local/jboss/applications/J2EEOA/src,項目開發文檔目錄為/home/product/J2EEOA/。

          · 數據庫服務器IP為192.168.0.222,數據庫采用Mysql,管理工具為phpadmin,登錄數據庫的用戶名為test,密碼為test。

          源代碼目錄規范

          每位開發小組成員一定要絕對遵守以下創建源代碼目錄的規范。

          項目開發目錄結構簡圖:

          																\
          |--apps
            |--J2EEOA
            |--admin
          |--components
            |--a component
          |--modules
            |--a module
          |--lib
            |--ant
          |--build.properties
          														

          圖片6 項目開發目錄結構圖

          項目開發目錄結構說明:

          																\ (說明:根目錄)
          |--apps (說明:此目錄下放應用程序的代碼)
            |--J2EEOA (說明:此目錄為放J2EEOA應用程序的代碼)
            |--admin (說明:此目錄為放項目的admin應用程序的代碼)
          |--components (說明:此目錄下放應用程序組件的代碼)
            |--a component (說明:此目錄為放一個組件的代碼)
          |--modules (說明:此目錄下放應用程序模塊的代碼)
            |--a module (說明:此目錄為放一個模塊的代碼)
          |--lib (說明:此目錄下放項目開發工具)
            |--ant (說明:Ant工具,包括bin和lin目錄)
          |--build.properties 
          (說明:此文件定義項目開發共用的環境變量,
          如jboss.home、jboss.configuration、servlet-lib.path等)
          														

          模塊、組件開發目錄結構簡圖:

          																\
          |--build
          |--etc
            |--multi-langs
          |--lib
            |--docs
            |--ejb
              |-- META-INF
            |--j2ee
            	|--META-INF
            |--web
              |--WEB-INF
          |--src
            |--ejb
            |--javabean
            |--servlet
            |--web
          |--build.bat
          |--build.sh
          |--build.xml
          														

          圖片7 模塊、組件目錄結構圖

          說明:src、etc目錄和build.bat、build.sh、build.xml為開發人員建立的目錄,build和lib目錄為由ant工具生成的目錄。

          模塊、組件開發目錄結構說明

          																\ (說明:一個模塊或一個組件的根目錄)
          |--build (說明:保存由ant工具生成的擴展名為jar、war、ear等文件)
          |--etc 
          (說明:存放部署文件,如web.xml、ejb-jar.xml、application.xml、
          jaws.xml、jbosscmp-jdbc.xml等)
           |--multi-langs (說明:存放多語言資源文件,擴展名為properties,)
          |--lib (說明:保存由ant工具生成的API文件、class文件等)
            |--docs
              |--api
            |--ejb
              |-- META-INF
            |--j2ee
            	|--META-INF
            |--web
              |--WEB-INF
          |--src (說明:存放源代碼,包括java和jsp代碼,下面有四個目錄。)
            |--ejb (說明:采用EJB進行開發,存放EJB和Helper Classes源代碼。)
            |--javabean (說明:采用Javabean進行開發,存放Javabean和Helper Classes源代碼。)
            |--servlet (說明:存放Servlet源代碼。)
            |--web (說明:存放JSP源代碼。)
          |--build.bat (說明:在Window OS下,進行build的文件。)
          |--build.sh (說明:在Unix OS下,進行build的文件。)
          |--build.xml (說明:Ant工具要build的目標文件。)
          														

          應用程序開發目錄結構簡圖:

          																\
          |--build
          |--etc
          |--lib
            |--docs
            |--ejb
              |-- META-INF
            |--j2ee
            	|--META-INF
            |--web
              |--WEB-INF
          |--team
            |--a member
          |--ejb
          |--javabean
          |--web
          |--build.bat
          |--build.sh
          |--build.xml
          |--build.properties
          														

          圖片8 應用程序目錄結構圖

          應用程序開發目錄結構

          1. 由于項目由多個程序員一起來進行編碼,所以應用程序開發目錄結構和模塊、組件開發目錄結構的不一樣。

          2. 應用程序開發目錄結構沒有src目錄,但多了一個team目錄,此目錄存放所有程序員的classes和Jsp代碼。

          3. 應用程序開發目錄結構下build.xml和模塊、組件開發目錄結構下的build.xml有很大不同。

          4. 由項目組長負責管理etc目錄、build.xml、build.bat、build.sh、build.properties,程序員分別管理team目錄下的屬于自己的目錄,如程序員tom管理team/tom目錄。

          build.xml編碼規范

          · 應用程序目錄下的build.xml

          源代碼:應用程序目錄下的build.xml規范模板

          說明:在建立build.xml時,組長只需修改創建的時間和變量ProjectName等。

          模塊、組件目錄下的build.xml

          源代碼:模塊、組件目錄下的build.xml規范模板

          說明:在建立build.xml時,開發人員只需修改創建的時間和和變量ProjectName、componentName等。

          編碼規范

          · 項目中的JAVA源代碼必須按《JAVA開發規范》。

          ·項目中的JSP代碼必須按《JSP開發規范》。

          · 每位開發小組成員在開發項目時都嚴格按此規范來進行編寫程序,讓項目中所有的文檔都看起來像一個人寫的,增加可讀性,減少項目組中因為換人而帶來的損失。

          · 每位開發小組成員一定要絕對遵守這個規范。當實際應用與下面的規范相抵觸時,記錄下原因、潛在后果,以及符合規范需要的條件,但必須是在讓程序有良好的可讀性的前提下。

          功能模塊

          在做業務邏輯模塊前,先把一些準備工作做出來:

          建立一些公用的bean(項目中稱為系統控制器controller),包名為com.cwap.oa.controller.*,提供給系統各模塊使用。包括對時間、字符的操作,調試器,軟件國際化,多語言版本,系統的WEB外殼,MVC模式的Servlet和Action,對WEB頁面顯示的控制如樹結構、路徑結構;等等。

          建立一個序列發生器,包名為com.cwap.oa.sequencegenerator.*,提供給bean使用,它用來產生一個唯一的ID,而且也可用來計數,也就是把它當成計數器使用。介紹如何取id的方法的文字要寫在bean的代碼內,以便生成API后供其它開發人員參閱。

          建立一個ServerFacade,它為EJB Home提供統一的接口。ServerFacade為程序要用到的所有EJB的home handle提供緩存,提高訪問效率。以后查找JNDI Name的方法都應寫在接口里,調用時直接從接口調用。

          建立一個翻頁控制器,包名為com.cwap.oa.controller.web.page*,用來進行分頁顯示的管理,以后頁面中的分頁都由翻頁控制器管理。

          異常處理和日志

          · 程序中所有的異常處理使用統一的調試器,bean的名稱為com.cwap.oa.controller.util.Debug,用法見項目API。

          · 程序中所有的日志使用Jakarta-log4j管理,包的名稱為log4j-1.2.5.jar

          官方URL:http://jakarta.apache.org/log4j/docs/index.html

          Session

          · 放在session中的變量統一放在一個bean里存儲,不直接把session變量名稱放在JSP、Servlet或Bean內,存儲session變量名稱的bean為com.cwap.oa.controller.web.util.WebKeys,取session變量名的方法為getXX()。

          · 取session變量的值的方法統一放在一個bean里,bean的名稱為com.cwap.oa.controller.web.util.JSPUtil,取session變量值的方法為getXX(),之后要取session變量值就調用JSPUtil中對應的方法。

          · 當前系統中已知的session變量名有"userid"、"userName"、"locale"、"skin"等,userid為用戶標識,userName為用戶名稱,locale為用戶選擇的地域,skin為用戶選擇的界面風格。

          DAO

          使用DAO封裝SQL語言對數據庫的直接操作,DAO采用Factory模式編寫。

          組件

          所有的業務邏輯使用組件技術。每個組件內同時提供EJB版本和DAO版本兩種的方法,不推薦直接使用EJB版本和DAO版本的方法。

          多語言版本

          · Bean、Servlet、JSP中的多語言文字采用分離技術,將多語言文字放在資源文件中,保存目錄為/WEB-INF/classes/multi-langs或其它目錄。

          · 當前支持的語言有三種:簡體中文(zh_CN)、繁體中文(zh_HK)、英文(en_US)。

          · 多語言管理器的名稱為com.cwap.oa.controller.util.MultiLangsString,使用方法見本項目API。

          WEB外殼

          · JSP頁面中的圖片、CSS、JS等文件都應放在統一目錄,目錄為/skin/skinName/skinLanguage,其中skinName為外殼名稱,skinLanguage為外殼語言版本,例如/skin/green/zh_CN

          · 圖片放在images目錄里,CSS文件放在css目錄里,JS腳本放在js目錄里,其它資源(如聲音、視頻、Flash文件等)存放方法見項目API。

          · 外殼管理器為com.cwap.oa.controller.web.skin.WebSkin,調用方法統一接口為com.cwap.oa.controller.web.util.JSPUtil。

          在線幫助

          · 在線幫助管理器為com.cwap.oa.help.*,調用方法統一接口為com.cwap.oa.help.client.HelpClientHelper。

          · 每一個JSP頁面中提供一個在線幫助鏈接,用戶點擊它直接進入到在線幫助中心。

          用戶管理

          · 建立一個取用戶名稱的頁面,功能包括只取一個用戶和取多個用戶。

          · 打開取用戶名稱頁面的方法,使用頁面腳本,"javascript:return openWinToGetEmployee(frame,id,name,num)",當num為0,代表可以取多個用戶,否則,只能取1個用戶。

          權限管理

          · 調用方法統一接口為com.cwap.oa.controller.web.util.JSPUtil,檢查用戶是否有權限的方法為JSPUtil.isPermission(userid, permissions)

          · JSP中檢驗用戶身份采用include方式,include的文件為checkUser.jsp

          檢驗用戶身份是否是一般用戶,調用方法為

          																<jsp:include page="../include/checkUser.jsp">
            <jsp:param name="type" value="user" />
          </jsp:include>
          														

          檢驗用戶身份是否是管理員,調用方法為

          																<jsp:include page="../include/checkUser.jsp">
            <jsp:param name="type" value="manager" />
          </jsp:include>
          														

          檢驗用戶身份是否是超級管理員,調用方法為

          																<jsp:include page="../include/checkUser.jsp">
            <jsp:param name="type" value="administrator" />
          </jsp:include>
          														




          摘自賽迪網:http://developer.ccidnet.com/art/322/20021014/27601_1.html, http://developer.ccidnet.com/art/322/20021014/27601_2.html

          posted on 2006-09-27 14:48 Warren.Wu 閱讀(250) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 天镇县| 卢龙县| 乌兰察布市| 报价| 芮城县| 油尖旺区| 进贤县| 湘潭市| 平昌县| 英德市| 陕西省| 白朗县| 班戈县| 巫山县| 汝南县| 公安县| 锡林郭勒盟| 达拉特旗| 双江| 凯里市| 林州市| 大洼县| 盐津县| 新邵县| 霍城县| 德庆县| 特克斯县| 盐源县| 乌拉特前旗| 都匀市| 新巴尔虎右旗| 林周县| 大港区| 平湖市| 泌阳县| 博爱县| 永州市| 洪江市| 东源县| 南城县| 南乐县|