<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    我參與的團(tuán)隊(duì)

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 414037
    • 排名 - 135

    最新評(píng)論

    閱讀排行榜

        花了近一周的時(shí)間,把 iCustomer 大改了一番,其實(shí)說(shuō)來(lái)也沒(méi)有特別大的變化了,修改的東西只不過(guò)是一些過(guò)去的一些bug和網(wǎng)上朋友們的一些建議,其實(shí)重點(diǎn)還是放在改 bug 上,另外就是 Order 這部分系統(tǒng)的領(lǐng)域模型重構(gòu),Order 與 OrderItem 之間的關(guān)聯(lián)由原來(lái)的 one-to-many 改成了現(xiàn)在的 composite-element 方式,參考了 Hibernate Reference 的內(nèi)容,從理解上來(lái)說(shuō)這樣的關(guān)聯(lián)方式也是比較合適的,有過(guò)去的松散的關(guān)聯(lián)方式換成了現(xiàn)在這樣緊密的關(guān)聯(lián)方式。通過(guò)前面近兩個(gè)月對(duì) Hibernate 概念更深層次的思考與理解,現(xiàn)在在處理起這樣的問(wèn)題都變得輕松了很多,沒(méi)有那么多的問(wèn)題會(huì)很讓我在開(kāi)發(fā)中卡殼,而且是那種一卡就卡上個(gè)好幾天不能解決的。當(dāng)這樣的關(guān)聯(lián)關(guān)系復(fù)雜了以后,Hibernate 的功效才更好的發(fā)揮出來(lái)了,我們拿關(guān)聯(lián)對(duì)象就不用再寫一堆方法去拿了,需要的時(shí)候去取,Hibernate 就會(huì)自動(dòng)的取幫你取好。實(shí)際上這次改 Order 部分時(shí)候,很多情況下都是在刪過(guò)去的代碼,過(guò)去的方式真的太復(fù)雜了,全部要自己手工一個(gè)個(gè)的去拿,簡(jiǎn)直就是把 Hibenate 當(dāng) SQL 用,從思想上來(lái)說(shuō),這顯然是不正確的。

        另外想想看,如果在一個(gè)項(xiàng)目中用起 Hibernate 或者使用同樣方式的 EJB3 Persistence 真的會(huì)存在著太多的風(fēng)險(xiǎn)了。Hibernate 走的是方式上的變革,我們必須去用新的思想去考慮問(wèn)題,而不是僅僅用用它而已,我們需要從對(duì)象建模的角度就開(kāi)始考慮 ORM 的存在,以對(duì)象為中心的方式去組織業(yè)務(wù)邏輯,而不是以表為中心去組織,剛開(kāi)始用 Hibernate 的時(shí)候,大部分情況還是在考慮表如何如何的,但是用了一段時(shí)間以后,發(fā)現(xiàn)這樣的方式和 Hibernate 真正的核心思想相差太大了。所以說(shuō)要正確的去用 Hibernate 決不是看了一兩本書(shū),做了幾個(gè)簡(jiǎn)單的 CRUD 就可以的了,需要在許多復(fù)雜關(guān)聯(lián)中經(jīng)受考驗(yàn)才可以,而一個(gè)要很好的去用 Hibernate 的項(xiàng)目,一定是要有這樣經(jīng)驗(yàn)的人去做才可以的,幾個(gè)剛翻幾頁(yè)書(shū),知道怎么用就去拿 Hibernate 做項(xiàng)目的人真的還是遠(yuǎn)遠(yuǎn)不夠的,這種情況在 iCustomer 0.1 版本中表現(xiàn)的非常突出,混亂的配置和關(guān)聯(lián)關(guān)系,讓使用了 Hibernate 后,代碼未減反增,我努力在 0.2 的版本中做出一些修改了,當(dāng)然只是比原來(lái)好了一些,離真正理想的情況還是有差距的。當(dāng)然有空我會(huì)把這樣的一些經(jīng)驗(yàn)和大家分享一下,讓大家在學(xué)習(xí) Hibernate 上少走一些我曾經(jīng)走過(guò)的彎路了。

        又用回了 JSF,開(kāi)始發(fā)現(xiàn)這樣的方式真的有很多的好處了,而且在 JSF 的使用和經(jīng)驗(yàn)上有一些積累,用它來(lái)建立一個(gè)不大的項(xiàng)目經(jīng)驗(yàn)應(yīng)該是足夠的了。Backing Bean 的方式比 Action 的方式配置文件的數(shù)量上要減少了很多,說(shuō)能夠減少到原來(lái)的 1/4 甚至更多都不為過(guò)了,因?yàn)槲覀円话闱闆r下一個(gè) Backing Bean 對(duì)應(yīng)一個(gè)頁(yè)面,只需要配置一處,而一個(gè)頁(yè)面中如果有很多操作的話 Action 方式就需要配置很多了,比如一個(gè)查詢頁(yè)面,查詢需要一個(gè) Action,查看查詢的一個(gè)記錄需要一個(gè) Action,刪除記錄需要一個(gè) Action,修改一條記錄又需要一個(gè) Action,算起來(lái)正好 1:4,是不是省了很多配置呢,在結(jié)合擴(kuò)展的 Navigation 方式,連 Navigation 都不需要配置了。配置文件真的少了很多了。

        用到了一個(gè) Tomahawk 組件中獨(dú)有的 forceId 屬性,不能說(shuō)有多爽,但是可以讓你在寫 JavaScript 的時(shí)候省了好一些代碼了,過(guò)去一個(gè)組件的 id 生成出來(lái)就是 form:cid 的形式,而用了 forcdId = "true" 后,生成出來(lái)的 id 就是你在組件的 Tag 中實(shí)際定義的值,當(dāng)然用的時(shí)候也要小心了,千萬(wàn)不能重復(fù),包括同一頁(yè)面中不能重復(fù),也包括一個(gè)頁(yè)面中包含另外一個(gè)頁(yè)面時(shí)不能重復(fù) 。
    posted on 2006-08-21 11:15 steady 閱讀(1786) 評(píng)論(1)  編輯  收藏 所屬分類: AgileJava

    FeedBack:
    # re: 隨 AgileJava iCustomer 改進(jìn)想到的[未登錄](méi) 2009-08-11 22:51 fly
    請(qǐng)問(wèn)icustomer最新到什么版本了?哪里可以下載學(xué)習(xí)?  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 婷婷亚洲天堂影院| 亚洲成色WWW久久网站| 久久久久久久久久免免费精品| 亚洲精品国产精品乱码视色| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲熟妇丰满xxxxx| 亚洲精品无码AV人在线播放| 4hu四虎最新免费地址| 色费女人18女人毛片免费视频 | 国产伦精品一区二区三区免费下载 | 亚洲精品A在线观看| 免费国产污网站在线观看15| 亚洲男人的天堂网站| 国精无码欧精品亚洲一区| 成年女人毛片免费观看97| 久久毛片免费看一区二区三区| 亚洲成人福利网站| 久久久久亚洲?V成人无码| 无人在线观看完整免费版视频| 一级做a毛片免费视频| 亚洲av永久无码嘿嘿嘿| 亚洲欧洲日产国码av系列天堂| 无码人妻精品一二三区免费| a级片免费观看视频| 亚洲成av人在线观看网站| 亚洲一区二区影院| AV在线播放日韩亚洲欧| 四虎影院免费视频| 91成人在线免费视频| 国产成人高清精品免费观看| 亚洲人成人无码.www石榴| 亚洲综合视频在线| 区久久AAA片69亚洲| 国产老女人精品免费视频| 国产在线a免费观看| 50岁老女人的毛片免费观看| 99久久免费国产精品热| 免费人成在线观看播放a| 亚洲国产精品嫩草影院| 亚洲一区二区三区在线网站| 婷婷亚洲综合五月天小说|