领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Robert Bazinet 译者 杨晨 发布于 2010年5月26日
长时间的等待之后,开发者终于迎来了Rubinius 1.0。项目团队花费了三年半的时间完成1.0版,并且提供了部分承诺的特性。Rubinius极力向开发者宣传它的各种新特性,包括:
- 支持大量的Ruby代码和流行的C插件:
- Rails 3和2.3.5
- Sinatra
- sqlite3、mysql、nokogiri和yajl-ruby
- 数不胜数的其他插件
- 加速Ruby代码运行速度的JIT编译器。
- 新一代的垃圾收集器。
- 集成剖析器。
我们之前曾经报道过Rubinius,例如在RubyConf 2009上采访Evan Phoenix并且询问项目的进展情况。我们也撰写了Ruby标准展望,其中Brian Ford阐述了Rubinius是如何紧紧和标准联系在一起的。时至今日,我们又采访了Brian Ford和Evan Phoenix,就Rubinius 1.0现在和未来交换了意见。
既然Rubinius 1.0已经发布,我们希望知道这个发布版对于Rubinius的现在和未来意味着什么:
我们花费在1.0版的四年时间是非常值得的。你可以看到,在这四年中,我们不仅完成了一个能够和1.8.7兼容的Ruby运行时,而且还应用了加速动态语言的最新研究成果,这些成果包括新一代的垃圾收集器和集成的JIT编译器。我们希望尽可能地使用Ruby来编写代码,即便可能有一些性能损失。这是因为Rubinius是使用ruby来实现方法,而MRI是使用C。但是,我们一直致力于性能的改进,这就是你所看到的Ruby和C在性能上的竞争情况。
和现存的Ruby框架兼容情况:
完全兼容。在以某种方式运行Sinatra程序的时候会出现一个诡异的bug,不过现在我们已经解决了。我们会将用户反馈的任何框架相关的bug的优先级设置为最高,然后在下一版本中解决。
当我们询问Rubinius对现存Ruby gems支持问题的时候,他们说:
如果是纯Ruby gem的话,那么没有兼容性问题。我们也支持大量使用C扩展的gem,例如Nokogiri或Mongrel等等。不仅如此,我们一直将一些并不支持的扩展移植到支持的API上。其实,有些API不能够支持的原因是这些API直接将某些结构体的指针暴露出来了,而这些结构体在MRI中被当做内部类使用。比如。RHASH()支持开发者访问一个‘st’结构体指针,这个结构体被MRI用于实现Hash类。由于我们不用手动使用st来实现Hash,所以不需要暴露这个指针。因此我们重写了API,在提供相同功能的同时也避免了这些情况。
我们也听说strings在Rubinius的性能有下降。考虑到strings在Ruby程序中使用率非常高,我们希望能够知道现在Rubinius能够给我们带来什么,以及它的未来发展会是如何:
说所有的string性能都比1.8.x有下降是不准确的。String的大部分方法性能都至少和1.8相当。仅仅是一部分性能较慢,例如tr、gsub和unpack。我们现在非常积极地改进这些性能缓慢的方法。
性能问题一直是一个值得关注的话题。当InfoQ问到为何Rubinius是比其他Ruby实现,例如MRI 1.8.x/1.9.x和MacRuby更加值得选择的时候,他们回答道:
Rubinius运行Ruby代码的速度极快,如果可以使用纯ruby代码实现的算法做基准测试的话,Rubinius肯定稳居榜首。由于我们独特的JIT技术,我们能够提供比MacRuby更加优异的性能。这项技术能够高效地利用程序剖析信息,从而产生更加快速的机器代码。
开发者看到Rubinius性能较低的时候是因为Rubinius正在运行一些核心类的代码。我诚恳地请求开发者能够在我们的问题跟踪器中发布关于性能缓慢的报告,或者能够直接向#rubinius反馈。每一个发布版都会着重解决性能问题,最终目标是Rubinius的所有核心类方法的性能都要比1.8中的要优秀。
Rubinius是一个开源项目,它的发展和成功得益于活跃社区的贡献。社区给予Rubinius非常大的帮助:
我们非常高兴地看到我们开放的代码库也协助开发者持续为我们的项目做出贡献。并且,系统的绝大部分是使用Ruby实现,我们可以快速地增加和调试功能,然后提供给用户新的特性。
社区最大的好处就是它能够即时帮助我们测试代码以及发出反馈。这将帮助我们快速成长和克服困难。
当问到近期和远期分别可以对这个项目抱有什么期望的时候,他们回答说:
我们已经计划发布下一个bug修复版。1.0.1将会在下周发布(5月24日这周),并且会修正1.0版中很多bug。
我们另一个高优先级的任务就是第一个新特性版本:1.1,它增加了调试器。我最近将大部分精力放在这个版本上,它很快就会发布。这个版本将调试器紧密集成在一起,我想用户会非常喜欢它的。
开发者可以在Google Group的rubinius-dev群中自由交流。
更多关于Rubinius的信息可以在Rubinius官方网站上找到,Rubinius的源代码可以从Github代码库中下载。
查看英文原文:Rubinius Turns 1.0
译者 杨晨 对数据库和搜索引擎有深入了解,尤其擅长经典计算机科学理论,对历史学兴趣浓厚。
在实施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 条回复
关注此讨论 回复