白话面向智能体编程(Agent Oriented Programmig, AOP)之一

Adrian同志有一篇关于Aspect Oriented Programming的Blog The Ted Neward Challenge (AOP without the buzzwords),俺非常的喜欢。这篇文章中文翻译过来可以是“无废话AOP”,它从一个脱离了具体实现手段的视角,用简单清晰的语言向我们表达了Aspect Oriented Programming的本意:尽量将需求和实现的关系由1:N逼近至1:1。俺也非常希望能整出这么一个“无废话Agent Oriented Programming”,可是基于下面两点考虑,俺还是决定放弃:一个是Agent Oriented Programming不光是个有意思的技术话题,还与学术界,理论界有很深的渊源。要“无废话”,且饶有趣味地阐述这样一个理论问题,是相当有难度地,还是时不时有必要来点废话,才不至于让同志们看得睡着过去。另一方面,记得上学的时候,老师传授的读书体验是先把书读厚,再把书读薄。书读薄了,吃透了,归纳出来,写出来的都是精华,当然也就无废话;而俺现在还处于把书读厚的第一阶段,所以写出来废话会比较多一点。基于这样的考虑,这个系列的文章可以被称为是“白话Agent Oriented Programming”。

如果俺有足够的耐性把文章全整出来and您有足够的耐性看完所有文章,您会对以下的内容有一个大概的了解:

l 什么是Agent和Agent Oriented Programming Agent这个概念并不是空穴来风,在理论界对它的研究已经很深入,Agent是Object的进化版本,进化的目的是为了让软件系统更贴近现实世界。从程序设计的角度理解,可以认为Agent就是绑定了Thread的Object。

l 为什么要整这么个概念出来,这个东东和其他一堆泛滥的概念的关系是什么 可以说搞软件的人,特别是搞平台软件的人,本质上都比较,整天琢磨着怎么更懒,如果有个东东可以让100行的代码压缩到10行,将设计,调试,维护的时间由1天压缩为1个小时,他们就会将这种方法拎出来,凑成一个概念。OOP,AOP,SOA什么的基本上可以说都是这么整出来的(戏言戏说)。

l 怎么样在.Net 平台上实现Agent Oriented Programming Agent Oriented Programming是一种思想,与平台无关。但既然是准备贴在以微软技术为主题的博客堂上,为了以示尊重,还是选择在.Net平台上实现的比较好。

l 俺们设计的一个Agent SDK,及其一些蛮有趣的特性 实际上这个Agent SDK是俺们设计一个工作流引擎的副产品。在给大家做演示的时候,这个SDK倒是比上层的工作流引擎更能引起大家的兴趣(除了胸闷还是胸闷)SDK部分地实现了Agent的一些特性,例如AgentMethod,TimerMethod,Sensebility等。

l 未来之路 这里的未来之路包含两个意思。一层意思是,围绕着Agent Oriented Programming,还有很多高级的特性等待我们去实现,例如移动Agent,合作Agent等。另一方面,对于任何思想,技术而言,光掌握其原理,明白是怎么回事,是不够的,还是得运用到项目中,创造效益,老板才会高兴,才会去下力气去推广。所以俺们也要考虑如何将这么好的东东应用到实际的项目开发中去。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

WCF技术剖析(卷1)之推荐序

【推荐序一】 Windows Communication Foundation (WCF)是用来在不同应用间进行互通信的一个编程框架,它是.Net Frame...

18410
来自专栏阮一峰的网络日志

五个为什么(译文)

昨天晚上,我终于把 More Joel on Software 翻译完了。 谢天谢地,总算可以摆脱这本书了。 唯一的感觉就是特别倦怠......检查完译稿以后,...

28012
来自专栏CIT极客

【极客周刊】支付宝PK微信?AI程序员面世?等等重大事件等你来看!

4266
来自专栏ThoughtWorks

庖丁解牛:产品需求分析|洞见

在庄子的《南华经》中有一则寓言。说是有位叫丁的厨师,替梁惠王杀牛, 其技法之娴熟,有行云流水一般的顺畅感。惠王就问他为什么有如此高超的技术。他回答说:“臣所喜好...

3547
来自专栏企鹅号快讯

各种流行的编程风格 你属于哪一种?

在编程中,会遇到很多使用囧然不同风格的开发者,下面是小于所知道的一些,你还知道其它的吗? ? 一、散弹枪编程 ? 这种编程风格是一种开发者使用非常随意的方式对待...

22311
来自专栏Java面试笔试题

C/S 与 B/S 的区别

1.硬件环境不同:   C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门server提供连接和数据交换服务.   B/S 建立在...

911
来自专栏phodal

2017 年,我挖的那些开源软件坑

造轮子,是一个程序员的基本装逼技能。这些轮子可以的来源可以是: 我们日常工作中遇到的一些问题,提出的解决方案。 使用某个开源软件的过程中,发现它不能满足我们的需...

2167
来自专栏ThoughtWorks

复用的着相 | 洞见

仙剑奇侠传中有一个故事。讲的是一个成精了的佛珠。想要让更多的人向佛,于是施法,让这些人失去了记忆,只想一心礼佛。使人向佛,本来是好事,但强人所难,脱离了本质,便...

792
来自专栏TEG云端专业号的专栏

黄宇:腾讯计费——亿万级大促活动自动化保障体系

腾讯计费平台是产品端到端在线交易平台,其核心是帮助用户与产品安全、便捷的完成支付和收款,在交易过程中帮助产品盈收最大化。平台承载了公司每天数亿收入大盘,为180...

1663
来自专栏福利活动清单

视频狂欢季 特惠8折起

① 音视频通话产品50000分钟套餐包有效期1个月,有效期自购买次月1号开始计算,单个用户限购5个;

1121

扫码关注云+社区