领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Werner Schuster 译者 郭晓刚 发布于 2007年11月1日
Eclipse等IDE靠着从Smalltalk IDEs里吸收养分已经赢得了很多用户——增量编译、本地版本管理就是其中的两个。不过Smalltalk IDEs(或Emacs等编辑器)仍然占据优势的一个领域,就是IDE本身的自动化:在IDE里将重复性的工作变成脚本。Smalltalk用户可以直接用Smalltalk去访问IDE的对象,Emacs用户用LISP可以完成同样的工作——不但可以交互式地完成,还可以在运行时进行。
Eclipse Monkey为Eclipse提供了一个方案——Eclipse Monkey的名字来自著名的Firefox插件GreaseMonkey。它的第一版用JavaScript(基于Java的Rhino)作为脚本语言,但Christopher Williams最近宣布也可以用Ruby(采用JRuby)来编写脚本了:
如果你不熟悉EclipseMonkey,它是一组Eclipse插件,可以和用户交互,并用非Java的其他语言(最初仅支持JavaScript)来给IDE写脚本。更详细的信息你可以查阅http://www.eclipse.org/dash/monkey-help.php?key=writing。
EclipseMonkey的Ruby扩展开启了用Ruby代码编写IDE脚本的能力。
最初的版本暴露了一个Editor DOM,让你可以用脚本去操纵编辑器。我们在Wiki上已经准备了一些帮助,里面描述了很多细节以及Editor DOM的API信息。我们也提供了一些示例脚本,演示如何使用这个功能。
Eclipse Monkey的设计实践了“简单”原则——这么做是有原因的:这个项目的发起人和设计者之一是 Ward Cunningham,他与其他人一起在1990年代发明了Wiki。脚本是项目中的一些文本文件;任何元数据都保存在文件自身里面。元数据包括依赖性,或者运行脚本的一个快捷方式的声明。你可以把一个脚本与Eclipse中的任意事件挂钩,比如文件变更、文件保存或者程序启动。
下面是一段用Ruby写的Eclipse Monkey脚本,用来把编辑器里的String转成Symbol:
=begin
Menu: Ruby > String to Symbol
Kudos: Christopher Williams
Key: M1+Shift+;
License: EPL 1.0
DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.ruby
=end
# If the current token is a string containing alnums, change it to
# a symbol
editor = $editors.get_active_editor
selection = editor.selection_range
selected_src = editor.source[selection]
# if entire selection is a string with no dynamic content, then
# convert the string to a symbol
match = selected_src.match(/(['"])([_a-zA-Z][_\w]*)\1/)
return if match.nil? || match.size != 3
symbol = ":" + match[2]
editor.apply_edit(selection.first, selection.size - 1, symbol)
Eclipse Monkey中的另一个概念是DOM,别跟HTML或者XML DOM搞混了,它代表的是Domain Object Model。它是一个为特定领域的某些功能提供简化接口的一个对象。
以上面的代码为例,$editors变量指向一个处理所有与Editors相关之事的DOM。为Eclipse这类IDE编写脚本,DOM是必要的简化之举。通过直接访问Eclipse对象、系统及API来完成相同的事情也是可以的,不过写出来的脚本很可能会变得更加复杂。这是由于Eclipse的设计非常灵活,它具备的若干概念也造就了它的扩展能力——但也意味着像$editors.get_active_editor这样简单的一句表达式要变成2-3行代码。
这些DOM都是普通的Eclipse插件,贡献到org.eclipse.eclipsemonkey.dom扩展点,因此在Eclipse的插件开发环境(PDE)中编写一个简化的功能接口是很容易的。Eclipse Monkey的元数据也有助于DOM的配置管理:脚本的元数据段可以指定它所需DOM的update site,当脚本运行的时候系统就会自动去获取需要的DOM。
由于Eclipse Monkey脚本在Eclipse的JVM里运行,因此可以在脚本里使用所有的Java API和所有的JRuby标准库。现在已经存在很多Eclipse Monkey DOM,让开发者得以访问Eclipse和Eclipse插件元系统提供的丰富代码和功能。
例如用JMX DOM就可以通过JMX来控制JVM。通过简单的脚本就能够调用所有的JMX操作,查询所有的JMX属性。在实用中可以用它来从Eclipse启动一个程序,设置程序的属性(比如日志级别),调用程序的操作(比如执行垃圾收集)——只需简单的一步。别的DOM还可访问比如CVS/SVN插件、工作区、JDT等等。
更多信息可参阅Aptana的Eclipse Monkey网站,或者Eclipse Monkey网站的官方页面。
查看英文原文:IDE scripting with Ruby and Eclipse Monkey译者 郭晓刚 是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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复