剖析短迭代
敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?
作者 Werner Schuster译者 高昂 发布于 2007年11月1日 下午7时0分
经历漫长的等待之后,Mac OS X Leopard操作系统终于发布,并在其中提供了对于Ruby编程开发的广泛支持。在Wiki站点MacOSForge.org之上列出了Leopard系统中新提供的Ruby特性。
Ruby环境已升级到1.8.6 p36版本,这是我们可以获取的最新Ruby稳定版。此外我们又针对部分重要改进,将p36版本之后发现的重要Bug的补丁包也纳入进来。但这些在当时并不属于Ruby的官方补丁发布版中的一部分(这些补丁在后来已经包含进了官方补丁发布版,但是已经超出了我们系统发布的截止日期)。
[……]
包含程序解释器内核的Ruby libruby.1.dylib类库,以四种形式的二进制代码发布,支持ppc,i386,ppc64以及x86_64四种体系结构。因此开发者可以在 64位的应用程序中加入Ruby代码。所有的C语言扩展对于32位和64位体系架构均可用,只有Tk脚本不能在64位的环境下使用。因此,Ruby解释器的加载路径/usr/bin/ruby仍然保持为32位的形式,使得脚本可以使用Tk扩展,或其他依赖于32位运行的机制。
在默认情况下,Ruby的C语言扩展可以面向ppc和i386两种目标平台发布。如果在链接到非通用类库(比如mysql.com为每个处理器架构定制的二进制文件)的情况下,开发者可以设定ARCHFLAGS环境变量来配置扩展的编译。
除了上述内容之外,Ruby解释器的另一个有趣拓展是对于静态探针的支持。动态跟踪DTrace技术原先是由Sun公司为Solaris开发的,但是目前已经被移植到其他的Unix平台之上。DTrace允许开发者对应用程序甚至操作系统的代码进行低开销的跟踪和概览。Mac OS X的Ruby解释器包含下面这些探针:
探针
目前Ruby-DTrace之中所包含的探针
探针名称 描述 function-entry 当Ruby方法调用时被激活 function-return 当Ruby方法返回时激活 raise 当Ruby代码抛出异常时激活 rescue 当Ruby代码异常得到处理时激活 line 每一行Ruby代码执行时激活 gc-begin 在垃圾回收周期开始时激活 gc-end 在垃圾回收周期完成之后激活 object-create-start 在Ruby对象被分配之前激活 object-create-done 在Ruby对象完成分配之后激活 object-free 在每次Ruby对象释放之后激活 ruby-probe 可以在Ruby代码中调用的探针(请关注下文)
这些是从Joyents Ruby DTrace项目之中引入。Mac OS X Leopard同样也包含被称作Instrument的工具,用来将跟踪和分析进行可视化展示。
苹果公司同样也为XCode以及GUI设计器Interface Builder提供了Ruby语言的支持:
在Leopard之中,Xcode与RubyCocoa项目模板一同出现,但同时也具备一个模板来生成Test/Unit目标。在BridgeSupport机制的帮助之下,Xcode为Ruby语言提供了更好的代码补全支持。
Interface Builder目前对Ruby语言提供了官方支持。比方说,开发者可以在Xcode中编写Ruby的类,通过outlets或者actions,所有要素都会自动出现在Interface Builder之中。Interface Builder使用RubyCocoa的rb_nibtool工具来同步元数据。在另一方面,你可以在Interface Builder中手工定义outlets或actions,并拖拽到Xcode的Ruby文件中,随后相应的Ruby代码就会被粘帖到其中。
Mac OS X Leopard还包含有一个名为Scripting Bridge的崭新框架,这个框架允许使用脚本来编写应用,同时也支持Ruby语言:
ScriptingBridge是一个新的Leopard框架,为基于AppleScript实现的AppleEvent基础设施提供了访问途径。 ScriptingBridge将会动态生成一个Objective-C语言接口,与指定程序的脚本化字典相对应。开发者可以通过Obective-C语言接口来发送消息并且控制应用程序。
多亏了RubyCocoa项目,使得通过Ruby语言使用ScriptingBridge成为可能。尽管某些脚本元素目前并不支持,比方说enumerations,但是大部分功能对于开发者来说都是可用的。
查看英文原文:Ruby on Mac OS X Leopard with DTrace, XCode and Interface Builder support
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。
InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!
在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。
通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。
本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。
InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。
没有回复
回复