为了理解问题的根源并适当地响应,Merlin 发行版添加了几个与异常处理相关的功能。现在,您不必手工分析堆栈转储信息就可以检查堆栈跟踪信息,并且可以把异常连成一条菊花链,这样就能够在重新抛出异常时附加上异常的原因,这会大大促进调试工作。此外,现在还有一个内建的日志记录工具用来记录消息的不同级别。在 Merlin 的魔力系列的这一部分,John Zukowski 演示了这些新的日志记录和异常功能的工作原理并提供了一个示例程序以供查看和下载。
logging
Python 中的元类编程,第 2 部分
Michele 和 David 在 developerWorks 上发表的第一篇关于元类编程的文章收到了很多读者反馈, 其中,有一些是来自于那些希望掌握 Python 元类的精妙之处但仍感困惑的读者。本文将重温元类的使用和它们与面向对象编程概念的关系,对比类的实例化与继承,区分类方法和元方法,以及解释并解决元类冲突。
AOP@Work: 使用 AspectJ 5 检验库方面
AspectJ 5 新的语言和部署特性简化了库方面(library aspect),而库方面又保证一般的开发人员能够掌握 AOP。尽管有着不可思议的易用性,但它们编写起来非常困难。在 AOP@Work 系列的这部分内容中,Wes Isberg 编了一个假想的故事,故事所讲述的世界离您的现实生活并不遥远,其中有 30 个重大的挑战。通过这个故事,您将学会如何使用及编写库方面,以及如何为相信这一技术和不相信这一技术的人交付解决方案。
Python 中的元类编程
大多数读者都已熟悉面向对象编程的概念:继承、封装和多态性。但如果有了确定的父类,则通常认为创建给定类的对象是“千篇一律”的操作。事实证明,当可以定制对象创建的过程时,许多新的编程构造变得更容易,或者成为可能。元类支持某些类型的“面向方面编程”,例如,您可以用一些特性来增强类,譬如,跟踪能力、对象持久性、异常日志记录以及其它特性。
AOP@Work: 对方面进行单元测试
AOP 使编写特定于应用程序的横切关注点测试比任何时候都要容易了。要了解其原因以及如何实现,请听 Nicholas Lesiecki 介绍测试面向方面的代码所具有的好处,并展示在 AspectJ 中测试横切行为的样式。
使用 Spring 更好地处理 Struts 动作
Struts Recipes 的合著者 George Franciscus 将介绍另一个重大的 Struts 整合窍门 —— 这次是将 Struts 应用程序导入 Spring 框架。请跟随 George,他将向您展示如何改变 Struts 动作,使得管理 Struts 动作就像管理 Spring beans 那样。结果是一个增强的 web 框架, 这个框架可以方便地利用 Spring AOP 的优势。
AOP@Work: 用 AspectJ 进行性能监视,第 1 部分
随着 Ron Bodkin 介绍如何把 AspectJ 和 JMX 组合成灵活而且模块化的性能监视方式,就可以对散乱而纠缠不清的代码说再见了。在这篇文章(共分两部分)的第一部分中,Ron 用来自开放源码项目 Glassbox Inspector 的代码和想法帮助您构建一个监视系统,它提供的相关信息可以识别出特定问题,但是在生产环境中使用的开销却足够低。
有效地记录日志可以简化企业的开发过程
在企业级的开发过程中,我们不可避免地会碰到很多问题;如果您希望在开发过程的后期能够有效地捕捉 bug,那就需要一种有效的日志策略。但是在一个企业的应用程序中要想实现有效地记录日志,需要进行一番规划,并设计一些准则。在本文中,顾问 Charles Chan 将向您介绍一些最好的实践,从而帮助您从项目一开始就编写有用的日志代码。
IBM WebSphere 开发者技术期刊: 使用 WebSphere Application Server V6 构建企业服务总线——第 4 部分
在使用 IBM WebSphere Application Server V6 中的新消息引擎构建企业服务总线系列的第 4 部分中,我们将开发和安装一个简单的中介来访问流经总线的消息。
AOP@Work: 使用 AspectJ 5 检验库方面
AspectJ 5 新的语言和部署特性简化了库方面(library aspect),而库方面又保证一般的开发人员能够掌握 AOP。尽管有着不可思议的易用性,但它们编写起来非常困难。在 AOP@Work 系列的这部分内容中,Wes Isberg 编了一个假想的故事,故事所讲述的世界离您的现实生活并不遥远,其中有 30 个重大的挑战。通过这个故事,您将学会如何使用及编写库方面,以及如何为相信这一技术和不相信这一技术的人交付解决方案。