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

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

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

    Vincent.Chan‘s Blog

    常用鏈接

    統(tǒng)計

    積分與排名

    網(wǎng)站

    最新評論

    J2EE項目風(fēng)險(轉(zhuǎn)載)

    J2EE項目風(fēng)險

    一、概述

    當(dāng)您開始著手一個企業(yè)級JAVA項目的時候,您必須對很多方面進(jìn)行權(quán)衡:供應(yīng)商關(guān)系,為保證完整性在設(shè)計和開發(fā)階段的過度設(shè)計。每個都會帶來與生俱來的的一些風(fēng)險,其中一些是非常明顯的,而其他則不怎么明顯。但是所有這些風(fēng)險都是可以避免的。在Humphrey Sheil的這篇文章中,他分析了有可能對企業(yè)級JAVA項目的成功造成威脅的10個風(fēng)險,并且描述了避免方法。

    在我當(dāng)程序員、高級程序員和系統(tǒng)構(gòu)架師的各個時期,我見證了許多企業(yè)級JAVA項目的喜怒哀樂!當(dāng)我思考到底是什么導(dǎo)致項目失敗或者成功的原因的時候,我發(fā)現(xiàn)很難找到一個完美的答案,因為為所有的軟件項目定義什么是成功是很難的。J2EE項目也不例外。而且,項目的成敗不是絕對的。在這篇文章中,我將展示影響企業(yè)級Java項目成敗的前10個風(fēng)險,并將他們展示給您。

    一些風(fēng)險會延遲項目的速度,一些則是錯誤的岔路,另外一些則會使項目完全失?。〉?,只要有好的準(zhǔn)備、有關(guān)的知識儲備以及對其有一定了解的知道者,這都是可以避免的。

    這篇文章的結(jié)構(gòu)很簡單;我將對每個風(fēng)險按照下面的格式講述:

    風(fēng)險名稱:描述風(fēng)險的一行文字。

    項目階段:風(fēng)險發(fā)生的項目階段。

    受影響的項目階段:在很多情況下,風(fēng)險是影響項目的后邊階段的。

    征兆:風(fēng)險的相關(guān)征兆。

    方案:如何避免這種風(fēng)險以及將其對項目的影響降低到最小。

    備注:我沒有在前邊條目中提到的但是必須要提醒的關(guān)于風(fēng)險的一些東西。

    我們將在企業(yè)級Java項目的重要的階段檢查每個風(fēng)險。項目涉及到的階段有:

    選擇服務(wù)提供商:在開始J2EE項目之前選擇最好的工具組合-從應(yīng)用服務(wù)器到什么品牌的咖啡。

    設(shè)計:嚴(yán)格的瀑布方法學(xué)模型和“編碼然后運行”方法都依賴于設(shè)計:我進(jìn)行足夠的設(shè)計然后就可以開始開發(fā)了。我對設(shè)計階段進(jìn)行全面思考以保證在開始開發(fā)之前我已經(jīng)思考了所有的問題和解決方案。但是、我并不害怕在這個階段編碼,有時這是回答有關(guān)性能和模塊性問題的唯一途徑。

    開發(fā):在這個階段我們前期階段的工作的效果將會顯現(xiàn)出來。好的工具加上好的設(shè)計并不意味著開發(fā)階段會很順利,但是確實有幫助!

    穩(wěn)定性負(fù)載測試:在這個階段,系統(tǒng)構(gòu)架師和項目經(jīng)理要將系統(tǒng)特性凍結(jié),開始關(guān)注于構(gòu)建質(zhì)量,并保證系統(tǒng)的重要參數(shù)指標(biāo)滿足要求-并發(fā)用戶數(shù),失敗次數(shù)等。但是,質(zhì)量和性能不能在前邊的階段被忽略。您不可能寫低質(zhì)量或運行速度緩慢的代碼留到以后再去修正。

    維護(hù):這其實并不是工程的一個階段,它只是一個時間段。這個階段都涉及到了準(zhǔn)備階段。前期的錯誤(糟糕的設(shè)計以及開發(fā)階段對供應(yīng)商的錯誤選擇)將會顯現(xiàn)出對你項目構(gòu)成威脅。

    圖一顯示了項目各個階段的不同的風(fēng)險(特別是對后期造成的風(fēng)險)

    好了,先不管別的亂七八糟的東西了,咱們開始看一看10個最大的風(fēng)險吧!

    風(fēng)險分析

    (一)風(fēng)險1:不懂Java、EJB或者J2EE。

    我將逐條分析前面所說的三個東西。

    描述:不懂Java。

    工程階段:開發(fā)。

    受影響階段:設(shè)計,穩(wěn)定階段,維護(hù)階段。

    受影響的系統(tǒng)特性:可維護(hù)性、可量測性以及性能。

    現(xiàn)象:寫JDK核心API已經(jīng)有的函數(shù)和類。

    不知道下面所列的這些東西(下邊列出的只是一些例子而已):垃圾收集;什么時候?qū)嵗龝焕占D―懸掛引用問題;Java中的繼承機制(或者他們的折衷選擇);方法覆蓋和重載;為什么 java.lang.String(這里它替代了你喜歡用的類)會導(dǎo)致糟糕的性能;Java的引用傳遞(與EJB中的傳值相比較);使用==與實現(xiàn)equals() 方法這種非初級應(yīng)用相比較;Java在不同平臺上的不同的線程調(diào)度策略(例如空閑還是非空閑);綠色線程與本地線程的比較;熱點(為什么舊有的性能調(diào)節(jié)技術(shù)否定熱點優(yōu)化);JIT以及什么時候好用的JIT變得不好用(例如不安裝JAVA_COMPILER的時候您的代碼仍然完好的運行等等);Collections API

    RMI(遠(yuǎn)程方法調(diào)用)

    解決方案:

    您必須加深java的相關(guān)知識,特別是關(guān)于它的強項和弱項。Java已經(jīng)超越了語言的范疇。理解它相當(dāng)于理解一個平臺(JDK和相關(guān)工具)。具體來說,如果您還沒有取得Java程序員認(rèn)證您必須去取得-您會驚訝的發(fā)現(xiàn)您還這么多不了解的。如果把這做為你項目組并且將它推行到每一個人就更好了,而且也更有趣。如果有可能的話家里一個郵件列表來討論Java技術(shù)并且保證它的活躍那就更好了。(我工作國的每個公司都有這樣的郵件列表,但是他們大部分由于沒有足夠的人氣而奄奄一息)。向你的開發(fā)同事學(xué)習(xí)――這就是最好的來源。

    備注:

    如果您或者您的開發(fā)團隊成員不懂這門語言以及這個平臺的話,您能希望您的團隊能開發(fā)出成功的企業(yè)級Java程序嗎?高級的Java程序員使用EJBJ2EE將會非常容易。相反,低級的或者是經(jīng)驗不足的程序員則會將J2EE系統(tǒng)弄得質(zhì)量很差。

    描述:不懂EJB

    項目階段:設(shè)計

    項目影響階段:開發(fā)、運行

    影響到的系統(tǒng)特性:可維護(hù)性

    現(xiàn)象:EJB只被使用一次(特別是返回到等待池衷的無狀態(tài)會話Bean

    不可重用的EJB

    不知道程序員要做什么,容器能提供什么。

    不符合規(guī)范的EJB(使用線程,調(diào)用本地方法,嘗試訪問IO等等)。

    解決方案:

    Description: Not understanding J2EE

    為了增加您對EJB的知識,請拿出一個周末的時間看一下EJB規(guī)范(1.1版有314頁)。然后閱讀2.0規(guī)范以了解1.1規(guī)范沒提供了什么而2.0提供了什么。特別要注意告訴做為應(yīng)用程序開發(fā)者的您在EJB中怎樣做才是規(guī)范的做法的那些章節(jié)。

    備注:

    不要從供應(yīng)商的角度看EJB世界。你一定要了解EJB規(guī)范和特定容器的EJB實現(xiàn)之間的差別。這將有利于您在必要的時候?qū)㈤_發(fā)經(jīng)驗用到其他供應(yīng)商(或其他版本)上去。

    項目階段:設(shè)計

    項目影響階段:開發(fā)

    受到影響的系統(tǒng)階段:可維護(hù)性,可擴展性,性能

    現(xiàn)象:

    一切都是EJB的設(shè)計。

    使用手動事務(wù)管理而不是使用容器提供的機制。

    定制安全機制――J2EE平臺提供了盡可能完善的集成化的安全構(gòu)架,從頭到尾我們很少用到它的全部功能。

    解決方案:

    學(xué)習(xí)J2EE的關(guān)鍵部件以及它們優(yōu)缺點,并把它們列成表格形式。弄清楚它們的每項服務(wù),記住“知識就是力量”。

    備注:

    只有知識才能修補這些錯誤。一個好的Java程序員將會是一個好的EJB開發(fā)者。您掌握的J2EEJava的知識越多,您在設(shè)計和實現(xiàn)階段做的就會更好。這些將會在設(shè)計階段開始顯示作用。

     

    風(fēng)險2:過度設(shè)計(使用EJB還是不使用)

    項目階段:設(shè)計

    受影響項目階段:開發(fā)

    受影響系統(tǒng)特性維護(hù)、擴展性,性能

    征兆:

    過大的EJB

    開發(fā)者無法解釋他們的EJB在做什么以及他們之間的關(guān)系。

    不可重用的EJB、組件或者服務(wù)

    本應(yīng)該使用已有事務(wù)的時候EJB啟動了一個新的事務(wù)

    為了安全,把數(shù)據(jù)獨立級別設(shè)太高

    解決方案:

      對過度設(shè)計的解決方案直接來自于極限編程(XP)方法學(xué)。用最小的設(shè)計和編程來滿足需求,除此之外其他的不考慮。除非你需要明確知道今后可能的需求,如將來的負(fù)載要求,或者系統(tǒng)在最高負(fù)載下的表現(xiàn),否則大可不必為系統(tǒng)將來的情況做太多考慮或猜測。另外,J2EE平臺已經(jīng)定義了可伸縮性及出錯恢復(fù)等特性,可以讓服務(wù)器系統(tǒng)為你進(jìn)行處理。

      在最小的系統(tǒng)中,系統(tǒng)由一個個小的組件組成,每個組件完成一個單獨的工作。這樣系統(tǒng)的可重用性得到改善,系統(tǒng)的穩(wěn)定性也同樣得到改善。而且,系統(tǒng)的可維護(hù)性得到增強,并且未來新的需求的加入也將變得更簡單。

    備注:

    除了采用上邊的解決方案,也可以采用設(shè)計模式。它們可以顯著改善您系統(tǒng)的設(shè)計。EJB模型本身也廣泛的使用了設(shè)計模式。例如,每個EJBHome接口都是FinderFactory模式的例子。遠(yuǎn)程接口則是真實Bean的代理,對于提供容器的能力也是至關(guān)重要的,這些容器截取調(diào)用信號并提供諸如透明負(fù)載均衡的服務(wù)。忽略設(shè)計模式的價值將會讓是非常危險的。

    另外一個我常常警告的風(fēng)險就是為了EJB而使用EJB。在你的應(yīng)用中的某一部分可能并不需要EJB,甚至你的整個應(yīng)用都不需要。這是過度設(shè)計所走的極端,而且我確實也目睹了一些良好的servletJavaBean應(yīng)用被重構(gòu)為EJB,而這樣做并沒有很好的技術(shù)上的理由。

    風(fēng)險3:沒有將業(yè)務(wù)規(guī)則和邏輯表現(xiàn)形式相分離

    項目階段:設(shè)計

    受影響項目階段:開發(fā)

    受影響系統(tǒng)特性維護(hù)、擴展性,性能

    征兆:

    過大的沒有邊界的Jsp

    您發(fā)現(xiàn)您在業(yè)務(wù)邏輯發(fā)生變化的時候在編輯JSP頁面。

    顯示上的改變迫使你修改并重新部署EJB和其他后臺組件

    解決方案:

    J2EE平臺使你有機會將表示邏輯和導(dǎo)航控制相分離,進(jìn)而與業(yè)務(wù)規(guī)則相分離。這叫做Model 2框架。如果您已經(jīng)陷入這個陷阱,您可以使用重構(gòu)。

    備注:

    可以使用具有一致性的設(shè)計來進(jìn)行用戶界面框架的連接(例如taglibs)浙江有助于您在您的項目中將業(yè)務(wù)規(guī)則和邏輯表現(xiàn)形式相分離,不需要您創(chuàng)建一個新的GUI框架,現(xiàn)在已經(jīng)有很多穩(wěn)定的實現(xiàn)。對他們一次進(jìn)行評估,然后選出一個最符合您需要的框架來。

    風(fēng)險4: 沒有在開發(fā)環(huán)境中進(jìn)行適當(dāng)?shù)呐渲?/span>

    項目階段:開發(fā)

    受影響的項目階段: 運行、并發(fā)、成熟期

    受印象的系統(tǒng)特征:你的權(quán)衡

    征兆:

    經(jīng)過多日或數(shù)周的時間才能過渡到成熟系統(tǒng)

    風(fēng)險存在與過渡期,帶有很多不確定性,有些主要的功能場景沒有被測試到

    實際系統(tǒng)中的數(shù)據(jù)和開發(fā)、測試中的數(shù)據(jù)不同

    無法在開發(fā)者機器上進(jìn)行組建

    應(yīng)用行為在開發(fā)、穩(wěn)定化及產(chǎn)品環(huán)境中各不相同

    解決方案:

    風(fēng)險4的解決方案是忠實地在開發(fā)環(huán)境中配置實際的環(huán)境,讓開發(fā)所用環(huán)境接近于要實施產(chǎn)品的環(huán)境。如果客戶的運行環(huán)境是JDK 1.2.2Solaris 7,那么不要使用JDK 1.3 Red Hat Linux進(jìn)行開發(fā)。而且不要在一個應(yīng)用服務(wù)器開發(fā)而在另一種應(yīng)用服務(wù)器中運行。使用實際產(chǎn)品的數(shù)據(jù)進(jìn)行測試,而不要依靠于手工錄入的模擬數(shù)據(jù)。如果產(chǎn)品數(shù)據(jù)很敏感,則要使之變得不敏感,然后把它配置起來。開發(fā)中未能預(yù)期到的產(chǎn)品數(shù)據(jù)將對以下過程產(chǎn)生破壞:

    數(shù)據(jù)校驗規(guī)則

    系統(tǒng)測試行為

    系統(tǒng)組件構(gòu)建(特別地包括:EJB-EJB以及EJB-數(shù)據(jù)庫)

    最為糟糕的是,這樣還可能產(chǎn)生異常、空指針,以及你從沒見過的問題。

    備注:

    開發(fā)者常常將安全問題留到穩(wěn)定階段才解決(程序界面很好的運行,我們現(xiàn)在加上用戶校驗的東西吧)。要防止這樣的陷阱產(chǎn)生,你也可以花費同樣多的時間在業(yè)務(wù)邏輯中改進(jìn)安全性。

    成熟期是一個復(fù)雜的過程,其中充滿了各種非技術(shù)的和技術(shù)的問題。你可能會陷于想不到的一大堆問題中,這就是成熟化所意味的一切。開發(fā)及穩(wěn)定化環(huán)境過程為你提供了制造更多這樣的問題,以及發(fā)現(xiàn)這樣的問題的地方,不斷去做,就可以大大減少風(fēng)險。

    你做的工程越多,你就越能了解什么是可行的,什么是不可行的。你可以對工程問題進(jìn)行記錄,以避免同樣的錯誤重復(fù)發(fā)生。

    風(fēng)險5:選擇錯誤的供應(yīng)商

    項目階段:供應(yīng)商選擇

    受影響項目階段:設(shè)計,開發(fā),維護(hù),測試,運行

    受影響系統(tǒng)特性:性能,可維護(hù)性,穩(wěn)定性。

    征兆:

    開發(fā)者花費大量時間跟開發(fā)工具腳勁而不是使用他們進(jìn)行高效率的開發(fā)。為了解決已知的或未知的Bug,系統(tǒng)需要重構(gòu),并且不同的開發(fā)工具幾乎無法整合(應(yīng)用服務(wù)器和IDE,IDE和調(diào)試器,源碼控制和構(gòu)架工具等等)

    對于IDE,調(diào)試器等,開發(fā)者會贊同使用他們喜歡的工具。

    解決方案:

    為了避免風(fēng)險5,您需要一個好的供應(yīng)商選擇流程,風(fēng)險10也適用于此。

    對于IDE,唯一的評估它的途徑就是使用它。評估J2EE實現(xiàn)的唯一途徑就是構(gòu)建一個試驗并對您關(guān)心的系統(tǒng)的特性進(jìn)行試驗。您肯定不希望您花費了3個月時間開發(fā)并進(jìn)行了培訓(xùn)后才發(fā)現(xiàn)系統(tǒng)有很多的bug。

    如果在開發(fā)過程中,您對您的工具集有疑問怎么辦呢?當(dāng)然一些工具肯定會比另一些表現(xiàn)好。如果你現(xiàn)則了不滿足您要求的應(yīng)用服務(wù)器,那么請吸收它然后修改開發(fā)規(guī)范。如果IDE不好用,請降低代碼標(biāo)準(zhǔn)(使用制表符還是空格)。讓開發(fā)者選擇使他們更高效的開發(fā)工具。

    備注:

      要知道最好的供應(yīng)商和工具不是對一個特殊任務(wù)的一次性工作。您要經(jīng)常進(jìn)行市場評估。例如,我在過去的12個月中使用了四個不同的IDE,這依賴于我的應(yīng)用服務(wù)器、平臺還有是否編寫EJB。

    風(fēng)險6:不了解供應(yīng)商

    項目階段:供應(yīng)商選擇

    受影響項目階段:供應(yīng)商選擇之后的所有階段-設(shè)計,開發(fā),維護(hù),測試,運行

    受影響系統(tǒng)特性:可維護(hù)性,可擴展性,性能

    征兆:

    開發(fā)時間比預(yù)想的長了超過33%,開發(fā)者重新發(fā)明輪子――開發(fā)供應(yīng)商已經(jīng)提供的需求的特性。

    解決方案:

    為了避免不了解供應(yīng)商造成的風(fēng)險,訂閱所有供應(yīng)商提供的資源,您可以在郵件列表、新聞組和版本備注(特別是已修正的bug列表)中得到您評估需要的信息。

    一旦確定了供應(yīng)商,請盡快開始培訓(xùn),在項目開始前越早越好。下一步,構(gòu)建一個快速模型來證明,從而打消開發(fā)團隊的顧慮。構(gòu)建EJB并部署它們,然后在表達(dá)層(Swing GUI, JSP等等)中調(diào)用他們。如果您在進(jìn)行系統(tǒng)開發(fā)的時候才進(jìn)行開發(fā)環(huán)境的搭建,那么環(huán)境搭建常常會造成麻煩。我看到過這樣的項目,他們沒有一個構(gòu)建流程,“我們沒有時間了”。當(dāng)團隊必須工作到11點的時候表現(xiàn)的更為明顯,每晚他們只是將程序拼起來然后運行。磨刀不誤砍柴工-這樣做會節(jié)省你很多時間。有人會說“我們計劃中中沒有安排這個時間”,我說“您的計劃中沒有不去這么做的時間”

    備注:

    不同的供應(yīng)商對J2EE的特定的實現(xiàn)技術(shù)是不同的。讓我們看看一個兩個供應(yīng)商的例子:IBMBEA。IBM采用圖形化的WebSphere環(huán)境,恰恰相反,BEA則為WebLogic提供很多的命令行工具。IBMWebSphere使用IIOP進(jìn)行通訊,并拋出CORBA異常(對程序員非透明),WebLogic則沒有采用CORBA底層構(gòu)架而是默認(rèn)使用t3協(xié)議。

    WebSphereVisual Age是緊密結(jié)合在一起的,而Weblogic則是可以使用多種IDE的。您可以使用幾乎任何IDE進(jìn)行WebLogic的開發(fā)。

    他們之間是還是有不同點的。你是一種應(yīng)用服務(wù)器的專家并不意味著你是其他應(yīng)用服務(wù)器的專家。上述各點體現(xiàn)在各個方面:IDE、調(diào)試器、構(gòu)建工具,配置管理等等。在一個特定工具上熟悉的人可以在評估該提供商的競爭對手產(chǎn)品時具有一些便利。但是這并不意味著您可以把程序在不同程序之間進(jìn)行無縫鏈接。因此,您必須花費一些時間來熟悉這些工具。

    風(fēng)險7:沒有考慮可擴展性和性能

    項目階段:設(shè)計

    受影響項目階段:可擴展性,性能,可維護(hù)性

    征兆:無法接受的慢速的系統(tǒng)(不應(yīng)該服從重構(gòu))

    服務(wù)器端被很強的負(fù)載所壓迫,導(dǎo)致不能充分發(fā)揮集群技術(shù)的全部優(yōu)勢。

    解決方案:

    在這個風(fēng)險中,我們接近我們系統(tǒng)性能的可擴展性需求-我們在您開始開發(fā)之前要知道您需要什么參數(shù)。如果您需要每秒50個并發(fā)事務(wù)數(shù),而您的實體Bean只能提供40個,那么您需要尋找其他可選的解決方案,例如存儲過程、批處理或者重寫聯(lián)機事務(wù)處理系統(tǒng)。

    您要讓供應(yīng)商參與到系統(tǒng)性能需求中去――他們知道他們產(chǎn)品的強項和弱項,這樣可以對您有相應(yīng)的幫助。

    備注:

    沒有為可擴展性和性能進(jìn)行設(shè)計看起來與第二個風(fēng)險(過度設(shè)計)相沖突。實際上他們是互為補充的。對于風(fēng)險2我提倡只實現(xiàn)真正需要的功能。通過說明性能和可測試性要求,您可以設(shè)定需求的上界。

    如果您認(rèn)為可擴展性是一個重點要求的話,您就需要首先選用一個帶集群支持的應(yīng)用服務(wù)器,可能還需要一個事務(wù)緩沖池支持。您還需要象EJB這樣的業(yè)務(wù)組件引擎,因為您可以充分利用服務(wù)器的系統(tǒng)構(gòu)架。在這一點上極限編程將不會有任何問題,在極限編程中系統(tǒng)是用來滿足客戶的功能和行為要求的。

    風(fēng)險8:缺乏開發(fā)過程控制。

    項目階段:開發(fā)

    受影響階段:維護(hù),運行

    受影響系統(tǒng)特征:可維護(hù)性,代碼質(zhì)量。

    現(xiàn)象:

    項目計劃看起來象瀑布模型:首先根據(jù)草案設(shè)計系統(tǒng),然后我們就坐下來開始漫長的編碼。因為構(gòu)建過程不存在,所以構(gòu)建成了一個夢魘。構(gòu)建的日子也就是停止開發(fā)的日子,因為我們什么都沒得到。

    組件在集成之前沒有經(jīng)過足夠的測試。集成測試意味著將兩個不穩(wěn)定的組件捆在一起,然后到調(diào)試器的堆棧樹中去觀察他們。

    解決方案:

    一個好的軟件方法學(xué)將會節(jié)省您的生命。我已經(jīng)提過了XP;在參考資料章節(jié)中我給出了相關(guān)的站點。在那里您會對XP有更深入細(xì)致的了解。

    備注:

    我無法想象我不使用Junit進(jìn)行單元測試和Ant進(jìn)行構(gòu)建的日子(這兩個免費工具支撐著XP方法學(xué))。如果想了解更多關(guān)于JunitAnt,請參考資源這一章。

    風(fēng)險9:使用框架失敗

    項目階段:開發(fā)

    受影響項目階段:開發(fā)、維護(hù)、運行

    受影響系統(tǒng)特征:維護(hù)性,可擴展性,代碼質(zhì)量

    征兆:

    核心類庫中的Bug在代碼中多次使用

    沒有設(shè)定日志標(biāo)準(zhǔn),所以輸出不能此采用腳本進(jìn)行讀取和分析

    錯誤的或不協(xié)調(diào)的異常處理。我再有的站點看到,終端用戶可以看到系統(tǒng)的低級錯誤;例如當(dāng)用戶要將他們購物車中的商品付費的時候出現(xiàn)一個SQLException stack trace。用戶應(yīng)該怎么辦呢?難道要求他給數(shù)據(jù)庫管理員打電話,然后要求他修改主鍵約束錯誤?

    下面的任務(wù)必須以某種方法進(jìn)行處理,并且要成為任何構(gòu)架的第一目標(biāo):

    日志:

    異常處理

    奪得到某些資源的連接(例如數(shù)據(jù)庫、命名服務(wù))

    構(gòu)建Jsp 頁面

    數(shù)據(jù)校驗

    解決方案:

    我對輕量級框架非常情有獨衷,實際上,我在JavaWorld上的第一篇文章就是《框架節(jié)省時間》,它討論的就是企業(yè)及Java環(huán)境衷的框架。如果您已經(jīng)在開發(fā)了,那么通過使用一個框架您仍然能夠收獲頗豐。在重做這些東西的時候,您將會遇到諸如錯誤處理和日志之類的錯誤,但是從長遠(yuǎn)來看這會大大節(jié)省時間和金錢。

    備注:

    當(dāng)在選擇框架和基礎(chǔ)組件開發(fā)的時候,您必須思考他們的不同的重用級別。第一級別的重用率時0.9甚至更高,也就是說項目中90%將會用到它。

    風(fēng)險10:項目計劃和設(shè)計建立在市場炒作上,而非實際的技術(shù)上。

    備注:一開始我沒有把風(fēng)險10加上來,后來我發(fā)現(xiàn)很多人都對企業(yè)級Java有誤解,特別是對于剛剛解除這個領(lǐng)域的人。

    項目階段:所有受影響的階段,特別是供應(yīng)商選擇階段尤甚。

    受影響項目階段:所有階段。

    受影響系統(tǒng)特性:可維護(hù)性,可擴展性,設(shè)計質(zhì)量,編碼質(zhì)量。

    征兆:

    因為EJB是可移植的所以在技術(shù)選型方面不重視。

    在供應(yīng)商選擇時沒有進(jìn)行產(chǎn)品試驗

    在項目生命周期衷需要更換開發(fā)工具。

    解決方案:

    別 輕信項目外任何有即得利益人得說法。也就是說:不要輕信供應(yīng)商(除非您對他們非常了解),不要輕信白皮書(因為他們是供應(yīng)商花錢買的)。如果您需要真正得 建議,那么請查找關(guān)于它得相關(guān)評論。甚至,可以下載您想評估得工具,在上邊試著開發(fā)一個小的系統(tǒng)原型。不要運行工具中自帶的例子(每個好一點的供應(yīng)商都會 加上這個)。

    為了概括總結(jié),花一定的時間為您的項目選擇正確的供應(yīng)商和工具集。縮小您的選擇范圍到三四個供應(yīng)商,然后進(jìn)行測試。對您選擇的IDE、應(yīng)用服務(wù)器進(jìn)行為時一周的測試和構(gòu)建。熟悉您將要用來開發(fā)項目的工具。

    總結(jié)

    只有這10個風(fēng)險需要注意嗎?

    10只是一個武斷的與其他風(fēng)險分割開的數(shù)字而已,還有很多其他的風(fēng)險。我就能說出很多。但是即使如此,如果您能說出我這列出的這些風(fēng)險,我就可以保證您的項目會非常優(yōu)秀而且必定成功。

    如果還有我不想讓您獨這篇文章的原因就是:這不是經(jīng)驗和計劃的代替品。如果您沒有經(jīng)驗,那么請去積累。不要依賴項目開發(fā)中的培訓(xùn)會起多大的兆月年個。在開發(fā)前請做好心理準(zhǔn)備。請JavaJ2EE指導(dǎo)者對你們團隊進(jìn)行全程指導(dǎo)、把握項目方向,并和較少經(jīng)驗的團隊人員一起成長。

    最后,我寫的越多我想到需要說的東西越多:

    軟件工程的社會因素

    單元測試與集成測試(什么時候進(jìn)行測試?)

    設(shè)計模式

    異常處理

    唉,不能再寫了。等待著新文章吧,祝君好運!

    結(jié)論:

    這里列出了10個風(fēng)險,他們能夠概括您進(jìn)行企業(yè)級java開發(fā)的時候遇到的大部分問題。我堅信,您在開發(fā)過程中,還會面對很多其他的缺陷,但是我也堅信我已經(jīng)概括了主要的問題。我們翻個個,將10個風(fēng)險按著優(yōu)先級排序:

    不懂Java,不懂EJB,不懂J2EE

    過度設(shè)計(使用EJB還是不使用)(設(shè)計模式)

    沒有將業(yè)務(wù)規(guī)則和邏輯表現(xiàn)形式相分離

    開發(fā)時沒有部署

    選擇了錯誤的供應(yīng)商

    不了解您的供應(yīng)商

    沒有設(shè)計可擴展性和系統(tǒng)性能

    陳舊的開發(fā)過程

    沒有使用框架

    項目計劃和設(shè)計建立在市場炒作上,而非實際的技術(shù)上。

     

    posted on 2006-03-10 12:23 Vincent.Chen 閱讀(147) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 国产精品亚洲专区无码唯爱网| 亚洲精品在线免费观看| 亚洲www在线观看| 亚洲熟妇av一区二区三区| 在线免费观看视频你懂的| 午夜免费啪视频在线观看| 一级看片免费视频| 亚洲爆乳AAA无码专区| 亚洲国产成人手机在线电影bd | 日本久久久久亚洲中字幕| 亚洲国产一成久久精品国产成人综合| 国产免费久久精品99re丫y| 久久国产精品免费视频| 国产免费牲交视频免费播放 | 无码国产精品一区二区免费式影视| 一个人晚上在线观看的免费视频| 亚洲AV永久无码精品放毛片| 国产精品亚洲综合五月天| 亚洲成aⅴ人片在线观| 亚洲国产成人久久精品动漫| 亚洲色偷偷综合亚洲AVYP| 亚洲无线一二三四区手机| 亚洲国产一区二区视频网站| 国产黄色片在线免费观看| 精品久久久久久久免费人妻| 成人啪精品视频免费网站| 麻豆精品国产免费观看| 日韩在线天堂免费观看| 日本无卡码免费一区二区三区| 我要看免费的毛片| 日韩中文无码有码免费视频 | 亚洲AV无码久久久久网站蜜桃| 4444亚洲国产成人精品| 亚洲综合亚洲国产尤物| 亚洲欧洲日产v特级毛片| 亚洲乱码一二三四五六区| 亚洲AV无码国产精品色| 亚洲欧美黑人猛交群| 国产精品亚洲专区一区| 日本一区二区在线免费观看| h视频在线观看免费|