领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Stefan Tilkov 译者 郭晓刚 发布于 2007年6月21日
Thomas Steiner已经发布了REST Describe & Compile工具的0.3版。这个工具可根据现有的REST消息构建出WADL描述,并可进一步生成多种语言的代码。这次的新版本增加了生成Java代码的功能(之前已可生成PHP、Ruby、Python和C#代码)。要想对REST Describe & Compile工具有个初步了解,你可以试试它的在线版本;你也可以下载它的源码。这是一个Java程序,其中使用了Google Web Toolkit。
Thomas跟InfoQ通过E-mail进行了一次简短的问答,以解答关于方法和工具使用上的一些最显著的问题。
InfoQ:你能不能给我们作一个简要的概括——用两句话介绍REST Describe & Compile?
Thomas Steiner (TS):WADL跟REST的关系等同于WSDL跟SOAP的关系。WSDL有Axis和WSDL2Java工具,REST则有REST Describe & Compile,它是一个很酷的WADL生成工具,以及WADL到任何语言的代码生成工具。差不多是任何语言;-)
InfoQ:这跟Google有什么关系?
TS:这是我在Google做的毕业设计,不过它不是正式的Google产品。我在实习期间是作为Google的临时员工工作,最近又跟Google签了一份从10月份开始的全职工作合同。
InfoQ:你是打算即时生成服务描述,然后用“契约先行”的方式来使用它们?
TS:只要在头脑中构想出URI的结构,你就可以用“事例驱动”的方式来构建服务。然后不费吹灰之力就得到WADL描述和代码。将来你的服务打算支持哪些请求,你就准备一组事例,把它们丢给工具,就可以得到WADL和任何语言的客户端代码。
InfoQ:你对于认为代码生成是罪恶的观点看法如何?
TS:
/**
* 本文件由REST Compile自动生成。
* 你不应该修改本文件,除非你知道自己在做什么。任何修改
* 都有可能造成严重破坏,甚至摧毁你的电脑。
*/
除此之外,代码生成让你能够非常快速地对契约更改作出响应。修改服务描述,运行代码生成器,你的工作就完成了。代码生成有助于全面保证一致性,当你只需要维护生成器而不用动任何一个文件时,维护也变得更简单。这跟做爱很像,只有当你真正享受过之后你才能说出好在哪里。
InfoQ:你对“REST是否需要一个描述语言”这场争论的观点如何?
TS:老实说,我觉得大家对于什么是REST,什么是RESTful,什么是用REST伪装的WS-*,太过庸人自扰了。我觉得问题不在于HTTP方法是如何映射到CRUD的,对这些问题大家已经讨论了很久。我更同意Nelson Minar的观点:“怎么行得通就怎么做”。没有什么REST不REST的做事方式,只有一家企业的做事方式。有时候一家企业被另一家买下了,突然间企业里就有了两种做事方式。看看Yahoo!、 Flickr和Del.icio.us就知道了。他们的API都很棒,也确实运作得很好。有些API完全不需要身份认证,另一些则强制HTTP认证,而大多数服务都有某种形式的令牌参数(Token Parameter)。问题在于没有一种通用的机器能识别的方式来描述这些东西。WADL可能跟WSDL描述服务的方式很相似,但谁又在乎呢?规范差不多14页那么长,你可以读它,理解它,甚至真的实现它。Marc Nottingham做了一个WADL到HTML的转换工具,Marc Hadley也有一个WADL工具(现在属于SUN),终于,现在有了REST Describe & Compile。可能WADL不是Web Service的万能药,但它的用处是实实在在的。它让你能够完成你的工作,管它是不是纯粹的REST,是不是POX,是不是RESTful,或者其它什么东西,能用就行。
InfoQ:你对未来的版本已经有什么计划了吗?
TS:目前程序完全在客户端运行。这样做有很多优点,但是,长远来说,这限制了它的能力。可能有一天会出现一个WADL2Anything的在线服务,大家向它发出WADL请求就可以传回生成的代码。人们应该能够把他们的WADL存储在网上,让其他人免费使用。就像是Web Service版的CDDB(译者注:CDDB是提供唱片资料的网站)。这是比较接近幻想的计划,首先要完成的还是一些实在的目标:提高代码生成能力,增加对XML Schema的支持,改进语法高亮,让REST Compile模块支持更多更多的语言……
InfoQ:非常感谢!
查看英文原文:REST Describe and Compile译者 郭晓刚 是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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
1 条回复
关注此讨论 回复