《从“ShowMe”到“快图”》
——袁德俊 (最后更新日期:2004/9/4)
一、尽可能掌握多一些工具软件,这是提高沟通效率的要件
在7/17日我撰写的《蚂蚁啃大象·论开源精神·ShowMe项目策划》,出发点可能不在制作一个比“PowerPoint”还要强大的工具软件,更多的是讨论如何“协作”。本文则是专注于策划一款“绘图工具”,灵感来源于近日与朋友们沟通过程中频繁见到的Visio绘制的流程图。之所以叫它“快图”是因为如今的绘图工具实在不如在纸上胡乱地画些框和线来的直接和快速,更是同朋友们交流沟通的一个最先使用的方法。Visio工具绘制的图,更多的是在“正式”的场合,准确地定义好了思路的情况下。
近日的感受,如此众多的工具,功能丰富的令人眼花缭乱,多学习学习比自己开发要来的更重要,最直接的收益就是Boss对你的计划书刮目相看。
下面就开始描述,我对这个未来工具的描述,可能它的功能早已经被某个软件实现,我为我的孤陋寡闻表示歉意。不过我的策划中不只包含功能的实现,还参加了“程序员”最惯性的思考方式,部分的系统解决方案,甚至细节的技术实现。
二、“快图”的输入流程:
大家对“手写输入”应该不陌生,就这一个功能的实现,就足以消耗“汉王”的全部精力,动用庞大的开发资源,产生巨大的应用市场了。“快图”一定要有“手绘输入”能力。
此情景好象在某个软件巨头的宣传片里见过。IT精英用在手写板电脑上,用笔在屏幕上画着不是很规则的方框,以及不规则的连线,再手写几个单词在方框里,于是电脑屏幕上就出现了如Visio一样的流程图了,用触笔拖动方框,调整/修改着流程,对面的同事/客户,更可以用同样的方法表达自己的意见。结果当然是令人欣慰的,讨论结束,正式的流程图就已经完成了。
这和我与朋友们交流的时候,在纸上胡乱地画着,最后纸上被逐渐加重的线条涂抹的面目全非,来的好不只一星半点儿。哈,好象想起来了,好象有个“电子墨水”的概念。
三、“快图”里众多的“对象”:
如同Visio一样,众多的工具栏里管理了繁多的绘制元素,或线或点或图形或文字,你能想到的它都有。这和PowerPoint里的绘制元素没有什么区别,以目前的软件销售模式,你也许需要支付2套软件的费用,因为它们输出结果有区别,且都有一点点各自的功能。
在“快图”里,我们的绘制元素可以被绘制到任何目标上,屏幕、纸张、幻灯片,任何你需要涂鸦的地方都可以被“对象”封装起来。当然这些绘制元素也都是一个个“对象”,可以被分类管理选择,也可以手写识别。绘制流程无非是:先选“画布”(好象来自PhoToShop),再选绘制对象,放置在画布上,改变尺寸/属性,针对对象增加额外的处理效果。
好象遗漏了一类重要对象“尺子”。这是我们从小学就在文具盒里准备的工具了,从最简单的直线,到后来的半圆仪,绘图板,甚至电子元件专用的电路图绘制板。我再延伸一下,有坐标的绘图纸都是为了辅助我们精确定位绘制元素的“尺子”。这些“对象”有些是我们在绘制的时候明确选择的,有的是默认选择的,比如:我们画线段就默认选择了“直尺”,画流程的线条则自动选择了“折线”。这些都是“电脑”帮助我们实现的。
四、成熟的概念——“层”
无一例外:PowerPoint、Office的其他组件、PhotoShop、Flash等等,只要是图形系统,“层”就一定会出现,包括游戏引擎DirectX里。众多的绘制元素要有条理地显示在“画布”上,借助“层”来管理和描述它们的关系是在合适不过了。当然同一个“层”里可以用“顺序”来表示它们的前后关系。
五、“快图”的高内聚的内核——插件系统
要实现众多“对象”的管理,要实现众多绘制规则的添加,该产品就必须有一个高内聚的内核,将所有必须的核心基础对象进行抽象,比如:绘制元素、纸、尺子等,然后以灵活的接口,用插件扩充的方式提供“对象”的丰满。现在的很多流行的成功的应用,插件系统和系统扩展都设计的非常好,是“快图”必须做到的部分。
目前,NGNc正在开发的NGNbios的UI系统,正在朝向这个目标迈进。
六、“快图”的开发模式
现在最前沿的UML开发模式,可能更加适合“应用”系统的开发,对于“快图”的内核,更适合的是利用“人脑”管理它的模型和体系架构,包括代码管理等。在内核完毕后,其上的“插件系统”则可以作为应用系统的开发模式,引入各种先进的管理和开发思想实现。