领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Werner Schuster 译者 丁雪丰 发布于 2011年1月19日
JRuby 1.6 RC1发布了,带来了一大串改进:Charles Nutter给出了JRuby 1.6的一个概述,Tom Enebo演示了改进后的Windows支持,Yoko Harada罗列JRuby API的变化。
InfoQ就JRuby的现状与未来采访了JRuby的Charles Nutter.
InfoQ:JRuby 1.6中有什么大的变化?
JRuby 1.6 RC有超过2000次提交,解决了超过260个问题。这让JRuby 1.6成为迄今为止最大的发布。
JRuby 1.6 RC中的主要特性有:Ruby 1.9兼容性——JRuby继续跟进Ruby的最新版本,即1.9.2,JRuby 1.6承诺改善大多数1.9应用程序的兼容性,包括支持新的编码API。改善Ruby代码的性能——JRuby 1.6吸纳了很多增量的性能改进内容,包括Ruby 1.9中更快的标准库,还为日后的开发打下基础。
改善Windows支持——JRuby 1.6发布了新一轮的Windows支持内容,包括内置对WIN32OLE的支持,还有其他一些兼容性补丁,它们让Ruby应用程序能无缝运行于Windows之上,就像在其他平台上一样。
Ruby 1.9.2的兼容性已经完成的差不多了。还有一些特性会安排在后续版本中:Encoding::Converter、非ASCII标识符以及“ripper”和“fiddle”库。我们希望用户能在1.9模式中测试JRuby,在1.6.0最终版前发现那些剩余的问题。
InfoQ:纤程(Fiber)怎么样了?
JRuby 1.6 RC中已经有纤程了,我们在今后的版本中会继续改善性能。
InfoQ:我想最近的MLVM已经有了协程(Coroutine)支持(Lukas Stadler的工作?);你有没有尝试过呢?
我们已经尝试过了MLVM,计划在后续版本支持它。
InfoQ:Ruby社区以及其他一些来自Node.js社区的人最近一直在谈论关于异步和非阻塞I/O的好处。你是怎么看待阻塞式I/O和非阻塞式I/O的?
和其他东西一样,混合多种方法通常才是最好的。异步I/O允许你将I/O通道放在一个工作队列里,当I/O通道等待时释放线程和资源。
对单线程运行时(例如MRI或V8)而言,这很重要,因为只有一个线程可以工作。对那些像JRuby这样的多线程实现,异步I/O同样很有用,但它也可以有多个并发工作线程来处理阻塞和非阻塞调用。混用阻塞和非阻塞I/O提供了最大的灵活性,那些不支持异步的系统调用或库也不会对此有什么妨碍。
InfoQ:JRuby好像同时提供两种方式,因为它和MRI不同,JRuby既有并行线程,又有NIO。有没有什么非阻塞I/O(或带有Java 7中的NIO 2的异步I/O)可以发挥的场景?
在实现一个必须处理数以千计连接的服务器或客户端时,唯一的选择就是弄一个较小的工作线程池来处理大量异步I/O通道。大多数用户都不会碰到这样的场景,但在你需要异步通道时,它是无可替代的。JRuby的I/O子系统直接构建于NIO之上,这就有可能在线程之间复用可选I/O通道。任何一个对高并发、高负载I/O感兴趣的Ruby用户都应该来看看JRuby。
InfoQ:对于Ruby 2.0最近的工作你有什么看法,例如Ruby Refinements?你有没有尝试一下,或者试着在JRuby中实现它们(我相信你实现了一个关于选择器命名空间的初期概念)?
Refinements是一个很有意思的特性,我们希望规范再“细化”一点后就支持它。如果可以安全地为monkey-patch分配命名空间,这就可以解决Ruby世界里的一个常见问题。我们在Refinements的讨论中贡献了评论和原型实现,而且在规范制定阶段会继续做一些模拟的范例实现。
InfoQ:看起来Java 7可能会在2011年的某个时间成为现实;你有没有计划在未来的某个JRuby版本(1.7、2.0……)中使用Java 7的特性?如果有的话,会先做哪个特性(除了invokedynamic)?
我们计划为Java 7特性增加端到端的支持。具体来说,我们会大量利用invokedynamic和方法处理,让JVM能更方便地优化Ruby代码。对于NIO2中的文件系统级特性,我们也感到很兴奋,例如其中对符号链接的支持、文件系统事件以及其他一些以前只能通过我们的本地POSIX扩展才能拥有的底层功能。在进行文件系统操作时,NIO2可能意味着JRuby能更接近本地Ruby实现。它也让JRuby成为了在跨平台衔接文件系统事件方面最可靠的Ruby实现。我们同时计划继续支持Java 5和Java 6。
InfoQ:JRuby 1.6中有哪些性能改进,其中哪一个是你想放在下一个版本中的?
最大的性能方面的工作涉及到减少Ruby调用的开销。在JRuby 1.5和更早的版本中,所有的Ruby调用都会在调用时占据一个thread-local数据结构。那个数据用于生成回溯(backtrace)、处理“super”调用、决定当前的“self”和包含类等等。JRuby 1.6中,在生成回溯时不再需要这个数据结构了,这意味着很多Ruby方法现在的人为调用开销接近于0。这让一些大派发量的性能测试结果提升了好几倍。
我们还开始了对未来的优化目标的实验工作。上面提到的“回溯”方面的工作还让一个名为“dynopt”的特性成为可能,它可以在编译时使用JRuby解释器的信息将动态调用转为直接的静态Java调用。JRuby 1.6并不支持此特性,但你可以通过-Xcompile.dynopt=true开启它。在小型性能测试上,能产生巨大的性能差异。另一个实验工作与我们在优化的编译器有关。我们在构建一个新的编译器和中间表述,这样在我们生成JVM字节码前更容易做一些优化。这允许我们用JVM可能还没发现到的方式来预优化Ruby代码。在未来的JRuby版本中,我们会继续在这两个特性上下功夫的。
查看英文原文:The State of JRuby: 1.6 RC1, JSR 292 and NIO2 in Java 7, 1.9.2 Support
译者 丁雪丰 是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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复