WEB开发网
开发学院WEB开发Jsp J2EE项目10大风险 阅读

J2EE项目10大风险

 2008-01-05 18:38:58 来源:WEB开发网   
核心提示:避免本文所列之10大J2EE风险,确保企业级java项目成功 作者:Humphrey Sheil 翻译:Blueski 说明: 本文已在51CMM网站《中国系统分析员》杂志第3期刊载,J2EE项目10大风险, 原文在 http://www.javaworld.com/javaworld/jw-03-2001/jw-03

避免本文所列之10大J2EE风险,确保企业级java项目成功
作者:Humphrey Sheil

翻译:Blueski

说明:
本文已在51CMM网站《中国系统分析员》杂志第3期刊载。
原文在 http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-ten.Html

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

在过去这段时期里,我担任过程序员、高级设计师以及架构设计师等工作,见识过很优秀的企业级Java项目,也见识过不好的,甚至很"丑陋"的项目。有时候我会自己问自己,为什么一个项目可以取得成功,而另一个却走向失败?很难定义出某种规则或标准来表明各个不同的项目应该如何成功,J2EE项目也并不例外。但与此相反的是,我们可以从各个角度和层次上去考察项目失败的原因,假如很好地避开了这些风险,项目就可以取得成功。在本文中,我将提出排名前10位的企业级Java项目风险,供读者参考。

在各种各样的风险中,有些风险只是延缓了项目的进度,有些带来了一些不必要的工作,而另一些则会把成功的可能性彻底地消除。不过,假如预先有了足够的预备和清醒的熟悉,那么并没有不可避免的事情。这好比假如你是一名旅行者,你清楚地知道前面的道路在什么方向,做了充分的预备,又有一位清楚知道哪里有危险的向导,这样就会比较顺利地到达自己的目的地。

本文采用了以下结构来描述风险: 

风险名称:风险的标题(使用粗体)
项目阶段:在哪个项目阶段会发生风险情况
影响阶段:会影响到以后的哪些阶段
症状: 风险产生时的症状
规避方案:如何规避风险或者把其对项目的影响降低到最小程度
备注: 风险相关的补充说明和提示
通过对企业级Java项目的仔细考察,本文将J2EE项目过程分解为以下几个阶段:

提供商选择: 在开始你的J2EE项目之前,要选择最合适的提供商,从应用服务器到开发工具组合,一直至工作期间享用的咖啡的厂商。 
设计: 在遵照一系列严格的规范和软件工程方法的前提下,可以开始进行足够充分的设计,然后再很自然地进入开发阶段。在开发之前,要周全地考虑好正在做什么,以及如何往下做的问题。另外,我使用了一些设计模板来确信在进入开发之前,已经想到了所有的问题和可能的解决方案。但是,我有时也在该阶段做一些编码,有时候这样做可以回答一些问题,有效地判定出性能上和模块划分上的问题。 
开发: 也就是程序开发阶段,选择一些好的开发工具,进行精良的设计等等,在这个阶段将显示其优越性,并且可以给开发带来很大的帮助。 
稳定性/负载测试:在该阶段,系统架构师和项目经理应该冻结住产品特性,并把焦点放在质量以及产品参数(答应的并发用户数量,故障恢复情况,等等)上。质量和性能在该阶段应得到足够的重视。当然,最好应该避免在前阶段写出不良的运行缓慢的代码而到本阶段来作很多的修改。
成熟期:这不是一个真正的项目阶段,而是一个固定的预备阶段。过去潜伏的错误(来自于糟糕的设计和开发、错误的厂商选择)可能出现并影响你的系统。

风险1:没有真正理解 Java, EJB, 和J2EE

这个问题可以分解为3个部分,以便于分析。

描述: 没有真正理解Java

项目阶段:开发

影响阶段:设计、稳定性测试、成熟期

对系统性能的影响:可维护性、可扩展性、性能

症状:

重复开发了JDK核心API中的功能或类
不懂得以下列表中的某些项(这只是一些主题或者实际例子而已):
垃圾收集器 (train, generational, incremental, synchronous, asynchronous)
对象在何时能被进行垃圾收集 -- dangling references
使用的继续机制及其权衡
over-riding和over-loading方法
为什么java.lang.String (在这里用你所中意的类代替) 提供的性能不好
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应用程序。

Tags:JEE 项目 风险

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接