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

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

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


    竟 然64個annotation,沒有分類,放在同一個package下,同一個package(javax.persistance)還有其他java文 件,共有88個java文件。不看內容本身,單從表面,都覺得這是混亂不堪的事情。這是那個豬頭的杰作?glassfish上下載的源碼中,這些java 文件似乎都沒有author,估計也不好意思把名字放出來見人吧!

    ------

    覺得對象關系存儲方面一直沒有突破,也沒有好的產品出來,其中一個原因,就是從沒有過優秀的工程師投身過這個領域。關系數據庫為什么能夠一直堅守領地,成為絕大多數商業應用的基石,其中一個原因就是有過大量的精英投身于此,包括兩個圖靈獎獲得者。

    關 系數據庫,為了描述關系,創造一門SQL語言,將關系一些操作,例如投影(select)、選擇(where)、分組(group by)等等,抽象得形象易懂,功能強大。對于數據的操作,SQL語言是最強大,也是最方便的,也是最易于使用的。一些非程序員的IT從業人員,非計算機專 業的人員都能夠熟練掌握SQL。

    OO和Relational都是偉大的技術,從計算機最高榮譽獎可以看出這兩個技術的偉大。OO的圖靈獎獲得者是三個,Relational的圖靈獎獲得者是兩個。

    面向對象技術自1967年simula引進以來,所想披靡,93年-98年從C++開始流行,然后到Java,成為主流編程技術。Relational沒有OO那么輝煌,但是在數據存儲方面的地位固如磐石,長期占據絕對的地位。

    曾 經OO技術涉足于數據存儲領域,但終究沒有成功。面向對象數據庫的變現總是差強人意,面向對象的方式操作數據,總是不如使用關系那么方便,那么靈活,那么 易于使用,那么好的性能。于是人們在數據存儲和處理方面,不在青睞面向對象技術,而是仍然使用關系方式,使用SQL語言,使用關系運算操作數據。面向對象 數據庫成了曇花一現的東西,并且可能永遠都不會再流行了。

    OO成了主流編程技術,Relational占據了絕對的數據存儲地位,這兩大技術需要交互,需要橋接,這需要OR-Mapping。Relational雖然好,但我們也要與時俱進,所以也需要OR-Mapping。

    但 是,做OR-Mapping時,不積極吸取relational方式對數據處理的靈活性、方便性、簡單性,而只強調Relational和對象之間的的 Mapping,試圖以面向對象的方式操作數據,這是錯誤的方向。以前的EJB、現在Hibernate、JPA都犯了同樣的錯誤,試圖以更面向對象的方 式操作數據,從而導致復雜混亂的模型,這也是JPA的現狀吧。例如user.getGroup(),目前的ORM試圖以純OO的方式操作數據,所引起的 LazyLoad、n+1等問題,使得事情變得復雜而且混亂不堪。

    一些開發人員,去學習Hibernate,不學習SQL,有人提倡,只需要了解面向對象編程技術,不需要了解關系技術,亦屬于本末倒置。需求人員都會用的SQL語言,對數據操作最方便最簡單最強大的SQL語言,竟然成了令人生畏的紙老虎,可笑啊。

    -------------

    以下是過去的一些業界浮躁不理智:

    1、面向對象數據庫。曾被熱衷而吹捧,面向對象數據庫的變現總是差強人意,面向對象的方式操作數據,總是不如使用關系那么方便,那么靈活,那么易于使用,那么好的性能。于是人們在數據存儲和處 理方面,不在青睞面向對象技術,而是仍然使用關系方式,使用SQL語言,使用關系運算操作數據。面向對象數據庫成了曇花一現的東西,并且可能永遠都不會再 流行了。

    2、 JDO投票鬧劇。2004-2005年,JDO的JSR在JCP投票被否決的,無聊者在Java社區以及媒體發起鬧事,陰謀論其為政治謀殺,幾大公司是的 迫于形象,重新投票使得JDO被通過,但JDO這種靜態AOP叫雕蟲小計式技術,不單開發過程不方便,而且會使得"enhance"之后的代碼不可調試。 這完全是對開發者不友好的技術,沒有前途的技術,竟然會有人為它在JCP投票不通過鳴不平。這件事情使得我更堅信一點,不要相信那些技術編輯的判斷力。

    3、 AOP。也是最近這幾年流行的一個名詞了。起了一個和OOP相似的名字,但是和偉大的OOP相比,它完全不算是什么。AOP只是一種很小很小的技巧而已, 靜態的AOP是黑客式的插入代碼,會導致代碼不可調試,動態的AOP能力有限,AOP最常被引用例子“日志AOP”是不合適,有用的日志通常是精心設計 的,AOP方式的日志在生產環境中基本上是不可用。OO這么多年,這么為偉大,人們總是希望自己能做點什么和偉大的OO相比,于是命名為AOP,這是一個 可笑的名字,前些年還有人談論面向對象的未來是面向事實,也是同樣的可笑。AOP有價值,但它是一種小技巧,和名字不般配。

    --------------

    目前在流行,但是可能是不理智的技術:

    1、hibernate之類的ORM,試圖以面向對象方式操作數據,和面向對象數據庫一樣,重蹈覆轍。
    2、Ruby,一個小腳本語言,只是因為動態類型、mixin之類的功能,還沒有被證明有生產力,有效益可用的腳本語言,就被媒體吹到天上去。Ruby有價值,但是最終結果會離大家的期待相差甚遠。
    posted on 2008-02-02 02:56 溫少的日志 閱讀(5259) 評論(19)  編輯  收藏
    Comments
    • # re: JPA這個爛東西
      RoBeRt
      Posted @ 2008-02-02 04:28
      看你對hibernate都不了解
      更被說ruby了 可笑  回復  更多評論   
    • # re: JPA這個爛東西[未登錄]
      qqinxl
      Posted @ 2008-02-02 08:19
      Ruby,一個小腳本語言,只是因為動態類型、mixin之類的功能...
      --------------------------------------------------
      這就是你的觀點?
      嚴謹一點吧。
        回復  更多評論   
    • # re: JPA這個爛東西
      再見理想
      Posted @ 2008-02-02 09:05
      看你初學,不說你了。以后這種無知文章不要亂發表,很黃,很暴力啊  回復  更多評論   
    • # re: JPA這個爛東西
      GaoYP
      Posted @ 2008-02-02 09:27
      非常同意作者對ORM的觀點。.NET下的Linq在錯誤的方向上走的更遠。用Hibernate或JPA進行復雜的查詢和自殺相差無幾。我覺的可行的方法是,用Hibernate或JPA作數據的增刪改操作,用iBatis作查詢。  回復  更多評論   
    • # re: JPA這個爛東西
      dennis
      Posted @ 2008-02-02 09:39
      不了解的東西不要開口
      AOP不能用于生產環境?spring的事務處理就是用AOP實現的,那么世界上這么多在跑的應用都是玩具咯?對于ruby和hibernate的評價就不多說了,不了解的東西不要開口。
      作者是中了OO的毒了  回復  更多評論   
    • # re: JPA這個爛東西
      searchfull
      Posted @ 2008-02-02 09:47
      溫少好像沒用過hibernate和AOP。
      ORM和關系數據庫不是矛盾競爭的關系,是合作的關系。  回復  更多評論   
    • # re: JPA這個爛東西
      dennis
      Posted @ 2008-02-02 09:48
      sorry,看錯了,作者是認為AOP式日志是個不恰當的例子,這點我贊成,不過對于AOP技術只是“小技巧”的評價絕不敢茍同。  回復  更多評論   
    • # re: JPA這個爛東西
      楊一
      Posted @ 2008-02-02 10:33
      技術場景不同,歸根結底,IT是服務于業務的,當然也有用于純計算的,不過市場份額不大。對我們沒有用的東西不一定對別人也沒有用。
      比如說,有人對數據庫操作性能要求很高,關系很復雜,數據量很大。那么他可能考慮不用Hibernate而直接用JDBC或其他更底層的方式。就好象操作系統的內核為了效率要使用一部分匯編一樣。但是更多的情況可能不是如此。  回復  更多評論   
    • # re: JPA這個爛東西
      BeanSoft
      Posted @ 2008-02-02 10:52
      框架看多了 也會審美疲勞的。。。呵呵,不管啥技術,能給老總帶來¥就是好技術。  回復  更多評論   
    • # re: JPA這個爛東西
      Mikecool
      Posted @ 2008-02-02 10:58
      幼稚,Glassfish的JPA包算是JSR規范的reference package,當然沒有author

      別的都不說你了,還是老老實實去寫兩個框架再來評價別人的東西  回復  更多評論   
    • # re: JPA這個爛東西
      keith
      Posted @ 2008-02-02 18:19
      表一棒把人打死,技術本身就它的有優點和缺點的  回復  更多評論   
    • # re: JPA這個爛東西
      flybean
      Posted @ 2008-02-03 08:54
      1)關系型數據庫模式的提出和 SQL 語言的發明:

      1970 年 IBM 研究中心的 E.F.Codd 博士提出了關系型的數據庫模式,奠定了關系型數據庫日后發展的理論基礎,并為此于 1981 年榮獲計算機科學界的最高榮譽獎 ACM 圖靈獎。1973年 IBM 研究中心開始了一個大的關系型數據庫系統研究項目 System R,探討并驗證在多用戶與大量數據下關系型數據庫的實際可行性。在 D.Chamberlin 博士的領導下System R的一個研究小組發明了一套比關系微積分與關系代數更適合最終用戶使用的非程序化查詢語言 SQL [Chamberlin74,76,80]。從此,基于 SQL 的關系型數據庫逐漸成為了數據庫管理系統的主流。目前所有的關系型數據庫廠家的產品都遵循這一標準。由于 System R 與SQL 對關系型數據庫管理系統結構的貢獻,其主要設計人員于 1988 年獲得了計算機領域中崇高的實用軟件系統獎。

      2)分布式數據庫概念及對面向對象的支持:

      80年代初期至中期,IBM艾瑪登研究中心的研究人員通過System R*研究項目[Lindsay84]探討分布式數據庫的實現技術,其研究成果為日后的分布式關系型數據庫架構標準DRDA(Distributed Relational Database Architecture)以及建立數據倉庫常用到的數據復制等機制提供了技術來源。

      1984 到 1992 年,IBM艾瑪登研究中心開始了一項名為 Starburst 的大型研究計劃[Haas90,Lohman91],旨在建立新一代的、具延伸性的關系型數據庫原型。所謂延伸性是指數據庫各子系統實現開放性,使用戶能夠很容易地把新功能加注到一個 SQL 關系型數據庫里,以便支持新的應用。通過把類似面向對象的抽象數據類型(Abstract Data Type)與繼承性(Inheritance)融入 SQL 語言及關系型數據庫核心的做法,Starburst容許系統內部與外部的功能被延伸。與此同時 Starburst 研究人員在查詢改寫優化處理(query rewrite optimization),特別是索引結構(specialized indices),日志預寫恢復技術(recovery method based on write-ahead logging),主動數據庫技術(active database)等方面皆有創新的貢獻。Starburst 的研究項目產生了大量的修正基本數據庫結構的文獻與專利。如同 System R 推動了 SQL 關系型數據庫的商業化一般,Starburst提供了新一代商用對象關系型數據庫(Object-relational Database)寶貴的經驗與技術來源。

      DB2 在面向對象數據庫技術上的發展目標是對象關系型數據庫,它是以關系型數據庫的架構為基礎,加入面向對象的功能。這有別于所謂的 OO Database,OO Database 不是關系型數據庫,而是以對象為目的所建立的一種新數據結構。現在計算機科學界以及數據庫工業在面向對象的走向方面,是以這種對象關系型數據庫為主流。DB2 面向對象的技術及其實施領先群雄。當其它數據庫公司還在探討面向對象技術融入數據庫的可能性時,IBM就已在1995 年推出這些最先進的東西。它在新的數據庫國際標準(SQL3)的研討和形成上,也一直處于領導者地位,它完善的 OO 結構已經存在于產品內核里。IBM 正以滾雪球的驚人速度在開發其他更先進的功能,例如對復雜數據的更深層次優化,抽象數據類型(Abstract Data Type)等等。

      對象數據庫DB4O應用也比較廣泛,雖然目前主要集中在嵌入式應用中.隨著技術的發展,理論的發展(關系型數據庫理論自其出現以來這么多年已經很成熟\穩定),不排除對象數據庫大放異彩的一天.

      不可否認,ORM在增刪改的操作上的確可以簡化開發量,但對于查詢,尤其是復雜查詢,還是得通過SQL來完成,并征對不同的數據庫進行優化.
        回復  更多評論   
    • # re: JPA這個爛東西
      杭州青鳥
      Posted @ 2008-02-03 12:11
      O/R Mapping是一個偉大的技術,它使程序員可以將大部分精力放在業務邏輯上,而不會為數據庫這端的編程有后顧之憂。但是任何技術都不是銀彈,可以解決一切問題,hibernate也留了sql query的口子,博主完全可以施展自己在SQL上的超深造詣,何必為了一點的不方便而大放厥詞呢?照博主這么說,中國也不要改革開放了,大家一起窮死算了。  回復  更多評論   
    • # re: JPA這個爛東西
      太陽里的雪
      Posted @ 2008-02-03 15:38
      orm肯定不適合那些大型網站,如到時候的分庫分表等,顯得無能為力。  回復  更多評論   
    • # re: JPA這個爛東西
      海邊沫沫
      Posted @ 2008-02-03 18:14
      @太陽里的雪
      誰說的?
      至于分庫分表,關鍵在于設計,和使不使用Hibernate沒有關系。  回復  更多評論   
    • # re: JPA這個爛東西
      香草的天空
      Posted @ 2008-02-12 12:50
      樓主我看是把理論和實現混淆了。
      一個東西,理論可能很先進,但是實現起來會有這樣那樣的問題。
      不過實現的不好不代表這個理論就廢掉了。

      現在潮流的大方向是簡單化,傻瓜化,提高生產性,降低技術難度。所以hibernate,aop,包括Linq應運而生,這是需求的產物。在大規模開發中,從資金,時間都不可能要求coder們都有很高手的水平,犧牲一定的性能提高開發效率是大勢所趨。或許再過10年,就不需要你寫什么SQL了,在ER圖里拖拖拉拉就可以生成SQL,和現在做網頁一樣。呵呵。

      hibernate我也看過它的一點源代碼。hibernate的優點我看主要是輕量級的封裝,它里面的設計也很好,我看起來很輕松。至于HQL,把數據庫關聯的部分再抽象出來,思路正確,但也不是多復雜的東西。
      對被EJB2.1折磨過的我來說,這樣一個簡單易用易于二次開發的框架,的確是很滿意了。

      其實hibernate和SQL倒沒什么對立,只不過把SQL封裝了一下。  回復  更多評論   
    • # re: JPA這個爛東西
      香草的天空
      Posted @ 2008-02-12 13:00
      AOP素個好東西,現在的實現上的問題只是因為sun不肯自己去寫一個改bytecode的API而已。
      OpenSource里面的東西沒有經過嚴謹的測試自然會有這樣那樣的問題。
      不過估計sun最后自己會拿一個版本去改個官方的實現。
      至于在大項目中的應用,2005年一個上千人月的項目中就用了。

      AOP也不是OO的競爭伙伴,而是彌補OO的不足。


      現在的框架我覺得也不需要全理解,搞得很高手,很有技巧,因為這種東西一方面還在完善中,一方面新陳代謝很快。應該去理解它的思想,知道他應該干什么,怎么去做。基本就夠了。  回復  更多評論   
    • # re: JPA這個爛東西
      83xia
      Posted @ 2008-02-17 12:42
      有意思哦  回復  更多評論   
    • # re: JPA這個爛東西
      垃圾
      Posted @ 2009-02-27 12:05
      我只能說你是井底之蛙!  回復  更多評論   

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


    網站導航:
     
     
    主站蜘蛛池模板: 99精品在线免费观看| 久久久久久久国产免费看| 日本不卡免费新一区二区三区| 亚洲成AV人在线观看网址| 亚洲av色香蕉一区二区三区蜜桃| 国产情侣激情在线视频免费看| 亚洲成无码人在线观看| 99re6热视频精品免费观看| 亚洲男人的天堂在线播放| 国产精品99久久免费观看| 亚洲AV一宅男色影视| 久9久9精品免费观看| 亚洲精品福利网泷泽萝拉| 午夜视频在线在免费| 亚洲AV无码专区在线观看成人| 国产亚洲福利一区二区免费看| 国产精品亚洲一区二区三区久久| 国产免费人成视频在线观看| 日本黄页网址在线看免费不卡| 亚洲一区二区三区无码影院| 青青操视频在线免费观看| 97久久精品亚洲中文字幕无码 | 黄网站色视频免费看无下截| 国产国产成年年人免费看片| 一级毛片a免费播放王色电影 | 四虎影视免费永久在线观看| 亚洲黄片手机免费观看| 久久久久亚洲精品无码系列| 18观看免费永久视频| 亚洲精品无码高潮喷水A片软| 亚洲国产专区一区| 日韩免费的视频在线观看香蕉| 亚洲欧洲精品久久| 免费观看亚洲人成网站| 中国在线观看免费的www| 亚洲欧洲久久精品| 亚洲AV成人潮喷综合网| 久久青草免费91线频观看不卡 | 国产国产人免费视频成69堂| 欧美日韩亚洲精品| 亚洲AV无码成人精品区在线观看|