扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
项目阶段:提供商选择
所牵涉的项目阶段:设计,开发,稳定性/负载测试,实施
所影响的系统特性:可测量性,执行性,可维护性,稳定性
征兆:
开发人员花费较长的时间和工具“较劲”[wrestling],而不是有效的使用它们
在执行过程中,重要的系统需要重新设计来避开知道和不知道的bugs
不同工具间差的整合性乃至丝毫不能整合(应用服务器和IDE,IDE和调试工具,源代码控制和构造工具,等等等等)
对于IDE,调试器等,开发者简单的以个人的喜好来选择或放弃
解决:
为了避免危机5,你需要一个好的供应商选择过程。危机10在这里是适用的。
对于IDEs,唯一的评价方法是去使用它。评价J2EE的唯一的方式是构建一个你的观念构架中用到的特性的实现。事实上,当你花费3个月开发和投资到一项特殊的培训的时候,你不会希望在这些工具之间出现BUG.
那么,当你开发的半路上遇到关于工具集的麻烦的时候怎么办?一些工具似乎比其他的更加重要。如果你选择的应用服务器不适合你的需求,你要接受它并改变规范。如果IDE令人恶心,就设置最小级别的代码规范(tabs对空格等等),并让开发者寻找能最大限度提高生产效率的配置。
注:
了解最好的供应商和工具作为一项特殊的任务并非是一个“只做一次”的工作。你需要不断对市场评估。例如,过去的12个月,我曾用过4个不同的IDE,这取决于我的应用服务器平台,而不是我是否写EJB代码。
危机6:不了解你的供应商
项目阶段:供应商选择
所涉及的项目阶段:供应商选择之后的所有阶段
受影响的系统特性:可维护性,可测量性,执行性
征兆:
开发时间比最坏的估计时间长33%
解决:
为避免由于不了解供应商而产生的问题,去订阅所有的供应商所能提供的资源,如邮件列表,新闻组,和发行注释(尤其是那些修订BUGS的列表);你将得到无可估量的信息。
一旦你选定了供应商就要马上投资于培训,然后,建立一个快速的概念的实现来打破这个它。[建立两个Ejbs并部署它们,然后通过你的显示层技术(Swing GUI,Jsps 等)调用它们。如果你试着构造你的开发环境同时试着满足一个项目目标,环境的设置将不尽人意。事实上,我曾经看到过没有经过部署过程的项目,原因是“我们没有时间”。当团队不得不每天晚上干到11点仅仅是为了获得一个发布的应用的时候,此处的意义就显得尤为重要。因此,事先花费一些时间将这些细节处理好,在以后的路上你将节约大量时间。对那些说“我们的计划没有给我们这么多的时间”的人,我要说,“你的计划没有给你不做它的时间。”
注:
在J2EE世界中,工具提供商的技术的可转换性[transferable]如何呢?让我们看一看两个供应商的具体例子??IBM和BEA系统公司??支持EJB1.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协议。
这里只是几个不同之处,还有许多。概要:多数的供应商之间的相似就像粉笔和奶油之相似一样。在一种应用服务器上成为一名专家并不意味着你在所有的服务器上都是专家。上面的讨论适合于任何东西:IDEs,调试器,编译工具,配置管理等等。对于一种特殊工具拥有使用经验对于评价其竞争对手是一件好事情。但这并不意味着你可以从一种工具平滑的过度到另一种。尽量给你自己时间来熟悉你的工具。
危机7:没有为可测量性或可执行性设计
项目阶段:设计
所涉及的项目阶段:开发,测试,生存期
受影响的系统特性:可测量性,可执行性,可维护性
征兆:
系统慢的不可接受
过度利用服务端状态的系统及不能充分利用供应商集群技术
解决:
对于危机7,在分析阶段你要明确的知道系统的执行性能和测量性能??在进入开发之前就要知道你需要得到的数字。如果你知道你需要每秒处理50个交易,但所有的实体Bean的设计只能提供40个交易/秒,那么你需要为你的系统寻找替代方式,比如存储过程,批处理或重写的OLTP 方面.
尽量求助于你的工具供应商,他们应该知道他们产品的优缺点,并因此而帮助你。
注:
没有为可测量性或可执行性设计经常和危机2(过度设计)相抵触。事实上,它们相互取长补短。对于危机2我的解决方式是只有绝对需要的时候才进行部署。对于确定可测量性和可执行性,你可以在需要的时候设置可能的最大值。
如果你确定大量的测度是一个必需的需求,你可以指定一个支持最大聚合的应用服务器,可能的话,为你的执行提供一个交易缓存。进一步,你可以设计商业对象如Ejbs来最大程度的利用服务器的架构。XP没有这样的问题,你仍然可以在必须的时候再部署.
我回顾这种方式,思考提供这种平衡的方式。当我想一个最简单的系统时,那个系统需要提供客户要求的功能和行为。
危机8:陈旧的开发过程
项目阶段:开发
所涉及的项目阶段:稳定性,生存期
受影响的系统特性:可维护性和编码质量
征兆:
一个项目计划像可疑的瀑布模型:“首先,我们进行整体设计,然后,我们坐下花大量时间来编码。”
由于部署过程不存在,部署便成了一个噩梦。
部署的天数等于所花费的开发天数,因为什么都没完成。
在整合时组件未经过充分测试。实际上,整体测试意味着将两个不稳定的组件的绑到一起,然后看它们的堆栈。
解决:
一个好的软件设计方法将拯救你的生命。我经常提到XP;下面的资源包含一个这样的链接(Resources)。你将发现XP覆盖了很大的细节。
注:
我并没有 没经过Junit单元测试和没有用Ant部署的经历??那是两个可以加强XP方法的免费工具。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者