Ajax使用XML、JavaScript和Web标准来创建高度交互性的Web页面,正如您在Google Maps和大量其他站点上所看到的页面那样。Ruby on Rails框架和Ajax的完美集成所产生的力量在一定程度上促成了该框架的繁荣。本文旨在揭示:是什么使Ajax on Rails成为如此强大的组合。本文全面介绍了两个简单的Ajax例子,延着这个思路介绍了 Ruby/Ajax这一组合如此成功的原因。...详细
什么是边界情况呢?比方说,把null值传入一个并未编写如何处理null值的方法中,这就是一种边界情况。大多数开发人员通常都不能成功测试这样的场景,因为这没多大意义。但不管有没有意义,发生了这样的情况,就会抛出一个NullPointerException,然后整个程序就会崩溃。本文将为您推荐一种多层面的方法,来处理代码中那些不易预料的缺陷。尝试为应用程序整合进防御性编程、契约式设计和一种叫做OVal的易用的通用验证框架。 ...详细
本文介绍了在软件开发的生命周期中,每个人都对质量负有责任。理想情况下,开发人员在开发周期中,用像Junit和TestNG这样的测试工具保证早期质量,而质量保证团队用功能性系统测试在周期末端跟进,使用像Selenium这样的工具。但是即使拥有优秀的质量保证,有些应用程序在交付的时候仍然被认为是质量低下的。在客户、(编写应用程序需求的)业务部门和(实现需求的)开发团队之间的沟通错误,通常是摩擦的原因,有时还是开发项目彻底失败的常见原因。为此文中概述了一些方法帮助需求作者和实现者之间尽早沟通。...详细
本文介绍了基于Java™的Web开发领域最近出现了丰富的竞争性技术。启动新项目的开发人员可以在许多不同的框架之间进行选择,包括JavaServer Faces、Tapestry、Shale、Grails和Seam。以及未来可以通过JRuby框架在Java编程中使用Ruby on Rails。 本文还概述了Struts是第一个在Java世界掀起风暴的框架,而且多年以来,好像是如果一个项目不用Struts 构建就没有前途一样。并把以质量为核心的方法用于Struts应用程序的测试场景。结合现实,这个场景围绕着最普遍的Struts构造:深受喜爱的Action类。...详细
现在自动测试已经成为高质量代码开发的基本保证,Java™ 开发人员现在拥有很多通过代码度量、静态分析等方法来度量代码质量的工具。本文还重点阐述有关保证代码质量的一些有时看上去有点神秘的东西。介绍了有关代码质量保证的众多工具和技术,并从定义并有效度量最影响质量的代码方面、设定质量保证目标并照此规划您的开发过程、 确定哪个代码质量工具和技术可以满足您的需要、 实现最佳实践(清除不好的),使确保代码质量及早并经常地成为开发实践中轻松且有效的方面等进行说明。...详细
本文介绍了JUnit 4并不是第一个提供基于注释的灵活模型的Java™测试框架。在修改JUnit之前很久TestNG 就已建立为一个基于注释的框架。事实上,是TestNG在Java编程中率先 实现了利用注释进行测试,这使它成为JUnit的有力竞争对手。本文还讨论TestNG不同于JUnit 4的一些特性,并提议采用一些方法,使得这两个框架能继续互相补充,而不是互相竞争。...详细
本文介绍了在应用程序的开发中,验证应用程序的性能几乎总处于次要的地位。应用程序的性能总是首要考虑的因素,但开发周期中却很少包含对性能的验证。由于种种原因,性能测试常被延迟到开发周期的后期。企业之所以在开发过程中不包含性能测试是因为他们不知道对于正在进行开发的应用程序要期待什么。并介绍两种简单的性能测试技术,即:生产中出现显而易见的性能问题和• 在同意付费之前 ,客户或潜在客户询问有关性能指数的问题。在这两种情况中的任何一种发生前进行测试。...详细
本文解释了圈复杂性,它是令人讨厌的代码的一种先兆。具有高圈复杂度值的测试方法几乎总是把事情弄得一团糟,无法轻易收场。展示了如何使用Extract Method模式重构您的代码,从而将您带出迷宫。降低方法的复杂度可以使代码更易于测试和维护。不过,圈复杂性并不是确定高风险代码的惟一复杂性度量,本文利用类长度、方法长度和内部类耦合,以及如何使用 PMD 和 JavaNCSS 跟踪它们。...详细
本文介绍了使用最新且最强大的Java™ API构建一个大型的数据驱动的Web应用程序。先用JUnit构建测试,且把它作为Ant构建过程的一部分尽可能地运行。设置一个定时任务在夜间运行构建。不断增长的测试套件会在每次签入时运行。开发出了一个庞大的代码库和一个同样庞大的JUnit测试套件。最后得出单元测试有其重要的作用,但必须要能用一种更为敏捷的方式运行它们的结论。...详细
本文展示了如何使用代码度量来评估代码质量。尽管在那一期介绍的圈复杂度针对低级细节,如方法中执行路径的数量,但其他类型的度量针对的是代码的更高级方面。展示了如何使用各种耦合度量 来分析和支持软件架构。从两个比较有趣的耦合度量开始,即传入耦合 和传出耦合。这些基于整数的度量表示几个相关对象(即相互协调以产生行为的对象)。任一度量中高数值表示架构的维护问题:高传入耦合表示对象具有太多职责,而高传出耦合表示对象不够独立。并介绍每个这样的问题及其解决的方法。...详细
本文介绍了重构、主动和被动重构、提取方法模式、降低圈复杂度、测试私有方法等,得出在抗击圈复杂度时,要记住大部分编写到应用程序中的路径是应用程序的整体行为所固有的。也就是说,很难显著地减少路径的整体数量。重构只是把这些路径放在更小的代码段中,从而更容易测试。这些小的代码段也更容易维护。...详细
本文介绍了在电信网的运维支撑系统的建设过程中,还存在着一些问题。新一代的电信网络具有高速、高效、低成本的特点,以数据通信为基本技术承载的综合统一开放的平台。这就是业界一直在谈论的“新公网”的概念。亚信的ComPoss系统解决方案涵盖了从网络管理层/业务管理层、客户服务层到商务管理层的范围,是完整的OSS/BSS解决方案。实现了不同厂家的设备的统一管理,降低人员培训成本,提高人员工作效率,提高资源的利用率,改善和简化网络操作,实时监控,提高与保障业务质量,从而达到提高效率、降低成本、增加客户满意度的最终目标。...详细
本文介绍了太极得捷在传统的C/S结构中,数据库连接数不断增加造成系统效率急剧下降;大规模并发访问无法控制;系统的可扩充性差;网络传输可靠性差;对新业务的发展难以快速响应。因此提高系统的灵活性、扩展性和安全性是关键所在。太极得捷公司采用BOSS业务运营支撑系统,通过公共信息总线实现跨越应用系统的通信,采用即插即用的应用集成平台,提高了整个电信业务系统信息的实时共享能力;通过不断集成新的应用,适应变化的需求。决策支持模块实现了数据中心向数据仓库的发展,提高了事物处理和决策支持的能力。...详细
我们收到的用户反应最多的问题就是关于垃圾邮件。人们感到情况越来越糟糕,并且想弄清楚其中的原因。垃圾邮件商正在使用更先进的策略和更积极的态度来对待发送垃圾邮件的技术。想了解如果防止垃圾邮件,您需要先知道垃圾邮件商侵入您的收件箱的一些手段。本文将为大家介绍一些常见的垃圾邮件陷阱和预防办法。...详细
通过拒绝恶意的垃圾邮件站点的连接,可以使垃圾邮件的实际发送量下降,从而缩小了垃圾邮件市场和压制了垃圾邮件的发展;通过拒绝被利用的垃圾邮件来源站点的连接,可以使该站点的管理员能充分认识到被利用所带来的后果,从而消除被利用的条件。综合以上利弊,我们认为,通过将确认后的垃圾邮件来源站点(无论是否是恶意与否)放入一个黑名单(Blackhole List),然后通过发布该名单来保护邮件服务器不受到黑名单中站点的侵扰确实是一个目前对抗日益严重的垃圾邮件的行之有效的方法。 ...详细
安全路由器只是一个松散的产品概念,它通常是指集常规路由与网络安全防范功能于一身的网络安全设备。安全路由器大多在设计时强化了数据传输加密这一关键技术问题,增强了信息保护与数据加密性能,能够有效检测及防范各类攻击事件的发生。安全路由器能够提供常规路由器所不具备的,诸如IPSec协议支持、基于规则集的防火墙、基于OSPE V2路由协议的安全认证、信息加密与分布式密钥管理等功能。选择安全路由器还要注意:可靠性与线路安全、身份认证、访问控制、信息隐藏等问题。...详细
从GPL到商用版本,Linux CAD系统正在涌现,而且更多的产品和 项目处于开发之中。这多少体现出Linux的桌面应用正在走向扩展和成熟。CAD是一种重要的计算机工程设计应用。在Linux平台上有较好的CAD 应用系统吗?这或许是许多工程设计人员对Linux的观望或者期望。这一问题的回答也多少能体现出Linux作为一种桌面应用的成熟程度。答案是令人高兴 的,不仅有GPL方式发行的2-D CAD软件包Qcad,还有多款商业或公用的CAD系统;当然它们的性能和指标各不相同,并能满足不同的资金预算要求。...详细
本文介绍了SAN EASY方案包不仅适合于那些关键的业务系统越来越依赖于IT系统的行业,对于在成本上比较敏感的中小企业而言,一站式SAN EASY方案也是优先之选。所有的SAN EASY方案包依据用户的实际需求而设计,解决方案以实用、易用为出发点。性能价格比高。SAN EASY不但可以降低存储硬件成本,减少管理成本,而且也减少用户在SAN基础设施上的花费。并具有一步到位的服务体系。通过一本集成的安装手册,用户就可以轻松完成SAN EASY的安装过程,并在SAN的使用过程中得到厂商的在线支持及上门维护等增值服务。...详细
本文介绍了很多数据库基础知识,提到了SQL/XML的几个关键方面,并展示了如何使用SQL/XML查询XML列中的数据。当然,除了这里讨论的用法外,用SQL和SQL/XML函数还可以做更多的事。本文给出了一个简单的Java例子,这个例子解释了如何使用参数标记位和SQL/XML来查询XML列中的数据。在将来的文章中我们将更详细地讨论应用程序开发。但是,接下来的文章将探索 DB2Viper支持的一种新的查询语言,即XQuery的一些有趣的方面。...详细
本文介绍了Atlas客户机/服务器解决方案是未来技术的发展趋势,它通过信息网络,将各自分散的色谱仪进行集中管理,并实现了分析数据的自动传递,在LIMS实施过程中,理应成为色谱仪器连接的主要解决方案。但由于其人机交互响应速度受网络带宽的制约,在一些网络带宽不理想或根本没有网络的色谱间内,应考虑使用工作站/Dataserver模式或独立工作站模式。这两种方案如何选择,取决于仪器的具体摆放情况以及购买的许可证数量分配是否合理。只要能满足需要,应尽量选择独立工作站模式,工作站/Dataserver模式需要增加Dataserver的投资。...详细