J2EE項目開發10大風險盤點
當你開始着手組織一個企業級Java項目的時候,就如同開始同時輪迴地扔好幾個魔術小球: 業主關係處理、持續而漫長的設計開發過程,以及保持健全與完整性,等等。每一個“小球”都會帶來其固有的風險,有些顯而易見,有些則不易發現。儘管如此,所有這些風險都是完全可以避免的。下面yjbys爲大家準備了一篇分析了威脅到企業級Java項目成功的10大風險, 並一一列出了風險規避的策略方法。
在過去這段時期裏,我擔任過程序員、高級設計師以及架構設計師等工作,見識過很優秀的企業級Java項目,也見識過不好的,甚至很"醜陋"的項目。有時候我會自己問自己,爲什麼一個項目可以取得成功,而另一個卻走向失敗?很難定義出某種規則或標準來表明各個不同的項目應該如何成功,J2EE項目也並不例外。但與此相反的是,我們可以從各個角度和層次上去考察項目失敗的原因,如果很好地避開了這些風險,項目就可以取得成功。在本文中,我將提出排名前10位的企業級Java項目風險,供讀者參考。
在各種各樣的風險中,有些風險只是延緩了項目的進度,有些帶來了一些不必要的工作,而另一些則會把成功的可能性徹底地消除。不過,如果預先有了足夠的準備和清醒的認識,那麼並沒有不可避免的事情。這好比如果你是一名旅行者,你清楚地知道前面的道路在什麼方向,做了充分的準備,又有一位清楚知道哪裏有危險的嚮導,這樣就會比較順利地到達自己的目的地。
本文采用了以下結構來描述風險:
風險名稱:風險的標題(使用粗體)
項目階段:在哪個項目階段會發生風險情況
影響階段:會影響到以後的哪些階段
症狀: 風險產生時的症狀
規避方案:如何規避風險或者把其對項目的影響降低到最小程度
備註: 風險相關的補充說明和提示
通過對企業級Java項目的仔細考察,本文將J2EE項目過程分解爲以下幾個階段:
·提供商選擇: 在開始你的J2EE項目之前,要選擇最合適的提供商,從應用服務器到開發工具組合,一直至工作期間享用的咖啡的廠商。
·設計: 在遵照一系列嚴格的規範和軟件工程方法的前提下,可以開始進行足夠充分的設計,然後再很自然地進入開發階段。在開發之前,要周全地考慮好正在做什麼,以及如何往下做的問題。另外,我使用了一些設計模板來確信在進入開發之前,已經想到了所有的問題和可能的解決方案。但是,我有時也在該階段做一些編碼,有時候這樣做可以回答一些問題,有效地判斷出性能上和模塊劃分上的問題。
·開發: 也就是程序開發階段,選擇一些好的開發工具,進行精良的設計等等,在這個階段將顯示其優越性,並且可以給開發帶來很大的幫助。
·穩定性/負載測試:在該階段,系統架構師和項目經理應該凍結住產品特性,並把焦點放在質量以及產品參數(允許的併發用戶數量,故障恢復情況,等等)上。質量和性能在該階段應得到足夠的重視。當然,最好應該避免在前階段寫出不良的運行緩慢的代碼而到本階段來作很多的修改。
·成熟期:這不是一個真正的項目階段,而是一個固定的準備階段。過去潛伏的錯誤(來自於糟糕的設計和開發、錯誤的廠商選擇)可能出現並影響你的系統。
OK,以下讓我們進入 top 10 項目風險!
--------------------------------------------------------------------------------
風險1:沒有真正理解 Java, EJB, 和J2EE
這個問題可以分解爲3個部分,以便於分析。
描述: 沒有真正理解Java
項目階段:開發
影響階段:設計、穩定性測試、成熟期
對系統性能的影響:可維護性、可擴展性、性能
症狀:
重複開發了JDK核心API中的功能或類
不懂得以下列表中的某些項(這只是一些主題或者實際例子而已):
垃圾收集器 (train, generational, incremental, synchronous, asynchronous)
對象在何時能被進行垃圾收集 -- dangling references
使用的繼承機制及其權衡
over-riding和over-loading方法
爲什麼ng (在這裏用你所中意的類代替) 提供的性能不好
Java中的pass-by參考語義和EJB中pass-by值的語義的比較
使用 == 或者使用equals() 方法 for nonprimitives
在不同平臺上Java線程的運行順序方式(例如是否是搶先方式的)
新線程和本地線程的比較
Hotspot技術(以及爲什麼舊的性能調整技術降低了Hotspot 的優化效果)
JIT,以及什麼時候好的JIT變得不好(未安裝的JAVA編譯器,以及你的代碼運行得剛夠良好)
API蒐集
RMI
規避方案:
你需要不斷改進Java方面的知識,尤其是深入瞭解Java的優勢和不足之處。Java的存在價值已經遠不止是一種語言,理解平臺(JDK及工具等)也是同樣重要的。具體地說,你應該是經過認證的Java程序員,如果你不是的話,也許你有時會爲還有那麼多不知道的內容而感到驚訝。另外,你可以加入Java的郵件列表。以前我曾加盟過的每一個公司都加入了這樣的郵件列表,從同行中學到技術,這將是你最好的資源。
備註:
如果你或者你的團隊中的成員不真正瞭解編程語言和平臺,怎麼還能保持成功的希望呢?強幹的Java程序員之於EJB和J2EE,就象是鴨子之於水一樣。與此相反,比較弱的、沒有經驗的程序員只能開發出質量低劣的J2EE應用程序。
描述: 沒有真正理解EJB
項目階段:
設計
影響階段:
開發、穩定化
對系統的影響:
維護
症狀:
EJB在第一次被調用後沒有再被使用到(尤其是stateless session bean)
沒有重複利用價值的EJB
不理解開發者要做什麼,容器提供什麼
相關文章
-
J2EE項目開發風險彙總
在各種各樣的風險中,有些風險只是延緩了項目的進度,有些帶來了一些不必要的工作,而另一些則會把成功的可能性徹底地消除。下面小編總結了J2EE項目開發的風險,提供給大家參考! 風險1:沒有真正理解 Java, EJB, 和J2EE這 -
開發j2ee項目設置方法
j2ee開發項目怎麼設置,下面yjbys小編爲大家分享的就是j2ee開發項目設置方法,希望對正在學習j2ee開發項目的同學們有所幫助!idea可以導入eclipse中的web項目,但idea默認的一些設置是和eclipse及MyEclipse是不同的,比如說My -
J2EE開發使用手冊目錄
第一部分 企業系統第1章 J2EE企業開發1.1 企業系統概述1.2 J2EE企業系統方案模型1.3 J2EE體系結構1.4 J2EE企業數據支持1.5 J2EE企業通信支持1.6 J2EE公共企業服務1.7 J2EE企業Web支持1.8 J2EE企業應用程序支持1. -
Eclipse j2ee開發環境的搭建
J2EE規範是這樣定義J2EE組件的:客戶端應用程序和applet是運行在客戶端的組件。以下是關於Eclipse j2ee開發環境的搭建,歡迎大家參考!在Linux系統大家族中,Android無疑是最耀眼的一個。Android的開發也是在Linux系統中進 -
Java Web開發和J2EE的區別
什麼是J2EE呢?從整體上講,J2EE是使用Java技術開發企業級應用的一種事實上的工業標準(Sun公司出於其自身利益的考慮,至今沒有將Java及其相關技術納入標準化組織的體系),它是Java技術不斷適應和促進企業級應用過程中的產物 -
javaweb開發和j2ee區別
在學習java過程中,你知道javaweb開發和j2ee區別嗎?下面yjbys就爲大家分享javaweb開發和j2ee兩者的區別,僅供參考!J2EE是一種規範,是一種基於框架的開發. 1 javaweb開發基於JAVA的一般WEB開發,包括了JSP/SERVLET 需要 -
J2EE開發原則
J2EE,作爲開發mission-critical的企業級應用的一整套規範的整合平臺,規範多、內容廣,從而給開發J2EE應用帶來了很多麻煩。比如,爲實現內容的RDBMS,我們可能的方法有JDBC、Entity Beans、JDO、O/R Mapping工具(TopLink、Hib -
J2EE簡化應用開發
導語:數據開發是現在市場的重要內容,下面是J2EE簡化應用開發的介紹,歡迎參考!在當今競爭激烈的市場中,各種機構正面臨着一種艱難的挑戰:既要在業已縮短的開發週期內降低成本,又要提供廣泛的電子商務服務。爲了解決這個問題, -
J2EE開發技術研究
隨着進入信息社會,計算機已經成爲人們生活中必不可少的工具,基於B/S模式的應用軟件的使用也越來越流行。下面是小編整理的關於J2EE開發技術研究,希望大家認真閱讀!J2EE是java2平臺的企業版,是一個基於組件-容器模型的系統 -
J2EE軟件開發過程
需求調查規格說明書要點:完整性、正確性、可行性、必要性、劃分優先級、無二義性、可驗證性原形分析法--主要用戶界面1、開始窗口2、歡迎窗口3、種類窗口4、貨架/產品窗口5、貨物Item窗口6、購物車窗口7、登錄窗口