隨筆-193  評(píng)論-715  文章-1  trackbacks-0

            在我閱讀此書(shū)之前,我應(yīng)該總結(jié)一下目前在 J2EE 方面所具有的基礎(chǔ)知識(shí)。在我看來(lái), J2EE 是一個(gè)極其龐大的系統(tǒng)架構(gòu),對(duì)于 J2EE 有一些初步的認(rèn)識(shí),也做過(guò)一些基于此架構(gòu)的小型或中小型項(xiàng)目,比如基于此技術(shù)架構(gòu)的網(wǎng)站,一些應(yīng)用系統(tǒng)等。 J2EE 包括以下部分:
            
            對(duì)于
          EJB ,我僅僅只是知道其基本概念,從未有過(guò)深入的學(xué)習(xí)和研究,也就是說(shuō)有一個(gè)膚淺的認(rèn)識(shí)。而對(duì)于 IoC AOP 則有一定的了解,因?yàn)橹霸趯W(xué)習(xí) Spring 的時(shí)候有過(guò)一些深入的學(xué)習(xí),但是對(duì)于 AOP 的理解是遠(yuǎn)遠(yuǎn)不夠的。

          好了,開(kāi)始言歸正傳,真正開(kāi)始談?wù)勔恍┪易约旱哪w淺觀點(diǎn)(甚至是錯(cuò)誤的觀點(diǎn))。

          ?

          書(shū)中談到“ J2EE 應(yīng)用項(xiàng)目至少和從前的非 J2EE 項(xiàng)目一樣容易失敗――如果不是更容易失敗的話”( page 4 ),我認(rèn)為一個(gè)項(xiàng)目的失敗與該項(xiàng)目采用何種框架和技術(shù)有太大的關(guān)系,在這個(gè)時(shí)代,對(duì)于架構(gòu)和技術(shù)的選擇有很多,而更關(guān)鍵的因素可能得從軟件項(xiàng)目管理方面來(lái)衡量,從所周知,一個(gè)項(xiàng)目采用何種架構(gòu)和細(xì)節(jié)性的技術(shù)只是項(xiàng)目管理的一個(gè)小部分。“而在 J2EE 遭遇失敗的場(chǎng)景中, EJB 通常都扮演著重要的角色”( page 4 ),這樣說(shuō)似乎也顯得很牽強(qiáng)。

          書(shū)中再次強(qiáng)調(diào)“最成功的標(biāo)準(zhǔn)都是從實(shí)踐中發(fā)展出來(lái)的” (page 5) ,最顯著的例子莫過(guò)于 OSI TCP/IP 之間的關(guān)系。

          本書(shū)的主旋律主要包括以下部分:

          1 、簡(jiǎn)單

          我常常在工作中就把一些問(wèn)題看得較復(fù)雜,因?yàn)榭傆X(jué)得這不是一件壞事,考慮到一個(gè)問(wèn)題的復(fù)雜性并認(rèn)真想清楚此問(wèn)題的各個(gè)方面,在解決這個(gè)問(wèn)題的時(shí)候相對(duì)來(lái)說(shuō)就會(huì)簡(jiǎn)單一些,但是這樣也確實(shí)會(huì)帶來(lái)諸多問(wèn)題,如軟件成本的核算,我就曾因此在一個(gè)客戶(hù)需求并不高的情況下把問(wèn)題復(fù)雜化了,導(dǎo)致了那個(gè)方案的失敗。上次我就是犯了“提前叫客戶(hù)掏錢(qián)購(gòu)買(mǎi)的復(fù)雜架構(gòu)”( page 6 )這樣的錯(cuò)誤。“這種想法有兩個(gè)問(wèn)題:首先,是否讓系統(tǒng)變得如此復(fù)雜不應(yīng)該由作為架構(gòu)師和開(kāi)發(fā)者的我們來(lái)決定,因?yàn)橘I(mǎi)單的人不是我們;其次,即便系統(tǒng)最終變得如此復(fù)雜,我們又怎么知道一開(kāi)始將它們考慮進(jìn)來(lái)就能節(jié)約成本呢?說(shuō)不定,等到有需求的時(shí)候再修改架構(gòu)還會(huì)更節(jié)約呢。”( page 6

          書(shū)中主要從技術(shù)層面上討論了這個(gè)問(wèn)題,如數(shù)據(jù)庫(kù)的分布,多種客戶(hù)端等。對(duì)于問(wèn)題的解決我們應(yīng)該更切合實(shí)際一點(diǎn),不要沉溺于一些不切實(shí)際的想象。

          “XP 的核心教義之一就是:很多時(shí)候,越是節(jié)約成本,就越能開(kāi)發(fā)出高質(zhì)量的軟件;不要試圖預(yù)先解決所有能想到的問(wèn)題。 page 6

          “使 J2EE 項(xiàng)目具備架構(gòu)重構(gòu)能力的關(guān)鍵在于:遵循良好的 OO 設(shè)計(jì)法則, 并且始終針對(duì)接口編程、而非針對(duì)類(lèi)編程;將EJB之類(lèi)的技術(shù)隱藏在普通Java對(duì)象背后。 ”( page 7

          2 、生產(chǎn)率

          雖然我沒(méi)有真正的用 EJB 來(lái)開(kāi)發(fā)過(guò)任何項(xiàng)目,但根據(jù)我對(duì) EJB 的了解來(lái)看, EJB 在生產(chǎn)效率方面確實(shí)存在著很大的問(wèn)題。

          3 OO

          以前我在設(shè)計(jì)一個(gè)對(duì)象的時(shí)候,根本沒(méi)有認(rèn)真的考慮過(guò)某一個(gè)對(duì)象是否真正的合理,這個(gè)需要在以后的設(shè)計(jì)中得以重視。

          4 、需求至上

          J2EE 的開(kāi)發(fā)者們僅僅因?yàn)樗麄兊募夹g(shù)選擇――而不是客戶(hù)的需求――就耗費(fèi)了更多的精力。” (page 8)

          5 、經(jīng)驗(yàn)過(guò)程

          經(jīng)驗(yàn)對(duì)于一個(gè)軟件開(kāi)發(fā)者來(lái)說(shuō)是極其重要的,很多問(wèn)題只有你在具體的實(shí)施過(guò)程中才會(huì)發(fā)生,但是我從不拿一個(gè)人參加工作的時(shí)間長(zhǎng)短來(lái)衡量一個(gè)人的經(jīng)驗(yàn)是否豐富。

          書(shū)中提到的循證醫(yī)學(xué)( EBM )到是一件很有意思的事情,我覺(jué)得值得我們中國(guó)的醫(yī)生好好的學(xué)習(xí)和思考一下(題外話)。

          6 、可測(cè)試性

          對(duì)于軟件測(cè)試,我其實(shí)并沒(méi)有深入的認(rèn)識(shí),我一直都處在開(kāi)發(fā)的前沿,沒(méi)有更多的機(jī)會(huì)和時(shí)間來(lái)深入研究測(cè)試,其實(shí)軟件測(cè)試是一門(mén)很值得研究的學(xué)問(wèn)。就拿騰訊的程序來(lái)說(shuō),其出錯(cuò)的機(jī)率遠(yuǎn)遠(yuǎn)高于其它軟件,這是人的共知的,我想這也是騰訊所需要重視的。

          ?

          關(guān)于輕量級(jí)框架和容器,我一直在關(guān)注 Spring PicoContainer Nanning 等。

          ?

          書(shū)中講到的“帕累托法則( 80/20 法則,或 90/10 法則)”的確可以作為我們?cè)陧?xiàng)目實(shí)施過(guò)程中考慮該如何解決問(wèn)題的一個(gè)衡量標(biāo)準(zhǔn)。即“花比較少的力氣就可以解決大部分的問(wèn)題,而要解決剩下的少部分問(wèn)題則需要多得多的努力。”( page 11 )這教會(huì)了我們?nèi)绾卧陧?xiàng)目中做適當(dāng)?shù)娜∩幔òㄜ浖軜?gòu)的取舍和需求的取舍,當(dāng)然很多時(shí)候需求是不能改變的)。

          EJB 在那些真正需要對(duì)象的分布應(yīng)用方面仍是上佳之選,同時(shí)在需要大量使用異步消息的應(yīng)用中,也是不錯(cuò)的選擇,同時(shí), EJB 在金融中間件的應(yīng)用中,也能為項(xiàng)目提供價(jià)值。

          本書(shū)所推行的思想就是, EJB 并不是要被我們完全拋棄,只是在一些沒(méi)有必要使用 EJB 的項(xiàng)目中,我們可以如何找到更好,更簡(jiǎn)單,更具生產(chǎn)率的替代方案。

          同時(shí)需要澄清的一個(gè)誤解是: EJB 一直被視為 J2EE 平臺(tái)的核心。這種觀點(diǎn)把 EJB 的地位看得太重了一些。

          書(shū)中說(shuō)“還有強(qiáng)大的政治因素(而非技術(shù)因素)促使人們使用 EJB ”( page 12 ),對(duì)于此句中的“政治因素”不知所指。是說(shuō)的來(lái)自 Java 官方(即 SUN )的因素嗎?

          posted on 2005-11-29 17:19 Robin's Programming World 閱讀(5559) 評(píng)論(8)  編輯  收藏 所屬分類(lèi): Java讀書(shū)

          評(píng)論:
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-11-30 13:37 | space
          put it to trash bin;  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-11-30 14:18 | nighthawk
          en,Robin?javaeye的?  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-11-30 15:01 | Robin's Java World
          我是Robin不是Robbin.

          本來(lái)這是我自己的讀書(shū)筆記,所以水平難免極低,不對(duì)之處請(qǐng)大家原諒!
          希望大家能給我一些中肯的意見(jiàn)。

          謝謝!  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-11-30 15:43 | 笨笨狗
          這本書(shū)我也看了,說(shuō)白了就是sping的廣告手冊(cè),感覺(jué)作者帶有強(qiáng)烈的個(gè)人色彩,權(quán)當(dāng)補(bǔ)充知識(shí)得了,不足全信  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-11-30 16:31 | Robin's Java World
          關(guān)于讀書(shū),肯定應(yīng)該持“不可不信書(shū),也不可全信書(shū)”的態(tài)度。

          其實(shí)這本書(shū)在架構(gòu)方面有些知識(shí)還是值得一看的。

          謝謝!  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2005-12-01 22:00 | mkclawhammer
          書(shū)中多次提到了“政治因素”,我想可能是指JCP,這個(gè)機(jī)構(gòu)由各大廠商參與,出于自身的利益而互相爭(zhēng)奪標(biāo)準(zhǔn),阻礙了java規(guī)范的快速演化。對(duì)“政治因素”的不滿在不少老外們寫(xiě)的書(shū)中都可以感覺(jué)的到。  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2006-04-26 14:21 | pc
          這本書(shū)還好吧  回復(fù)  更多評(píng)論
            
          # re: 《Expert one-on-one J2EE Development without EJB 中文版》讀書(shū)筆記(一) 2006-06-09 14:32 | Robin's Java World
          應(yīng)該說(shuō)這本書(shū)不是專(zhuān)門(mén)講具體技術(shù)的,理解其中的思想才是關(guān)鍵。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 长垣县| 宝山区| 商洛市| 云梦县| 浦江县| 大丰市| 嘉义市| 阿巴嘎旗| 奎屯市| 兴城市| 延寿县| 惠州市| 甘德县| 双牌县| 江安县| 丰都县| 临泽县| 拜城县| 英吉沙县| 盖州市| 莆田市| 巴中市| 河南省| 驻马店市| 永兴县| 石台县| 团风县| 榆社县| 南皮县| 昌都县| 中西区| 禹城市| 乌兰察布市| 天门市| 灵丘县| 仁怀市| 西盟| 彭山县| 西和县| 伊宁市| 安徽省|