追隨Java
          簡(jiǎn)單的事情重復(fù)做,就會(huì)產(chǎn)生累積效應(yīng)!
          posts - 260,  comments - 338,  trackbacks - 0
                                        低劣的設(shè)計(jì),會(huì)使你走向泥潭,難以自拔
           我進(jìn)這個(gè)公司一年多一點(diǎn)了.剛進(jìn)公司沒什么事做,所以經(jīng)理就讓做一個(gè)小系統(tǒng),為公司以后的需求作準(zhǔn)備.
           為了快速的完成任務(wù),我也就沒有多考慮用最簡(jiǎn)單,傳統(tǒng)的方式(jsp + javaBean)很快完成了項(xiàng)目.系統(tǒng)經(jīng)過測(cè)試員測(cè)試通過 這樣我才放心了.
                現(xiàn)在公司準(zhǔn)備上線系統(tǒng),這下可把我害慘了.系統(tǒng)寫了一年左右了,用戶的需求我都不記得了.此時(shí),用戶又對(duì)系統(tǒng)提出了新的需求,要求修改.我沒有辦法,系統(tǒng)是我寫的,那么更新維護(hù)自然也是我的事情了.我只有拿出原來的文檔,重新整理思路,才把相關(guān)的需求回想起來.隨著時(shí)間的推移,經(jīng)驗(yàn)的積累,看到自己寫的那些代碼實(shí)在是難以忍受.現(xiàn)在要維護(hù)系統(tǒng)了,感覺是牽一發(fā)動(dòng)全身,真是糟糕透了.當(dāng)時(shí)寫出系統(tǒng)時(shí)還沾沾自喜,自己又搞定一個(gè)系統(tǒng),很有成就感的.現(xiàn)在我看你還牛到那去.
                回頭再審視自己做的設(shè)計(jì),寫的代碼. 發(fā)現(xiàn)了不少問題.
                1)層次混亂.我們經(jīng)常說的表示層,業(yè)務(wù)邏輯層,持久層相互高耦合,沒有一個(gè)清晰的分層.系統(tǒng)的架構(gòu)應(yīng)當(dāng)采用現(xiàn)在流行的框架.比如說
                  表示層用webwork,struts,spring mvs,jsf等等,
           業(yè)務(wù)層(事務(wù)管理,,,)spring
           持久層用hibernate,iBatis,,,,
                2)沒有面向接口編程.整個(gè)系統(tǒng)中沒有見到一個(gè)接口.我還停留在面向類的編程.養(yǎng)成良好的編程習(xí)慣.
                  oop,aop讓你的系統(tǒng)有好的維護(hù)性,擴(kuò)展性
                3)業(yè)務(wù)實(shí)現(xiàn)細(xì)節(jié),性能上存在問題.比如說:對(duì)基本信息的修改實(shí)現(xiàn)方式真糟糕.因?yàn)榛拘畔⒌膶傩杂?0多個(gè),它和另一個(gè)表是一對(duì)多的
          關(guān)聯(lián)關(guān)系. 當(dāng)時(shí)覺得那么多屬性,懶得用update一個(gè)一個(gè)得來更新,干脆把相關(guān)得信息(包括它關(guān)聯(lián)的另一個(gè)表的信息)刪除掉.這樣造成了很多不
          必要的操作麻煩.你修改基本信息,為什么要去刪除它關(guān)聯(lián)表的信息,然后又要把它的信息添加進(jìn)來.這不就是畫蛇添足嗎?先刪除,然后又添加,
          一些不必要的操作,造成了性能的下降.系統(tǒng)的開發(fā)遵循簡(jiǎn)單的設(shè)計(jì).
               4)業(yè)務(wù)操作混淆.添加新的基本信息與更新基本信息都放在同一個(gè)方法中.每一個(gè)業(yè)務(wù)方法對(duì)應(yīng)一個(gè)操作.
               5)系統(tǒng)不穩(wěn)定.對(duì)系統(tǒng)要有好的單元測(cè)試,集成測(cè)試.
               6)用戶操作不方便.要站在用戶的角度多考慮,那樣的操作是他們習(xí)慣的,他們想要的.
               這樣的系統(tǒng)真是糟糕,難以維護(hù),難以擴(kuò)展,很難有好的性能.
               我們開發(fā)的系統(tǒng)不能滿足于夠用,做出的系統(tǒng)要有好的可維護(hù),可重用,可擴(kuò)展性.
          posted on 2006-01-05 17:19 Harryson 閱讀(308) 評(píng)論(0)  編輯  收藏 所屬分類: SoftwareEngineering

          <2006年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(10)

          隨筆分類(319)

          AJAX

          Coffee House

          CSS

          Java

          JavaScript

          Open Source

          ProjectManagement

          友情Blog

          最新隨筆

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 通山县| 义马市| 砀山县| 萝北县| 东光县| 阜新市| 张家界市| 惠水县| 河曲县| 鹤岗市| 镶黄旗| 固安县| 巴青县| 韶关市| 平顺县| 天全县| 盱眙县| 麦盖提县| 习水县| 黄梅县| 沙河市| 靖西县| 林周县| 城市| 泰宁县| 渝北区| 梅河口市| 彭州市| 田林县| 宜州市| 云梦县| 洛阳市| 博爱县| 通城县| 宿迁市| 常山县| 奈曼旗| 灵武市| 得荣县| 长泰县| 文化|