Tangram挑战软件禁地 构思插件体系引擎

上一篇我们分享了 孙辉 老师深厚的软件开发经历,接下来我们就要进入Tangram,在这里面一起细细体会这些年 孙辉 老师对软件的理解和心血。

现在Tangram的开源部分有两个版本,一是Tangram的开源版本,另外一个是TangramLite版本,其中都包含了许多很实用的开发技术,当然,开源部分是整个Tangram框架的一个子集。那么Tangram到底是一个什么样的项目?从字面上看,Tangram是 中国古代的游戏“七巧板”,这是典型的古代中国的朴素思维方式,即“以有限驾驭无限”的基本构想,中国古代的先哲们很早就有“金、木、水、火、土”繁衍世 界的认识,无论是“金、木、水、火、土”繁衍世界,还是“七巧板”,都是体现一种构造哲学的设想,另外一个类比可能是门捷列夫的元素周期表,通过这个周期 表,人们看到复杂世界的简单的一面。

Tangram的基本出发点是,通过COM.NET组件形成的一个“基”,按照一个组合法则,形成一个“公共组件资源空间”,这个空间的成员是由有限个“COM、或.NET”组件形成的一个组合体。我们希望“公共组件资源空间”能够成为相当大的一类软件的公共基础,这意味着,这类软件支持“公共组件资源空间”中的每一个元素。

产生开发Tangram项目想法源于多年的实际开发经验,对技术、项目的积累达到了一个阶段之后我觉得软件系统的不可回避的一个问题是软件系统具备“不完备性”,因此,Tangram最主要的用途是对这种不完备性的一个有效的补充。因为Tangram最突出的特征就是实现了一个灵活的软件插件引擎,csdn的 韩磊 先生曾经建议将其命名为“逆向插件体系”,我觉得这是一个有趣的建议。

Tangram的思路是作为一个“插件体系”的引擎,是一个十分值得期待的新颖的软件构思。Tangram框架的目标就是开发满足上述描述条件的软件系统,目前,Tangram支持的“公共组件资源空间”是由“COM控件、.NET控件以及C++ View”对象作为原子生成的组合体形成的集合。

Tangram for IETangram的第一个示范性的产品,作为这个产品的结果,Internet Explorer将产生任意多个定制化的框架,每个框架都相当于一个“第三方”浏览器,如下图:


1:Tangram for IE,在IE框架中直接架构自己的软件框架

未来的规划是我们希望Tangram可以自然的与主流商业软件进行“桥接”,例如,Tangram框架与Office结合,作为一个概念图,我们可以给出一个实验阶段的运行截图:


2:Tangram Excel结合,使得业务软件框架直接架构在Excel基础之上

另外一个概念性质的截图是TangramEclipse的结合:

3:Eclipse中的Tangram,图中兰色加亮的标签窗体中的框架结构来自Tangram

通过这些年来对于MFC的了解, 孙辉 老师个人坚持认为MFC很难在近几年内被淘汰。他说作为一个严肃的C++开发者,对MFC提出批评的时候,一定是需要很熟悉MFC的,否则批评就一定是苍白的。

很多人都认为WTL是很优秀的产品,但Microsoft始终不给其正规产品的定位,这一点很说明问题。许多开发者在没有深刻认识的前提下批评MFC是一种浮躁的表现,几年前 孙辉 老师曾经在CSDN论坛中发过关于MFC方面的一个帖子,当时许多朋友都参与了探讨MFC的各个方面,从许多方面看,MFC都是一个禁得起推敲的框架,大而臃肿是每个框架发展到一个阶段都必须面对的问题,作为一个研究课题, 孙辉 老师说:“MFC的批评者或许是MFC框架的最大受益者。”

“我觉得,无论你是否喜欢,在Microsoft平台上用C++开发,至少应该批判的学习MFC,我接触过一些自己写框架的开发者,他们觉得自己的东西可以替代MFC,大部分的作品我觉得经不起推敲,经得起推敲的应该是那些熟悉MFC的作者的作品。.NET框架的类库结构可以看出许多与MFC相似的思路,这也很说明问题。”

如果要问“基于MFC编程认识到哪一点是最重要的” ?我觉得MFC的思想方法是十分重要的,著名的QT框架的许多想法就是从MFC框架借鉴而来的,很早的时候,许多人用BorlandC++类库与MFC比较,说MFC如何拙劣,但MFC现在还健在,但OWL已经消失了,面对一个经典的框架,本来就基础薄弱的我们,为什么有时间品评MFC的优劣,而不进行深入的学习呢?

我想对Windows平台下的C++开发者说的是,如果你真的讨厌MFC,那么你应该耐心的了解这个东西,直到找出MFC令你讨厌的地方,如此,你才能够更上一层楼。

Tangram中的每一行代码,都是 孙辉 老师经历的见证。在对Tangram做不断完善的过程中, 孙辉 老师意识到了仅仅有技术是无法成就一个产品的。通过交流其实有很多朋友都影响过Tangram这个技术框架。 孙辉 老师特别提到了CSDN的 袁德俊 先生,他的设想使Tangram框架中加入了IE插件的构造能力,在与哈尔滨的 曲春雨 先生的交流中形成了Tangram框架中灵活、自由的IE扩展框架, Tangram for IE最后的技术框架的确定与CSDN的 蒋涛 先生、 韩磊 先生的不断磨合也有着极为密切的关系。

“人不能经历所有的事情,即使你具备相关的能力,但客观的环境会让你根本无法知道你更适合做什么,在不断的交流中,我捕捉到种种思考点进而促使Tangram不断的丰满。” 孙辉 老师这样心存感激的说道,

“我的教育背景也是产生 Tangram 项目的另外一个关键因素, Tangram 技术构思是开发者的盲点,其中的技术技巧不是关键的因素,构思点是关键的原因,我觉得形成 Tangram 的基本想法的重要因素之一是我是基础数学科班出身的背景。究其本质而言, Tangram 更像一个数学问题,只不过是用 C++ 解决的。”(全文完)
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