考試告一段落,該忙乎院長交與的項(xiàng)目了。《學(xué)生信息管理系統(tǒng)》,準(zhǔn)備用struts+iBatis+spring構(gòu)建,今天算是考完試后小組的第一次開會,交代了近兩個(gè)星期內(nèi)的任務(wù)。我立刻將結(jié)構(gòu)的想法畫成簡圖,以及計(jì)劃建議交給組長和各組員。以下是結(jié)構(gòu)設(shè)計(jì)簡圖,精彩的工作由這里開始:
?
接下來是半個(gè)月左右的計(jì)劃:
下星期完成數(shù)據(jù)層到服務(wù)層的詳細(xì)類圖,其間我將確定後的實(shí)體類圖交與鄧飛,讓他們建表。
再下個(gè)星期開會+培訓(xùn)後組織第一階段的編碼,我打算這樣的:首先我來建立工程,建立好包結(jié)構(gòu)和服務(wù)層的所有接口、添加好所有需要的庫,也就是搭個(gè)骨架。然后我將工程文件夾、開發(fā)工具(Eclipse)、JDK安裝文件(統(tǒng)一JDK也很重要)、數(shù)據(jù)庫一并打包傳給每個(gè)參加編碼的人。之后開始分配任務(wù)從右至左編碼:從Sql查詢語句開始至FacadeManagerImp類結(jié)束算是完成了這個(gè)階段的任務(wù),其間要注意代碼同步,我擔(dān)心subversion我們都沒經(jīng)驗(yàn),硬要用上也不見得是好事。所以我覺得要避免代碼版本沖突就要嚴(yán)格劃分任務(wù)區(qū)域,各司其職就沒事了??梢钥紤]在某個(gè)FTP中為每個(gè)人都指定一個(gè)代碼文件夾,誰有新版本的代碼就傳到屬于他自己的文件夾里,并放上一個(gè)名字為更新日期的文本文檔,這樣我們每隔一段時(shí)間就上這個(gè)FTP,去每個(gè)人的文件夾里下載最新的代碼到本地覆蓋就可以了。
如上計(jì)劃完成了的話,我們幾乎算是完成了一半的工作。剩下的工作分兩種方案:一起作為一個(gè)階段做完、分兩個(gè)階段做完。
1):作為一個(gè)階段做完:業(yè)務(wù)邏輯層就是struts框架的Action層,直接編寫Action,并組織頁面流程,完成之后整個(gè)項(xiàng)目也就差不多了。這樣的話業(yè)務(wù)邏輯層和表現(xiàn)層就都交給struts來組織。
2):分為兩個(gè)階段做完:先做我們自己定義的業(yè)務(wù)邏輯層的設(shè)計(jì)和實(shí)現(xiàn)(不跟任何struts的api耦合)(這一層的類多,但形式單一,屬于勞動密集型,大概占總的20%的工作量),稱為“業(yè)務(wù)邏輯組件”。;然后就是結(jié)合struts來擺純的表現(xiàn)層,也就是最后30%的工作,其中“業(yè)務(wù)邏輯組件”中的方法要么返回某種計(jì)算結(jié)果,要么返回指示是否執(zhí)行成功的true/false信息,也就是說跟struts達(dá)成“控制耦合”,Struts在這里就只管表現(xiàn)層。
方案1)其實(shí)屬于一般常用做法,循規(guī)蹈矩;但方案2)由于實(shí)現(xiàn)了獨(dú)立于任何框架的業(yè)務(wù)邏輯組件,今后如果要改表現(xiàn)層框架(如放棄struts用webwork或jsf),甚至想把本項(xiàng)目重做成C/S架構(gòu)都是很方便的事情,只需要做最后30%的工作;但若是方案1)作出這樣的改動的話就要做50%的工作(業(yè)務(wù)邏輯層以上均重新構(gòu)建)。
也許方案2)有點(diǎn)畫蛇添足,我們的項(xiàng)目或許做好后再也不需要做那么大的改動...這是魚和熊掌的問題...
不過決定用那個(gè)方案起碼是半個(gè)月之后的事情,現(xiàn)在不用著急,先完成最上面的計(jì)劃吧。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
