从卓越工程角度看微软中国开发团队的成长
开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。
作者 Werner Schuster译者 高昂 发布于 2007年6月20日 上午7时30分
如今Ruby运行时的实现已经满大街俯拾皆是了。目前在Java虚拟机平台上已有两个Ruby的实现了,它们分别是JRuby和XRuby,而.NET平台也在迎头赶上。IronRuby项目就在上个月引来了众多开发者的关注,但是不到2007年7月末它最终被发布出来,外界谁都不知道它到底有多完善。
在另一方面,Gardens Point Ruby.NET编译器是由昆士兰理工大学的Wayne Kelly博士和John Gough教授所领导的研究小组负责开发的,于2006年6月面世,通过将Ruby代码编译成微软中间语言(Microsoft Intermediate Language/MSIL,.NET CLR的指令集),使得代码在CLR之上得以运行。
同样是提供了Ruby在.NET环境下的运行机制,IronRuby项目与Ruby.NET项目间的关系非常微妙。IronRuby项目的开发者John Lam曾提到,IronRuby项目借用了Ruby.NET项目中的部分代码:
我们在今年初得到了Ruby.NET项目代码使用的授权许可,并且我们在IronRuby之中使用了Ruby.NET的扫描机制和解析机制。这帮助我们减轻许多编码方面的工作,同时使我们项目获得了与MRI(译注:Matz's Ruby Interpreter,即Matz的Ruby解释器,Ruby的C语言版本,也是标准实现)高度集成的扫描器和解析器。
在项目代码实现中,符合标准的语法解析器是非常重要的组成部分,使用Ruby.NET的解析器可以减轻IronRuby项目组大量的工作。
Ruby.NET新的0.8版本中添加了重要的功能改进:
自从在Ruby.NET上一个版本中我们添加了与其它.NET语言的互操作机制以来,基于.NET语言开发的组件能够方便的使用Ruby.NET实现跨语言的函数调用,反之也是如此。
下面是一个在C#代码中调用Ruby代码的例子,Ruby编写的类如下:
class Person
def init(name, age)
@name = name
@age = age
end
def print()
puts "#{@name} is #{@age}"
end
end
在C#中调用Ruby代码:
Person bruce = new Person();
bruce.init("Bruce", 42);
bruce.print();
在Ruby中调用基于.NET编写的函数也是遵循同样的方式,在0.8版本发布中,关于项目有一段有趣的注释:
项目将会很快转移到一个更为普遍的开放源代码社区之中,同时需要吸引更多的开发者参与到项目之中。如果你在维护开源社区运转方面有丰富的经验,我们将会非常欢迎你加入到社区之中。至于近来关于IronRuby的一些疑虑, 事实上一直以来,许多Ruby基础运行时库的开发者已被吸收到JRuby、XRuby、Rubinius和IronRuby这些项目的开发之中,熟悉Ruby的.NET开源项目参与者将会感兴趣语言互操作方面的内容。
由于对IronRuby存在着一些疑虑,而且从去年以来,有许多Ruby运行时实现的开发人员都被商业公司雇用,为各自的Ruby实现(包括JRuby、XRuby、Rubinius和IronRuby)添砖加瓦,对Ruby有强烈兴趣的.NET开源开发人员可以好好探索一下这个项目。
查看英文原文:Ruby.NET 0.8 release
开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。
本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。
InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。
在这篇文章中,Adrien Louis和Marc Dutoo在一个典型的ESB场景中讨论了编配和路由的区别和优缺点。他们讨论了几种连接服务的方法,从使用如自定义路由这样的低级别方法,到使用如工作流和编配这样面向业务的高级别方式,并总结说不存在“一边倒”的解决方案。
本文是根据7月26日InfoQ中文站在杭州举行的QClub活动(第三期)后半程小组讨论总结而成。主要内容包括如何在SOA系统中实现服务编排,如何保证分布式系统中的一致性和可用性,以及如何在实施SOA的过程中控制接口的粒度等。
人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。
在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。
没有回复
回复