BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Charles Simonyi在JAOO会议上揭开意图软件产品的面纱

| 作者 Floyd Marinescu 关注 32 他的粉丝 ,译者 胡键 关注 0 他的粉丝 发布于 2007年9月29日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

在9月24日的丹麦JAOO会议上,Charles Simonyi(最近的太空观光者和前微软首席的Word和Excel架构师)将软件的短暂历史归纳为分离问题和解决方案间的斗争,并谈到了两种工作方式间的不匹配,它们是领域专家思考和保存他们的领域知识的工作方式与程序员必须保存并重写那些领域知识以构建为那些领域服务的软件的工作方式。

Charles所创建的意图软件的目标是建立一个世界,在其中,领域专家可以用他们熟悉/顺手的符号或输入形式(方块、线条、表格、公式等等)书写需求。这个“领域代码(domain code)”被当作软件开发项目的一等公民,被用来作为产生应用其余部分的输入。业务使用者书写领域代码,开发者书写程序产生器。

这一目标已被意图软件开发成为“领域工作台”产品,该公司为此付出超过5年的时间,该产品目前正处于非公开的beta测试,并被一些咨询公司作为产品使用,包括Capgemini。领域工作台完全符合Martin Fowler定义的语言工作台的全部需求。

在幕后,领域代码以一个被称为“意图树(intentional tree)”的树型结构表示,它可被投影成多重符号以便业务使用者可以用更适合他们的方式来表达领域代码。

领域代码可类比领域特定语言,但是它们是不可执行的,而且可以简单很多。因为它们不必是一个正式的可被解析的语言,它们可以有二义性。二义性的问题可使用底层领域代码(它们可捕获数据的不同子集)的多重符号/投影来解决——Charles给出了一个CAD系统的例子,在其中你可以画一个圆,但是接下来你可以在一个单独的视图中定义这个圆是什么。

Charles邀请了Henk Kolk(Capgemini的技术副总裁)展示他们使用意图的工具所完成的一些工作。Henk谈到了养老金领域,该领域的养老金计划极其复杂且还随着时间推移频繁的变化。一家公司试图为一个养老金计划建立一个通用数据模型,这耗费了他们好几年的工夫。

Henk提到意图的工具允许那些习惯了用Word和Excel结合自制的公式/符号的业务专家使用相同符号来捕获复杂的养老金计划信息。下图显示了内置在领域工作台中的表格界面,它看上去与原来以Word作为来源的表格是一样的:


领域工作台允许代码完成,同样允许相同领域代码的多重投影:


业务使用者甚至可以在他们自己的定义旁边将可执行的测试内嵌于领域工作台中:


Henk解释了整个工作过程:业务使用者可以很自然地参与进来,独立地开始“编码”,接下来所有的那些业务知识被保存并被用于产生应用的其余部分。Capgemini最初试图为养老金计划构建一个通用的DSL,但是现在使用意图后,他们打算为他们所有的养老金公司客户发布一个领域工作台。

关于意图软件目前还没有太多的报导,但是InfoQ将发布一个对Charles Simonyi的专访视频(在JAOO录制),对于本文中谈及的议题也会被拍成录像。一篇研究论文也会深入探究意图软件。该工具还没有一组启动的时间表,但是我们将对任何变化进行紧密跟踪报道。

查看英文原文:Charles Simonyi reveals production use of Intentional Software @ JAOO

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

终于有成果了? by HE Shijun

2004年出版的《产生式编程:方法、工具与应用》中就介绍了IP。快4年过去了。。。

Re: 终于有成果了? by wu powers

是啊,我也是看了那本书,不过就算是用google来搜索来找不到有关多少IP编程方面的信息啊...书中介绍的是用C++的Template来实现,不过现在看来也许可以使用Ruby来实现其中的generate.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT