软件设计中的沟通、模式与可维护性
1. 沟通的本质与软件的类比
在交流中,我们常常忽略了一个重要的事实:语言只是沟通的“令牌”。就像几年前参加的一门关于语言和信息传递的课程中提到的,两个人交谈时,话语本身并非沟通,而是沟通意义的代表。在任何形式的交流里,都存在这样的“令牌”,比如正在阅读的文字,就是作者与读者之间沟通的“令牌”。
在课程中还发生了一个有趣的讨论。一位女士因母亲生日买礼物迟到,她认为礼物能让母亲知道她的爱,但老师却坚持认为礼物只是爱的“令牌”,并非爱本身。老师通过假设自己送礼物的方式,让女士明白了这一点。
与此同时,联想到当时正在研究的新通信软件,意识到计算机软件也如同礼物一样,是程序员意图的“令牌”。当时正在为个人电脑开发软件,理想状态是能实现“盒子里的我”,即用户购买电脑和软件后,就如同我在里面按需服务。但这显然不现实,于是退而求其次,希望编写能像人一样与用户交流的软件。
大多数计算机程序在处理问题时,和人的回答方式不同。例如:
- 对于数字排序问题,如对“10”和“9”排序。
- 判断数字是否相等,如“9”和“09”。
- 判断单词是否相同,如“happy”和“Happy”。
计算机软件往往基于自身规则编写,而非用户的规则和期望。比如在使用软件时,在姓名栏输入“Alan”,误按空格键后,软件很难判断是想将名字改为“lan”,还是误操作。在文字处理软件中,人们习惯在纸上书写时墨水自然保留,而计算机软件却要求用户理解保存操作,这与人们的习惯不符。
2. 软件模式的力量
在软件设计中,存在着各种模式,这些模式能帮助我们更好地应对不同的问题。
|