Arthropod——Flash和AIR调试器


作者
Moxie Zhang   译者
张龙

对于任何计算机语言和运行时环境来说,调试工具都是软件开发中不可或缺的组成部分。基于Adobe Flash平台的RIA开发(无论是Flex还是AIR)当然也不例外。随着Flex/AIR的不断成熟,涌现出了越来越多的调试工具。Arthropod就是其中之一。Arthropod是个针对Flash和AIR应用开发的调试工具。InfoQ有幸采访了Flash开发者及Arthropod创建者Carl Calderon来了解该工具。

在被问到创建Arthropod的缘由时,Calderon嘲弄到“限制滋生了创造性”。之后他说到:


当AIR的首个beta版发布时,我就实现了一个简单的hello-world示例。我发现的第一个问题就是跟踪方法的局限性:跟踪层次越深,我变得越迷
糊。还有很多开发者也面临着同样的问题。之后我找到一个调试器,你可以在浏览器中运行它并收集跟踪信息,但对于少量日志的应用来说这太复杂了。我想要的东
西应该尽可能类似于Flash的输出面板。几天后我使用基本的技术自己开发了一个,这些技术来自于过去的项目积累和临时的突击学习。在发现会经常使用该工
具后,我开始进一步扩充我的想法。最后,成就了现在的Arthropod。

关于目前的调试工具,Calderon说到:

现在有很多调试工具。随着新版Flash CS4
IDE的发布,你可以在测试(而不是运行)AIR应用时从输出面板中得到跟踪行为。对于一般的Flash电影来说也是这样的。一旦开始运行,你就无法再使
用日志了。其他调试工具对于大多数用户来说都太复杂了,而且有些还不能很好的处理沙箱限制。到现在为止,我还没发现什么问题是Arthropod所无法处
理的。

在被问到Flash/AIR开发者为何要使用Arthropod时,Calderon说到:

Arthropod的特别之处在于其易用性,下载后直接就可以使用。你只需使用类中的静态方法就可以完成想要的功能。

大多数人都以正常的情况开始,发布其产品,一旦上线后还要面对出现的问题,他们把问题归罪于API、领域限制等等,而且他们无法看到背后的事情。如果使用Arthropod就可以立刻看到错误消息。

Arthropod的强大之处不仅在于其易用性,而且它还可以区分不同的日志类型。你可以实时看到数组缓冲的变化、获取对象的快照并能对消息着色以增强视觉效果。

在被问到Arthropod的设计时,Calderon说到:

Arthropod的设计并不完美,但可行。如果用户不需要,我不想把没用的东西展现出来,比如位图面板和数组面板。因此我把他们藏到主窗口后面了,如果用户需要可以将其显示出来。

就框架来说,除了自己的我没使用其他的框架。Arthropod的核心引擎是完全独立于用户界面的,其本身就是一个框架。Arthropod是用Flash IDE和FlashDevelop开发的。

所用的设计模式也是我自己创造的。它类似于MVC,但针对ActionScript 3做了一些调整。我把它叫做基于事件的模式(event-based-pattern),因为不同的组件可以独立运行,仅通过事件进行交互。

Calderon正在忙于2.0版。该版本将拥有改进的UI及一些新特性,但仍旧好用。根据Calderon所述,其计划是让Arthropod成为Flash调试器的不二之选。

为什么叫做“Arthropod”呢?Calderon说到:


我经常在维基百科上寻找各种信息,我觉得它是个起名的好地方。由于是个调试器,我首先查找的是bug相关的信息。在阅读了几个小时的关于蜘蛛的内容后,我
突然看到了Arthropod还有Phylum
Arthropoda,我觉得这是个希腊语,意为连接的脚。“太棒了”,从那以后我就一直沿用这个名字了。

查看英文原文:Arthropod – A Flash and AIR Debugger

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: