AOP@Work: 使用方面的下几个步骤-学习建议之后 - 编程入门网
不存在,但是,下一个最佳策略就是教会其他开发人员 如何使用工具来可视化、理解并最终开始编写方面。编写具有相应使用广度的方 面也很重要:使用静态横切 AOP 特性,比如 declare soft、declare parents 或类型间声明来更改类型,对工具支持和没有方面经验的开发人员的理解有相当 大的要求。例如,可以在加载时将建议完全应用于某方法。但是,如果模块在它 定义的类型上调用了类型间声明,则必须用 AspectJFor 编译器构建该模块。随 着项目团队对方面越来越有经验,更加深入广泛地使用方面会获得相当可观的益 处,但当团队仍在学习使用方面时,则必须要谨慎,不要在技术上太冒进。
AOP@Work: 使用方面的下几个步骤-学习建议之后(7)时间:2011-09-07 IBM Ron Bodkin方面开发人员的工具 为那些对使用方面进行开发感兴趣的团队成员提供好的工具支持也很重要, 这 可以允许他们递增地编译、导航和可视化方面的使用。为此,我建议使用最新版 本的带有 AJDT 插件的 Eclipse。使用好的重用使冗余基础设施最小化也十分重 要(即,将方面添加到现有项目或源代码树,但保持基本的项目结构)。 一般情况下,将需要配置 Ant、Maven、CruiseControl 或 DamageControl 等 工具来添加方面,但这通常都相当简单。通常,可以调用 helper 任务或宏,以 允许插入 AspectJ 编译器中,还可以添加任务以织入单个步骤。为构建添加附 加 测试断言和静态 declare error 约束检查(比如,集成和验收测试)向前跨了 一 大步,通常需要为系统添加一个或两个任务。如果希望工具像识别 Java 编译的 输出一样识别 AspectJ 编译的输出(AspectJ 1.5.1 ant 任务已经改进了日志 文 件输出,极大简化了与 CruiseControl 的集成),配置连续集成系统(比如 CruiseControl)需要一些附加工作。 除此之外,一些工具可以立即使用方面,而其他工具需要额外工作来配置和/ 或补充。例如,代码覆盖工具(比如 Cobertura 或 Emma)工作在字节代码上, 并提供了很好的方面覆盖分析。如果您的团队已经投资在只针对 Java 源代码的 覆盖工具(例如 Clover)上,最好的方法就是禁止该工具在方面代码上的使用 , 而使用可兼容覆盖工具,用方面的覆盖数据进行补充。 检查方面要求 如果要将方面合并到项目中,而许多开发人员都没有使用过方面,则仔细测 试 格外重要。您需要测试方面没有被破坏。特别是,希望确保它们的期望值(比如 类型)保存完好。方面通常会因重构而被破坏,比如当非方面开发人员重命名或 移动系统中的其他类型时。Java 重构工具将不会替换特定于 AspectJ 的代码中 类型的使用,除非运行该代码的开发人员记得搜索扩展名为 *.aj 的文件中类型 的完全限定名。即使他这样做了,如果方面使用具有通配符的类型模式,比如 within(com.foo.service.*Service)(如果将 com.fee.service.Service 移动 到 com.fee.service.api.Service 中,它不会自动更新),方面仍会被破坏。 通过对比,当重命名或移动类型时,使用导入类型(例如,within(Service) )或完全限定名的方面代码被破坏的可能性较小。定期检查 AJDT 等工具生成的 横切结构图以查看重构是否已更改了方面效果的范围,也十分有用。参见图 4 中 该工具工作方式的示例: 图 4. AJDT 中的横切结构比较 如果方面有广泛的效果,则使用其他方面来检查其期望值是否保存完好很有 帮 助。在某些情况下,这可能意味着使用 declare warning 添加静态检查。通常 , 条件越复杂,越需要用其他方面检查集成测试中的约束。例如,假设要使用方面 跟踪 GUI 中的脏对象以便进行重新绘制。可以编写测试方面以记录在任何验收 测 试期间由脏跟踪方面标记的控件名称。在测试结束时,测试方面为要运行的测试 查找包含期 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |