领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Dionysios G. Synodinos 译者 侯伯薇 发布于 2011年9月26日
MaintainJ是一种反向工程工具,它能够为Java代码库生成运行时序列图和类图,最近它发布了3.2版本,在其中多项功能得到了增强。MaintainJ基于Eclipse构建,因此能够在所有基于Eclipse平台构建的IDE上运行。
InfoQ与MaintainJ的Choudary Kothapalli做了一次小型的问答式采访,对这个新版本提出了一些问题:
InfoQ: 在v3.2中实现的主要新特性有哪些?
- 显示调用上下文(call context): 在序列图中,当鼠标在调用(call)上悬停的时候,就会弹出提示框,显示出调用上下文——调用方法的参数和返回值。而在“属性视图”中会显示更详细的内容,以及被调用对象的状态。
- 显示运行时SQL——不管你使用的是哪种JDBC框架,MaintainJ都能够捕获到发送到数据库实际运行的SQL语句以及其中的参数。这些数据库调用会显示在序列图中,并且还会显示每次数据库访问的响应时间。
- 支持多JVM(multi-JVM)的应用程序——用户可以跟踪运行在多个JVM上的应用程序,并且能够在单独的序列图中看到端到端的调用流程。例如,当应用程序调用运行在不同JVM上的web服务时,这个跨JVM的调用流程就会显示在同一幅序列图中。在这幅图中,我们会看到,每个JVM上的调用都以不同的颜色显示。
- 增强的大纲视图——序列图的“大纲视图”会显示出用例中的所有类和调用。在新版本中该功能得到了增强,从而能够一次选中并删除多个包、类或者调用。并且新版本还在序列图中添加了一个选项,可以把所有getter和setter方法筛选掉。
- JSP调用——在用例中对JSP文件的调用也会显示在序列图中。如果一个JSP文件中包含了多个其他JSP文件,那么对内部JSP的运行时调用(runtime call)也会显示。
我们使用Alfresco来演示上述特性,它是一个内容管理系统,其中带有8000个Java类和600个XML配置文件。Alfresco运行在Tomcat和MySQL服务器上,使用了Spring、Hibernate以及很多其它Java框架。你可以查看该应用程序的演示视频(3.5分钟)。
InfoQ: 据你所见,人们使用MaintainJ一般的流程是什么样的?
主要有两种情况会使用MaintainJ。
1. 理解和调试应用程序
MaintainJ会为单一的用例生成序列图和类图。序列图会显示出该用例具体的运行时类(runtime classes),以及包括SQL调用在内的所有做出的调用。开发者可以使用生成的图快速了解用例,并找到问题的根源。
让我举例说明:
我们的一位客户在一个Swing应用程序上使用MaintainJ,其中带有大量事件驱动逻辑,仅仅通过阅读源代码很难理解那些逻辑。
我们的很多客户都在J2EE应用程序上使用MaintainJ。在J2EE应用程序中,业务逻辑经常会分布在Java类、XML文件、门户以及规则引擎配置文件中。在这样的应用程序中,想要理解特定用例的运行时交互(runtime interactions),往往需要好几天的时间。使用MaintainJ我们就可以大大减少分析应用程序的时间,并减少调试和改善这种复杂应用程序所需要做出的工作。
2. 编写Java应用程序文档
让我举例说明:
在一家大型的美国银行中,企业要求Java团队对缺少文档的遗留应用程序进行改善。这个团队使用MaintainJ为所有用例生成了序列图和类图,然后利用这些图来对应用程序进行改善。
一家IT服务公司接受了为美国政府维护Java应用程序的工作。在每次发布之后,这家公司都需要负责提供相应的UML文档。他们并没有手动绘制序列图和类图,而是成功地使用MaintainJ生成了这些图。
InfoQ: MaintainJ未来的路线图是怎样的? 你对其未来的发展期望如何?
在回答这个问题之前,让我们先谈谈MaintainJ背后的产品哲学。软件成本中的90%都花费在维护工作上,而50%的维护成本都花费在理解代码上。软件维护一般包括修正缺陷和对应用程序做出改善。
修正缺陷一般会包括三个步骤。
1) 找到存在缺陷的源代码
2) 修正缺陷
3) 把修正后的文件安全地放回到生产环境中。这个步骤包括分析该变更对应用程序其他部分的影响,并需要执行恰当的回归测试。在对应用程序做出改善以添加新特性的时候,包含的步骤也非常类似。
通常,与寻找导致缺陷的源代码和安全地把修正放回到生产环境相比,第二步即修正缺陷所要做的工作要少得多。
MaintainJ的目标是要在第一步和第三步为开发者提供帮助——找到存在缺陷的源代码以及执行恰当的影响分析。当前的版本解决的是第一步的问题——找到导致缺陷的源代码。
后续计划
在十月份我们会发布下一个版本,其中会解决第三步的问题——影响分析。MaintainJ当前会在基于文件的数据库中为不同的用例分别存储运行时调用的跟踪信息。这些信息会用于执行影响分析,并识别出回归测试的案例。接下来的版本计划会在2012年3月份发布,它可以在浏览器中显示序列图。针对应用程序中不同用例的调用跟踪文件(call trace files)会统一存储在中央数据库中。开发者、测试人员和经理都可以通过用例名来搜索这个数据库,并在浏览器中查看相关的序列图。他们也可以执行影响分析,从而找到所有会受到修改类或者数据库操作影响的用例。
InfoQ: 用户可以选择什么样的许可来使用MaintainJ呢?
查看英文原文:MaintainJ 3.2 Released With Multiple Enhancements1. 免费评估许可和支持
我们提供了21天的评估许可,并在期间提供免费的支持。我们希望用户能够事先试用MaintainJ,从而意识到它是如何把调试和编写文档的工作从几天减少到几分钟的。
我们还提供两种商业许可。这些许可不会过期,可以在将来的版本中继续使用。
2. 锁定节点的许可(Node locked license)
该许可的价格是100美元,只能固定在一台计算机上使用。
3. 浮动许可(Floating license)
这个许可适用于企业中的Java团队。5个浮动许可的价格是1000美元。
译者 侯伯薇 是InfoQ中文站架构社区编辑,有多年对日和国内项目开发经验,目前关注企业中技术与实际业务之间的融合和协作。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复