J2EE培训 百分网手机站

J2EE项目开发10大风险盘点(3)

时间:2018-04-22 09:48:42 J2EE培训 我要投稿

J2EE项目开发10大风险盘点

  最为糟糕的是,这样还可能产生异常、空指针,以及你从没见过的问题。

  备注:

  开发人员常把安全性问题放到稳定化阶段才开始解决。要防止这样的陷阱产生,你也可以花费同样多的时间在业务逻辑中改进安全性。

  成熟期是一个复杂的过程,其中充满了技术性问题和非技术性问题。你可能会陷于想不到的一大堆问题中,这就是成熟化所意味的一切。开发及稳定化环境过程为你提供了制造更多这样的问题,以及发现这样的问题的地方,不断去做,就可以大大减少风险。

  你做的工程越多,你就越能了解什么是可行的,什么是不可行的。你可以对工程问题进行记录,以避免同样的错误重复发生。

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

  风险5: 选择了错误的提供商

  项目阶段:

  提供商选择

  影响阶段:

  设计、开发、稳定化/负载测试,成熟化

  对系统的影响:

  可伸缩性、性能、可维护性及稳定性

  症状:

  开发人员要使用更多的时间来处理工具方面的问题,而不是很有成效地使用这些工具

  为了应付已知的和未知的问题,而不得不进行显著的系统重新设计

  在不同的工具之间很难进行集成(应用服务器与IDE工具,IDE工具与调试器,源码控制与合成工具,等等)

  对于IDE工具和调试器等,开发人员往往排斥它们,而推崇自己所喜欢的工具

  规避方案:

  为了避免风险5,你需要一个很好的提供商选择过程,风险10的规避也适用于此。

  要真正衡量一种IDE工具是否最合适的方法是真正地进行使用。而唯一来评估一种J2EE应用的方法是建立一种概念试验来进行证明,在试验中要包含你的应用框架。事实上,你也不希望在花费了3个月时间进行了培训和开发后,在使用时又发现一些bug。

  假设在开发到一半的时候,突然发现你的工具集有问题,那么你早应该知道,有些工具确实比另一些更重要。如果你所选的应用服务器不能充分满足你的需要,你只好修改原先的设定。如果IDE不好,则需要设置最低限度的代码标准,并让开发人员任意选择他们认为最为有效的工具。

  备注:

  要真正了解到哪一个供应商对一项特殊的任务来说最合适,其实并不是一件一次性决定的事情。你需要不断地跟踪与评估这个市场。例如,在过去的一年里我用过4种不同的IDE工具,这取决于我使用了什么样的应用服务器、平台,是否使用EJB等。

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

  风险6: 不了解你的提供商

  项目阶段:

  提供商选择

  影响阶段:

  提供商选择阶段后面的所有阶段:设计、开发、稳定化/负载测试、成熟化

  对系统的影响:

  可维护性、可伸缩性、性能

  症状:

  开发所用周期超过了最坏预测的周期1/3以上

  提供商已经提供了某项功能,但开发者在不知道的情况下重新进行了该项功能的开发

  规避方案:

  为了规避这样的风险,你可以尽可能地订阅提供商的网上资源,例如邮件列表、新闻组、版本信息(尤其是其中的bug修复补丁的说明等),你能从中得到无法估量之多的收获。

  一旦你已经选定了提供商,那么立即就要投资进行培训,并且尽可能赶在项目启动以前。然后,逐渐在团队中建立起对此提供商的认识及信任。试着建立几个EJB并部署一下,再用你的表示层技术 (Swing GUI, JSP等)来调用它们。如果你既要搭建开发环境,又要同时在实现项目目标,就会产生一些不必要的冲突。实际上,我也见到过一直没有进行构建过程的情况:“我们没有时间。”因此,这些工作必须提早进行。有些人会说:“我们的计划中没有为我们提供这些时间。”我的回答是:“你的计划中并没有不给你时间使你不这么做啊。”

  备注:

  在J2EE世界里,各提供商产品的技术兼容性究竟如何?让我们看一下IBM和BEA的具体分析吧。两者都分别在各自的应用服务器中支持EJB 1.1。那么,实际上BEA WebLogic 5.1和IBM WebSphere 3.5究竟有多少相似之处呢?

  BEA WebLogic和IBM WebSphere的系统配置和管理方式几乎完全不同。

  IBM在WebSphere中采用了全面的GUI环境,而与之相对的是,BEA 在WebLogic中提供一整套命令行。

  IBM WebSphere使用IIOP来和CORBA异常进行通讯,这些异常对程序员来说是可见的;WebLogic根本没有CORBA构造,而缺省使用t3协议。

  WebSphere和Visual Age衔接紧密,而WebLogic是IDE无关的,实际上,你几乎可以使用任何的开发工具。

  由此可见,差异还是相当多。如果你是一种应用服务器的专家,并不意味着你就是所有应用服务器的专家。这种区别体现在IDE,debugger,build工具,配置管理等等方面。具备某提供商的某项特殊工具的使用经验,可以在评估该提供商的竞争对手产品时具有一些便利。但是,不要奢望在不同产品之间进行无缝的转移或衔接。因此,你不得不花费足够多的时间在熟练掌握这些工具上。

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

  风险7: 设计中没有充分考虑到可伸缩性和产品性能

  项目阶段:

  设计

  受影响的项目阶段:

  开发、负载测试及成熟化

  对系统的影响:

  可伸缩性、性能、可维护性

  症状:

  无法忍受的速度缓慢

  系统给服务器端增加的沉重负担,而无法利用到一些聚簇技术。

  规避方案:

  把精力集中于性能和可伸缩性方面的需求,明确开发中要达到的性能指标。如果你需要每秒50个事务,而你的EJB设计只能提供40个,那么你就需要考虑替代方案,诸如存储过程,批处理,或者重新考虑OLTP的设计。