Java SE 6 中新增的 Java 脚本编程 API 为运行用各种动态语言编写的外部程序(并与之共享代码和数据)提供了一种统一的方式。Java 应用程序与 脚本语言 的强大功能和灵活性相结合是非常有意义..
自从这篇文章的第一版在2003 年10 月发表以来,Spring 框架正在逐步普及。经历了1.0最终版到现在的1.2版,而且被运用于很多行业和项目中。在这篇文章中,我会解释Spring为什么会获得成功,并告..
Java 开发人员清楚 Java 并不是在任何情况下都是最佳的语言。今年,1.0 版本的 JRuby 和 Groovy 的发行引领了一场热潮,促使人们纷纷在自己的 Java 应用程序中添加动态语言。Groovy、JRuby、Rhino、J..
在上一期 文章 中,您只是稍微了解了一些 Scala 语法,这些是运行 Scala 程序和了解其简单特性的最基本要求。通过上一篇文章中的 Hello World 和 Timer 示例程序,您了解了 Scala 的 Application 类、方..
请允许我借助另一种 开源 Web 开发 框架 —— Ruby on Rails —— 来介绍 Grails。Rails 一发布就迷住了开发人员。Rails 的脚手架功能使您可以用以前所需时间的一小部分完成一个新的项目。支持 Rai..
摘要 编写 单元测试 代码是一件很困难的工作。大多数情况下,我们需要测试那些以前没有编写过的使用复杂的协作软件(如 数据库 ,应用程序 服务器 或软件模块)的代码。我们可能还需要..
在本系列文章中,我使用 Person 类型来演示 db4o 的所有基本原理。您已经学会了如何创建完整的 Person 对象图,以细粒度方式(使用 db4o 本身的查询功能来限制返回的实际对象图)对其进行检索..
本系列的 第 1 部分 解决了基于 Eclipse 的富客户机应用程序 性能 问题的几个方面,包括 CPU、I/O 以及线程问题等。内存泄漏是导致性能问题的另一可能原因。本文阐述如何监视应用程序的内存使..
超越 单元测试 的扩展 关于本系列 在 跨越边界 系列中,作者 Bruce Tate 提出了这样一个观点:如今的 Java 程序员 可以通过学习其他方法和语言得到很好的其他思路。自从 Java 明显成为所有 开发..
简介 关系数据访问的对象化 大多数业务都建立在信息管理系统的基础上,而这些信息管理系统主要的底层基础设施又是基于存储在一个或多个关系 数据库 中的数据。这些系统由一些软件程序..
实体关系映射(O/R mapping, ORM)集成 当然你经常需要使用实体关系映射,而不是使用关系型数据访问。你的整体应用程序框架也必须支持这个。因而Spring继承了Hibernate(版本2 和3)、JDO(版本1 和2)、..
服务数据对象是一种流动数据 服务数据对象(Service Data Object,SDO)介于强类型POJO和非验证XML流中间。SDO使用户应用程序能够使用可动态创建的数据结构。当数据必须在没有(或不能)共享相同..
特殊字符转义 由于 Web 应用程序需要联合使用到多种语言,每种语言都包含一些特殊的字符,对于动态语言或标签式的语言而言,如果需要动态构造语言的内容时,一个我们经常会碰到的问题就..
对于许多团队来说, 单元测试 现在是 开发 过程的一个主要部分;JUnit 之类的框架可以进行无损测试,尽管我们并不喜欢它,宁愿为某些 代码编写某些 测试。单元测试运行效率很低,只能测试..
简介 代码覆盖是一种用来 度量 已执行的 软件测试 水平的方法。收集覆盖度量数据的过程很简单:监测您的代码,并对所监测的版本运行测试。这样就可以生成相关数据,展示已执行哪些代码..
本系列的前两篇文章介绍了 Grails Web 框架的基本构建块。我曾反复强调过 —Grails 基于模型-视图-控制器(Model-View-Controller,MVC)架构模式(请参阅 参考资料),Grails 利用约定优于配置 将框架..
Blog(WebLog)在Internet上越来越流行。许多网友都有了自己的Blog,通过Blog展示自己,结识更过的网友。比较著名的Blog平台是基于ASP.net的 开源 项目.Text。但是它的逻辑全部以存储过程的形式放在..
在 本文的前半部分 中,我解释了 Mylyn 的任务管理功能如何轻松地聚焦与给定工作日或工作周相关的任务。一旦任务成为您的 Eclipse 体验中的集成部分,您很可能会注意到许多重复性行为都是以..
在本系列的前一篇文章中,我开始谈到了 db4o 如何处理 结构化对象,或者包含非原始类型字段的对象。正如我所展示的那样,增加对象关系的复杂性对 db4o 持久模型有一些重大的影响。我谈到..
开发人员测试的主要缺点是:绝大部分测试都是在理想的场景中进行的。在这些情况下并不会出现 缺陷 —— 能导致出现问题的往往是那些边界情况。 什么是边界情况呢?比方说,把 null 值传..