领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Tim Cull 译者 张凯峰 发布于 2010年9月19日
Joda Time fame的Stephen Colebourne关于他之前发布的一个Java库Joda Convert ,在他的blog上率先发起了一场小范围的争论,这个库可以通过annotation来进行基础对象和字符串之间的转换。为了解释清楚关于字符串转换的方方面面,下面是对字符串和对象间互相转换技术的一个综述,让我们从Joda Convert开始。
根据Colebourne先生的文章,Joda Convert宣称的目标是为了简单性而牺牲完整性。它允许Java类的作者指定任意名称的方法,实现从字符串到此类实例间的转换。比 如,Currency类可能有个静态方法叫做“fromISOCode(code)”,以及一个实例方法“getISOCode()”。如果为这两个方法 添加来自Joda Convert的annotation:@FromString和@ToString,使用Currency类的应用就可以通过类似这样的调用:“Foo bar = StringConvert.INSTANCE.convertFromString(Foo.class, str);”,来实现对象和字符串间的转换。这样的转换通常对那些必须解析来自HTTP GET数据的Web应用很有帮助。Colebourne先生的这篇blog的评论者们则提出了一些其他的可替代方案。
第一个可替代方案是Java中内嵌的java.beans.PropertyEditor。PropertyEditor使用JavaBeans技术来把字符串转换成属性值。虽然PropertyEditor一般常见于像IDE这样的可视化编辑器里面,但其实它也可以用在后台的处理上。比如Spring3.0之前的版本广 泛地使用了PropertyEditor来支持数据绑定和验证。不像Joda Convert,PropertyEditor可以用在很多方面,而不仅仅是把字符串转换成对象。比如,PropertyEditor有内建的对注册 PropertyChangeListener的支持。
J2EE在JSF中也有自己内建的转换技术。JSF中包含了用于普通类型比如BigDecimal、Float、DateTime等的转换器,也提供了一个接口用于自定义转换器实现。自定义实现只需要为getAsObject和getAsString方法提供代码。但是JSF转换器和JSF绑定得很紧,所以在JSF以外使用它们会很困难。还有一些其他第三方的替代方案实现了字符串转换技术。其中一个最近被用在Spring 3.0中。虽然Spring之前的版本使用PropertyEditor,但SpringSource选择在3.0里面实现自己的转换方法。根据SpringSource所说:
当我们开始改善Spring 3的数据绑定系统时,我们的目标是:
1. 提供一个无状态、强类型的类型转换SPI来取代JavaBean PropertyEditor
2. 提供一个统一的类型转换API,用在任何需要的地方,包括Spring的DataBinder和Expression Language
3. 可以通过Java注解元数据来驱动类型转换
4. 通过注册可感知的缺省设置,以及采用惯例优于配置的策略,来简化转换
SpringSource并不是唯一一家提供自己的类型转换器的开源组织。一些Apache项目也有他们自己的类型转换器,比如Apache Commons BeanUtils(用在Apache Digester),陷入停滞的Apache Commons Convert,甚至是Apache Struts和Apache Camel。
一些框架还被设计成不仅仅能把字符串转换成对象。比如,Dozer是一个可以把任意复杂的对象转换成其他任意复杂的对象。因为字符串就是对象,所以它可以处在Dozer转换的任意一方。
最后,在选择一种转换技术的时候,开发者需要记住的是,上面提到的任何一种技术都是针对自己的目标环境而优化的。比如,浏览器中发送到HTML表单以及接收 自HTML表单的字符串,就会和把同一个对象写成XML文档的字符串不太一样。此外,即使是在完全相同的目标环境,比如浏览器中,一些用户可能需要的是不 同的本地化字符串(比如日期“2010-31-01”或者“1/31/2010”)。最后但一样重要的是,不同的媒介会支持不同的字符串编码。比如,XML文档可以使用UTF-8、ISO-8859-1或者许多其他的编码,因为它可以在第一行中指定字符串编码。而从URL解析得到的字符串只能是ASCII编码。
查看英文原文:Roundup of String to Java Object Conversion Libraries
译者 张凯峰 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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复