JRESPLUS開(kāi)發(fā)-開(kāi)發(fā)規(guī)范_第1頁(yè)
JRESPLUS開(kāi)發(fā)-開(kāi)發(fā)規(guī)范_第2頁(yè)
JRESPLUS開(kāi)發(fā)-開(kāi)發(fā)規(guī)范_第3頁(yè)
JRESPLUS開(kāi)發(fā)-開(kāi)發(fā)規(guī)范_第4頁(yè)
JRESPLUS開(kāi)發(fā)-開(kāi)發(fā)規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JRESPLUS開(kāi)發(fā)

--開(kāi)發(fā)規(guī)范目錄結(jié)構(gòu)-工程projectsrcmainjavaresourcestestjavaresourcestargetpom.xmlmaven工程:projectsrcresourcesbuildclasses普通工程:projectsrcmainjavaresourceswebapptestjavaresourcestargetpom.xmlprojectsrcresourceswebappclasses推薦使用maven工程進(jìn)行代碼管理目錄結(jié)構(gòu)-包(package)comhundsun系統(tǒng)/產(chǎn)品/平臺(tái)(可以有子級(jí))模塊(可以有子級(jí))分層javapackage:com.hundsun.jresplus.web.nosessioncom.hundsun.jresplus.remoting.servercom.hundsun.jresplus.remoting.clientcom.hundsun.jresplus.web.urlcom.hundsun.crm.user.actioncom.hundsun.crm.user.servicecom.hundsun.crm.user.dao組織公司平臺(tái)模塊子模塊組織公司系統(tǒng)模塊分層平臺(tái)/框架系統(tǒng)/產(chǎn)品目錄結(jié)構(gòu)-配置文件resourcesi18nmessages_en_US.propertiesmessages_zh_CN.properties。。。資源文件:resourcesspringcrm-user-beans.xmlcrm-account-beans.xml…非web工程中spring配置文件:WEB-INFconfspringcrm-datasource-beans.xmlcrm-service-beans.xml…pertiespertiespertiesvm-toolbox.xmlweb.xmlweb工程中的配置文件:spring配置文件命名:“產(chǎn)品-功能模塊-beans.xml”系統(tǒng)參數(shù)配置文件日志配置文件數(shù)據(jù)庫(kù)連接配置文件其他由于使用第三方包,由第三方包約定的配置文件準(zhǔn)從約定的目錄進(jìn)行配置目錄結(jié)構(gòu)-web靜態(tài)資源webappcomponentscomponents.csscomponents.jscomponentfolder1imgcomponentfolder2imgcssuserstyle.cssmodulesubmodulexx.cssimagesmodulesubmodulescriptsmodulesubmodulexx.jspluginsjqueryjquery.min.jsotherlib目錄結(jié)構(gòu)-web視圖文件WEB-INFviewscomponentscomponents.vmlayoutdefault.vmmoduledefault.vmsubmoduledefault.vmxx.vmscreenindex.vmlogin.vmmodulesubmodulexx.vmcommon500.vm404.vmxx.vm命名接口:使用大寫(xiě)字母‘I’開(kāi)頭,符合駝峰規(guī)則類(lèi):首字母大寫(xiě),符合駝峰規(guī)則駝峰規(guī)則(單詞首字母大寫(xiě)后面的字母小寫(xiě))如:UserAccount實(shí)現(xiàn)類(lèi):首字母大寫(xiě),符合駝峰規(guī)則,以‘Impl’結(jié)束抽象類(lèi):以‘Abstract’開(kāi)始,符合駝峰規(guī)則邏輯分層相關(guān):(控制層)action:以Action結(jié)束,如“UserAction”;(服務(wù)層)service:以Service結(jié)束,如“IUserService”,“UserServiceImpl”;(邏輯層)logic:以L(fǎng)ogic結(jié)束,如“IUserLogic”,“IUserLogicImpl”;(持久層)dao:以DAO結(jié)束,如“IUserDAO”,“UserDAOImpl”命名常量:使用全大寫(xiě)英文字符、下劃線(xiàn)組成,首字符請(qǐng)使用字母,單詞與單詞之間使用下劃線(xiàn)“_”分隔,聲明時(shí)使用“static””final”修飾;如:變量:使用英文字符組成,符合駝峰規(guī)則,首字母小寫(xiě),使用具有語(yǔ)義的方式命名(單詞或通用的縮寫(xiě))如:函數(shù):使用英文字符組成,符合駝峰規(guī)則,首字母小寫(xiě),使用具有語(yǔ)義的方式命名(函數(shù)的命名要與函數(shù)的行為一致)privatestaticfinalStringSESSION_KEY=“key_”;publicstaticfinalintSESSION_COUNT=10;StringuserName;注釋-java源文件/**系統(tǒng)名稱(chēng):*模塊名稱(chēng):*文件名稱(chēng):${file_name}*軟件版權(quán):恒生電子股份有限公司*修改記錄:*修改日期

修改人員

修改說(shuō)明<br>*===========================================================**===========================================================*/每一次文件的變更,都需要在修改記錄中維護(hù)注釋-實(shí)現(xiàn)注釋/*判斷年齡限制*/單行注釋/**該函數(shù)用于做什么*/塊注釋if(a==2){returnTRUE; /*specialcase*/}else{returnisPrime(a); /*worksonlyforodda*/}尾端注釋//被注釋的代碼末行注釋好的代碼不需要注釋好的代碼從注釋開(kāi)始注釋-文檔注釋/***功能說(shuō)明:*<p>

