2.1 面由心生——WinHex启动中心
识数寻踪:WinHex应用与数据恢复开发秘籍
俗话说,“人活一张脸,树活一张皮”,软件也不例外,简洁大方的界面设计会给使用者带来心旷神怡的感受。其实,软件设计走到最后就成了一门艺术,设计师不再满足于合理体现软件的主要逻辑,而是力求将美学和创意贯注于软件的灵魂之中,让使用者产生强烈的精神共鸣,从而打心底欣赏、热爱软件。从另一个角度说,如果开发者对界面重视,那么软件核心的质量必定不差,尚未听闻界面草草了事但功能强大、运行稳定的软件(命令行除外)。本节我们就将欣赏这样一件珍品:WinHex启动中心。
2.1.1 你是否对它一见钟情
如果说,启动中心是WinHex的“容貌”所在,你是否会对它一见钟情?
如果某软件能让人“一见钟情”,那么它就获得了70%的成功。当然,“一见钟情”并非依靠绚丽的色彩和强列的层次感。大自然中,妖艳的事物并不一定就拥有强大的诱惑力,某些清新淡雅的事物更深得生性恬淡的人们所喜爱。
在渲染技术横行的今天,WinHex依旧以一身素装婷婷玉立于软件之林,既不矫揉造作,更不轻狂卖弄,沉默方显孤傲,冷静体现端庄。我相信,虽然大家在各自的数据恢复职业生涯中接触过不止一种数据编辑器,但是终归还是会将WinHex拥入怀抱。
当作者第一次接触WinHex时,就对它的“启动中心”印象颇佳,后来伴随着软件开发生涯的成长,越来越体会到WinHex的良苦用心。作者终于明白,启动中心其实是WinHex框架和功能的缩影,是设计思路的精华所在。这里我们先不讨论“启动中心”的具体功能,而是先说说对它的第一印象,如图2-1所示。
2.1.2 功能猜猜看
首先,我们看到一个子窗口,可以用鼠标拖动它,但是只要它存在,WinHex的其他菜单或按键似乎都处于冻结状态。有开发基础的读者一定想到,这是一个带有对话框特性的子窗体,如果不给这个窗体一些明确的指示,相关的线程就会阻塞在这里,也就是说,启动中心从一种略带强制意味的角度建议我们应当首先进行它提供的操作(对话框都是这样),这些操作清晰地反映WinHex的应用方向。我们不妨看看有些什么操作。正上方是4个按键,依次是打开文件、打开磁盘、打开RAM(内存)、打开文件夹,这些按键标题的含义如下。
打开文件。几乎每一个使用者都会这样理解:打开一个可以在Windows资源管理器中查看的文件个体。
打开磁盘。使用者会猜想:是否就是打开一个可被Windows正常识别的存储介质,如硬盘、U盘、闪存卡等。
打开RAM。使用者会惊喜地猜想:是否可以用它来访问内存?
打开文件夹。使用者会猜想:这肯定是个让他们感到物有所值的功能,也许它可以批量访问一个目录下的所有文件。
通过这4个按键,使用者已经隐约掌握到一些知识。可以说,到目前为止,根据按键标题做出的推测都是正确的。这就是清晰的软件逻辑带来的“解惑”效果,使用者甚至不用详细查阅产品说明书,就对WinHex产生了兴趣。
这里一连出现了4个“打开”,那么这些“打开”代表什么含义呢?在我们刚刚接触电脑的时候,打开一个文件就意味这一次鼠标双击。比如,要打开一个Word文档,在“我的电脑”中找到对应的文件名,将鼠标指针移到文件图标的上方双击即可打开文档。如果这个文档被病毒感染,我们怀着侥幸心理又一次双击后,发现仍然启动不了Word程序,或者看到一堆混乱的字符,结果便是无法打开这个文件。这时文件的健康程度成为我们“成功打开”的基础。可以说,“打开”就是一种操纵电脑的单一行为。随着知识的积累,我们渐渐发现,在不同的计算机领域中,“打开”有不同的含义。在Win32编程中,我们可以打开一个内核对象,在数据库开发中,我们可以打开一个库文件、一张表数据。随着自身的不断进步,这些“打开”的含义的界限似乎又模糊起来,我们逐渐明白,无论我们打开什么,在计算机上都是对一种我们称之为“数据”的飘渺事物访问,只不过有的访问流程非常复杂,有的访问流程相当简单。计算机软件的“打开”行为,归根结底没有区别。而能反映这种同一性的典型工具就是WinHex。可以说WinHex就是为数据而生。
左下角是一个列表控件,控件标题是“最近打开的数据”。该功能大家都不会陌生,平时编辑文档或开发项目,该功能可谓大显神威,带来了不少便利,此刻一定心知肚明,我们不再赘述。右边有两个列表控件,上方的名叫“案例/方案”。使用者虽然不能一眼从名称了解该功能的真正用途,但是一定可以想到,该功能提供了一种类似“工程”的应用集合体,该集合体拥有一个或多个访问对象,为某一目的或结果而存在。有开发经验的朋友不妨回忆Visual Studio中的“解决方案资源管理”,每当大家新建一个开发工程,“解决方案资源管理”都会产生相应的文件列表,包括头文件、源文件、资源文件等,它们都是某种程序不可或缺的组成部分。它们不仅仅存在于一个文件列表中,更重要的是,它们彼此之间联系紧密,相辅相成。还有,数据恢复从业者喜欢将一次数据恢复业务称为“数据恢复工程/数据恢复方案”,逆向开发从业者从事的工作命名为“逆向工程/逆向方案”,都是对“工程”或“方案”含义的实践化。所以,“启动中心”所涉及的方案,无外乎是上述含义。下方是一个名为“脚本”的列表控件,使用者看到“脚本”两字往往会产生对学习新语言的恐惧心理,其实不用害怕,它既然叫做“脚本”,其语法入门的难度自然是大大低于C、C++等编译型语言,我们先搁置不谈。
至此,通过“启动中心”的界面,我们已经将其功能大致推测了一遍。要恭喜自己,因为我们已经入门了。至少我们已经对这个软件产生了好感,本节的任务算是圆满完成了。