领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 赵劼 发布于 2010年11月10日
长久以来,在.NET平台上只能通过JScript.NET执行ECMAScript/JavaScript代码,但是该项目一直是.NET语言中的二等公民,甚至Mono中的对应项目也已经无人维护。不过在JScript.NET逐渐淡出人们视线的时候,.NET平台上也出现了一些新的JavaScript执行引擎,虽不完善,但值得关注。
Jint是一个相对较早的纯托管代码实现的JavaScript执行引擎,基于MIT授权协议开源,它的目标是为.NET应用程序提供JavaScript代码的执行及互操作能力。您可以将一个.NET对象传入应用程序,或是使用.NET类库。Jint使用ANTLR解析JavaScript代码以避免CodeDomProvider可能带来的内存泄漏。目前Jint处于0.8.9版本,可以支持JavaScript的一些高级技巧,但仍处于ECMAScript 3.0语言特性的实现阶段。
Jurassic同样是一个开源的托管JavaScript执行引擎,使用MS-PL授权协议。它的目标是成为.NET平台上功能最强,最为标准的JavaScript引擎。具官方页面描述,Jurassic引擎:
从性能评测上看,Jurassic优于Jint,但还远远落后于著名的V8引擎。此外,Jurassic依赖.NET 4,并支持Silverlight,在它的项目页面中您可以看到一个Silverlight版的JavaScript控制台。
IronJS是一个.NET平台中的新军,由Fredrik Holmström开发。IronJS之前同样使用ANTLR来解析代码,但如今的解释器已经使用F#编写。IronJS构建于DLR之上,因此可以轻易地与IronPython,IronRuby等语言进行互操作。IronJS最重视的一点便是“性能”,从作者博客上的各项评测结果来看,甚至领先于以速度见长的V8。不过IronJS仍处于早期Alpha阶段,并没有提供完整的功能。
同样基于DLR的还有RemObjects Script for .NET,可惜它并不是开源产品(不过公开了源代码),且授权协议要求我们最多在5台机器上安装代码,且只供自己使用。
除此之外,老赵在博客介绍到,他在构建新版博客的时候,使用IKVM.NET运行Java实现的Rhino引擎,并成功执行了showdown.js(JavaScript实现的Markdown转化器)及一些自定义的过滤逻辑:
有趣的是,.NET平台下最靠谱的JavaScript执行引擎居然是Rhino JavaScript,最近一次发布是在2009年3月,不过实现的十分完整。要说缺点,可能就是使用起来比较麻烦,还有,这是个Java项目。
嗯,我没有开玩笑,我们完全可以在.NET平台下使用Rhino JavaScript:
var cx = Context.enter(); try { var scope = cx.initStandardObjects(); cx.evaluateString(scope, @"var checkName = function(name) { return /^\w{3,10}$/.test(name); }", "checkName.js", 1, null); var func = (Function)scope.get("checkName", scope); Console.WriteLine(Context.toString(func.call(cx, scope, scope, "jeffz"))); Console.WriteLine(Context.toString(func.call(cx, scope, scope, "hello world")); } finally { Context.exit(); }因为我们有IKVM.NET。mono等.NET开源社区上有大量宝藏,就看您能利用多少了。我用ikvmc把js.jar转化为RhinoJs.dll之后就可以直接使用,效果很好,对调试也有很好的支持(如果JavaScript执行时出现了错误,则VS会直接带您至出错的那行)。性能也是比较令人满意的,在我的Mac OSX上安装的Ubuntu Server 10.10虚拟机,单线程转化并过滤博客上最近的3800条评论,大约耗时20秒。试验时Host上还开着一个Windows 7虚拟机,还有大量浏览器等应用程序,并不十分空闲。
您可能知道,我的博客目前是基于mono 2.6的,其中比较有特色的地方便是评论功能了,我使用Markdown标记,并提供了实时的预览功能,这自然需要在客户端解释Markdown标记,并进行过滤。目前,我还在服务器使用了C#实现的Markdown转化器及过滤逻辑,但在某些特殊情况下结果会有所不同,且需要维护两套代码。不久以后,我会将把博客升级为ASP.NET 4.0及mono 2.8(C# 4.0的dynamic特性在某些情况下的确比较方便),并且在服务器端使用IKVM.NET + Rhino JavaScript执行相同转化代码。从效果上来看还是十分令人满意的。
IKVM.NET是一个在.NET环境下运行Java程序的项目,它可以将Java字节码转化为.NET IL,并提供了一套JDK核心类库的.NET实现。IKVM.NET支持微软.NET平台及Mono,并可以成功运行包括Eclipse、Jython、JBoss在内的大型Java应用程序。老赵之前也分享过他基于IKVM.NET使用Lucene 2.9.0及Google Closure Compiler的经验。
赵劼 网名为老赵,洋名Jeffrey Zhao,写有技术博客“老赵点滴”。关注前沿技术,并致力于开源社区与微软平台的组合优化。
在实施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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复