系統(tǒng)版本:v1.0<br>*開(kāi)發(fā)人員:${user}${user}@<br>*開(kāi)發(fā)時(shí)間:${date}<br>*功能描述:寫(xiě)明作用,調(diào)用方式,使用場(chǎng)景,以及特殊情況<br>*/類(lèi)與接口的文檔注釋?zhuān)?***/字段的文檔注釋?zhuān)?***methodcommentshere*${tags}*/函數(shù)的文檔注釋?zhuān)郝暶髅恳恍新暶髯兞康臄?shù)量一行只聲明一個(gè)變量,因?yàn)檫@樣更加容易添加注釋?zhuān)蝗菀自谧x代碼的時(shí)候忽視一些變量變量的初始值盡量在聲明變量的同時(shí)進(jìn)行初始化;聲明變量的位置只在代碼塊的開(kāi)始處聲明變量(一個(gè)塊指任何一個(gè)使用大括號(hào)中間的代碼)類(lèi)和接口的聲明編寫(xiě)類(lèi)和接口時(shí),應(yīng)該遵守以下格式規(guī)則:

在方法名和其參數(shù)列表之前的左括號(hào)“(”不要有空格;

左大括號(hào)“{”位于聲明語(yǔ)句同行的末尾;

右大括號(hào)“}”另起一行,除非是空語(yǔ)句;

方法與方法之間以空行分隔classSampleextendsObject{intvar;

Sample(intvar){this.var=var;}

intemptyMethod(){}...}語(yǔ)句一行最多包含一條語(yǔ)句;復(fù)合語(yǔ)句的大括號(hào)“{}”,不能和語(yǔ)句在相同行;條件判斷語(yǔ)句必須使用大括號(hào)“{}”包含住執(zhí)行語(yǔ)句,哪怕只有一行;循環(huán)語(yǔ)句必須使用大括號(hào)“{}”包含住執(zhí)行語(yǔ)句;switch語(yǔ)句,當(dāng)沒(méi)有使用break進(jìn)行結(jié)束(意味著繼續(xù)向下執(zhí)行)時(shí),需要在原本用來(lái)寫(xiě)break語(yǔ)句的地方添加注釋?zhuān)怀蓡T變量與函數(shù)聲明語(yǔ)句之間使用空行分隔;函數(shù)與函數(shù)之間使用空行分隔;函數(shù)內(nèi)行數(shù)過(guò)長(zhǎng)時(shí),不同階段的代碼之間使用空行分隔;使用4個(gè)空格進(jìn)行縮進(jìn);{

intvar=0;…..}慣例與準(zhǔn)則1,避免通過(guò)實(shí)例訪(fǎng)問(wèn)其靜態(tài)變量和函數(shù),應(yīng)該使用類(lèi)來(lái)引用;2,避免在一個(gè)語(yǔ)句中給多個(gè)變量賦值,

如:a=b=1;3,不要使用內(nèi)嵌賦值語(yǔ)句,

如:d=(a=b+c)+e;4,條件判斷時(shí),盡量使用圓括號(hào)“()”,

如:if((a==b)&&(c==d))5,三目運(yùn)算前的表達(dá)式應(yīng)該使用圓括號(hào),

