领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Mike Bria 译者 丁雪丰 发布于 2011年6月13日
VMWare SpringSource的Martin Lippert最近宣布了SpringSource Tool Suite 2.6.0和2.6.1的发布,这是一个基于Eclipse、用于构建Spring应用程序的开发环境。新版本中有不少新特性,将很多项目升级到了最新版本,比如Spring Roo 1.1.4、Eclipse Helios SR2、Groovy 1.7.8、Grails 1.3.7。新版本更新了对Spring Roo和Groovy on Grails的支持,并改善了它们的性能;还包含了一个Spring Web Flow的图形化编辑器、新的内容辅助支持、针对Spring注解的快速修复和重构。
InfoQ采访了Martin,了解了开发者对新版本能有何期待,以及别的一些内容。
Mike Bria,代表InfoQ:新版本中有什么新功能可以帮助程序员使用Spring的基于注解的元编程吗?
Martin Lippert,就职于SpringSource:
鉴于越来越多的Spring开发者正从基于XML的配置方式转到基于注解的Spring编程,我们正尝试为基于注解的Spring编程提供支持,就像过去在XML编辑器中编写Spring配置文件的支持一样。
首先,我们关注于配置部分的@Autowired、@Qualifier,还为控制器做了很多支持。因此你在Java编辑器中有了针对Spring注解的自动补全和内容辅助,就像编写标准Java代码一样。对@RequestMapping的支持特别好;它包含了键入路径变量时的自动补全和内容辅助,对缺失或不完全匹配的变量的快速修复,甚至还有重构支持。当你重命名一个参数时,它会自动根据名称映射到一个路径变量上,注解中的路径变量也会随之改变。
我们的目标就是避免为那些注解提供额外的试图或特殊编辑器;让开发者留在Java编辑器中,在编写Java代码时提供尽可能多的帮助。
InfoQ:还有什么其他新的重构工具和功能(除了针对注解的)吗?
在这个最新版之前,我们就已经提供了大量自动重构功能。你可以重命名Bean的id、属性等等,你所做的所有修改都会反映在Spring配置XML中。就算你重命名了一个用@Bean声明的方法,在你的Spring配置中对该Bean的引用也会自动改变。 尽管如此我们还是努力提供更多的改进。在2.6.0中,我们为p命名空间增加了重构支持,还增加了advice和pointcut定义的重命名支持。此外,我们在下一个版本中也计划了很多这方面的内容。
InfoQ:能否跟我们说说新的图形化Web Flow编辑器?
在2.6.0中我们为Spring Webflow引入了一个全新的图形化编辑器。我们和Webflow团队一起努力开发了一款可视化编辑器,在使用Webflow时你可以看到你想要的和你所需要看到的东西。不仅如此,如果你不喜欢我们设计的标准布局,你还可以改变它――它是完全可配置的!你应该看一看,这真是太美了。
InfoQ:这个版本中改善了对Spring Roo和Groovy on Grails的支持。你能解释下有什么新的东西么?
我们一直想包含最新的Spring Roo,为它提供全方位的支持。这就是为什么我们要在4月12日发布2.6.0.SR1,在5月18日发布2.6.1.SR1。我们将继续跟着Roo发布新的版本。总的来说,基本的Roo支持很稳定、很成熟。
在Groovy和Grails方面有不少动作,我们正努力为Grails提供最好的开发者体验!为了这个目标,我们大幅改进了Eclipse底层的Groovy-as-a-language支持,添加了更好的(更可配置的)语法高亮、类似“内嵌重命名”的重构改进、对Groovy++的早期支持,还有一些编译性能改善。在Grails方法,我们增加了从gsps跳转到标签定义的支持,还增加了直接调用新Grails构件向导的菜单项,可能的话,还要保证那些向导可以基于上下文做预填充。我们相信这能让Grails的开发更有乐趣。
InfoQ:能够部署到一个基于云的环境中是许多开发者日益增长的需求。新版本在这方面做的如何?
4月12日Cloud Foundry发布了,我们也提供了Cloud Foundry的STS支持。这允许使用Cloud Foundry的开发者直接在STS里将它们的应用部署到云里。无论你是将应用完全托管在cloudfoundry.com上还是部署在开发环境的本地微型云,甚至是开发机上,它都可以支持的很好。你可以启动或停止云中的应用,为它们分配服务,浏览远程文件系统,这些都可以直接在STS中完成。
InfoQ:我在ToolSuite 2.5里看到过“基于代理重新加载”(Agent-based reloading)的介绍。我想很多开发者并没有意识到这一特性,或者是至少没有意识到该特性为他们提供了什么。你能跟我们谈谈这个特性么,在2.6里它又有什么新的内容?
“基于代理重新加载”是一个很棒的特性。但它还处于初期阶段,因此我们并没有着重介绍它。在使用tc Server时,它可以在很大程度上减少等待应用重新部署的时间。应用运行于tc Server中并开启该功能时,很多代码变更可以立刻反映在运行的应用程序中,无需重启服务器。
当然,这听起来和调试Java应用时的热代码替换(hot-code-replacement)很类似,但它实际远不限于此。有了它,你可以在应用程序运行时添加/删除/修改方法,甚至成员变量。代理会负责将那些变更推送给运行中的应用程序,不会丢失对象的状态;完全不用重启或重新部署应用程序,重启服务器。
我要重申一下,它还处在初期阶段,我们正持续改进它――近期的主要关注点将是保证对Spring配置的变化能正确反映在运行中的应用程序里。最近的改进中添加了对Groovy和Grails应用程序的支持。
InfoQ:能否告诉我们新版本中对AspectJ Dev Tools的增强?
可以这么说,AJDT中最近的特性/变更的主要驱动力是Spring Roo和Spring Data项目。虽然方式很不同,但两者都大量使用了切面;例如,Spring-Data大量使用了通用切面。
在处理AspectJ代码时,所有这些变化都为编辑器提供了更平滑的体验,保证你想做的任何动作里都用到了AspectJ构造器。例如,搜索/重构操作都能意识到中间类型(intertype)声明,并做相应处理。
InfoQ:同样与AspectJ有关,你们也对JDT织入做了一些变更。能说明一下吗?
实际上,最近我们默认开启了JDT织入。AJDT用JDT织入来多“开启”一点Eclipse,以便UI扩展(比如AJDT)能实现它们需要的功能。JDT织入实际使用了AspectJ在Eclipse启动时织入其中,使用了Equinox Aspects孵化项目中开发的技术。这项技术我们已经使用了一段时间,但过去它总是“opt-in”——在最近的版本中已经默认开启了,因为它已经证明了自己的可靠性和健壮性。
InfoQ:据说ToolSuite的团队在一个较为分散的团队中使用了有纪律的敏捷过程。能稍微就关键的方面展开说一下你们是怎么做的吗?
STS的开发团队确实是一支遍布在全球的分散的团队。成员主要是在加拿大和德国,但整个团队总共遍布在5个城市里,我们运用了敏捷方法。我们有一个略微定制过的敏捷过程,结合了Scrum和看板中的技术,因此我们有一个持续改进的带优先级的backlog,通过Skype做每日Scrum,还有一些别的东西。
但我认为对外界而言,最显著的、最能看到的变化是我们的发布周期。我们大概每三个月就能发布一个新的STS版本,每个版本之间还包括两个公开里程碑版本。这让我们能以规则的步伐来发布新特性和其他改进。人们很感兴趣的新特性可以在里程碑版本中让他们提前使用。我们很希望Spring社区中能有更多的人参与到这个过程之中。对我们开发工具而言,反馈是必不可少的,任何来自社区的反馈或建议都是我们的无价之宝。
InfoQ:最后,下一个版本的backlog里有什么热点内容吗?开发者可以期待些什么呢?
我们目前正在努力改进Cloud Foundry集成功能,为Cloud Foundry和STS提供更深的整合。下一件大事当然是支持接下来发布的核心Spring框架的3.1版本。对新的“profiles”特性的支持将尤其出色,你会喜欢它的。
在2.7的开发过程中,我们与Gradle团队紧密配合,希望能为Eclipse提供Gradle支持。我们还将继续改进Grails中的重构支持,提供智能重命名,它能理解构件之间的关系,一并重命名(简单的例子:在重命名领域类时重命名你的测试类)。
我们还开放了Groovy-Eclipse,让那些使用自定义DSL的人能更方便地进行扩展——提供一段简单的Groovy脚本就能扩展Groovy编辑器的内建推论和代码辅助功能。我们自己也会拓展这一特性,支持Grails中用到的多种DSL。我们相信这一定会开启无限可能。
谢谢Martin!
查看英文原文:Martin Lippert on the newly released SpringSource Tool Suite 2.6
译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复