如:(x>=0)?x:-x;6,避免重復(fù)代碼,當(dāng)在兩處或者更多的地方發(fā)現(xiàn)相似的代碼時(shí),應(yīng)該考慮將重復(fù)代碼抽取為函數(shù);7,函數(shù)應(yīng)該盡量短小;8,函數(shù)和變量的命名使用有意義的命名,提高可讀性;9,為每一個(gè)類(lèi)和函數(shù)分配正確的職責(zé)(單一職責(zé)),且與命名一致;10,盡早的進(jìn)行代碼重構(gòu);11,盡量少的注釋和不注釋?zhuān)绻l(fā)現(xiàn)一段代碼必須用注釋才能閱讀時(shí),說(shuō)明該代碼需要進(jìn)行重構(gòu)了;12,注釋要與實(shí)現(xiàn)一致,如果一段代碼使用注釋說(shuō)明行為,那么注釋需要與行為一致;善用eclipse的refactor(重構(gòu))菜單jresplus開(kāi)發(fā)-邏輯分層服務(wù)層表現(xiàn)層(web)業(yè)務(wù)邏輯層數(shù)據(jù)訪(fǎng)問(wèn)層JavaScriptVelocityHTMLCSSSpringMVCMyBatisSpringSpringSpring上層依賴(lài)下層面向接口不跨層日志異常POJOJresplusMVC逐層向下構(gòu)建由交互開(kāi)始服務(wù)契約數(shù)據(jù)契約表現(xiàn)層(其他客戶(hù)端)表現(xiàn)層:通過(guò)web方式的人機(jī)交互界面,提供業(yè)務(wù)內(nèi)容展示、操作的入口;服務(wù)層:用來(lái)組織業(yè)務(wù)邏輯,向表現(xiàn)層提供業(yè)務(wù)服務(wù),降低表現(xiàn)層對(duì)業(yè)務(wù)處理邏輯層的耦合,提高業(yè)務(wù)處理邏輯的復(fù)用度;業(yè)務(wù)邏輯層:負(fù)責(zé)承載業(yè)務(wù)的邏輯處理;數(shù)據(jù)訪(fǎng)問(wèn)層:負(fù)責(zé)數(shù)據(jù)的持久化、訪(fǎng)問(wèn)操作;基礎(chǔ)運(yùn)行與開(kāi)發(fā)環(huán)境集成BO

服務(wù)層表現(xiàn)層(web)業(yè)務(wù)邏輯層數(shù)據(jù)訪(fǎng)問(wèn)層HTML\CSS\JSVelocitySpringMVCHibernate\JPADozerSpringSpring上層依賴(lài)下層面向接口不跨層日志異常POJOJresplusMVC逐層向下構(gòu)建由交互開(kāi)始服務(wù)契約數(shù)據(jù)契約表現(xiàn)層(其他客戶(hù)端)DHTMLXJQueryJresplus-UIJresplus-remotingSpringjresplus開(kāi)發(fā)-表現(xiàn)層-視圖開(kāi)發(fā)表現(xiàn)層使用velocity模板語(yǔ)言開(kāi)發(fā)layoutscreenCOCviewWEB-INFviewslayoutscreen視圖文件有布局文件和內(nèi)容文件組成布局文件和內(nèi)容文件通過(guò)COC的原則組成最終的視圖WEB-INFviewslayoutdefault.vmscreenmodulemoduledefault.vmsameName.vmsameName.vm1,首先匹配同名目錄下的同名布局文件2,其次匹配同名目錄下的default布局文件4,最后匹配布局根目錄下的default布局文件SubModuleSubModuledefault.vm3,再次匹配上級(jí)目錄下的default布局文件《jresplus視圖開(kāi)發(fā)》jresplus開(kāi)發(fā)-表現(xiàn)層-控制器控制器使用springmvc提供的注解方式開(kāi)發(fā),如:《jresplus-mvc開(kāi)發(fā)》@Controller@RequestMapping("/user")public

classUserAction{@AutowiredIUserManagerServiceuserService;@RequestMapping("/accountList")public

void

accountList(UserAccountQueryquery,Modelmodel){List<UserAccount>list=userService.queryAccountListPage(query);model.addAttribute("accountList",list);}@RequestMapping(value="/account",method=RequestMethod.GET)public

voidgetAccount(UserAccountaccount,Modelmodel){userService.queryUser(account);UserAccountaccount=userService.getAccount(query);model.addAttribute("account",account);}@RequestMapping(value="/account",method=RequestMethod.POST)public

StringaddAccount(UserAccountaccount,Modelmodel){userService.addAccount(account);return

"redirect:/user/accountList.htm";}}jresplus開(kāi)發(fā)-服務(wù)開(kāi)發(fā)《jresplus-remoting開(kāi)發(fā)》HSESBWEB端ViewControllerJresplus-remotingclient服務(wù)契約T2服務(wù)端Jresplus-remotingserver服務(wù)契約logicDAOT2OtherServerOtherClient客戶(hù)端、接入端、服務(wù)端都通過(guò)T2協(xié)議接入到HSESB總線(xiàn)上Jresplus-remoting提供client(客戶(hù)端)和server(服務(wù)端)的支持,結(jié)合

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論