|
第四章:静态网站的发展
|

为什么那些“所见即所得”的超文本编辑器并没有使得每个人都成为一个能干的网络出版者?因为他们帮错了忙。在1994年,网络发展的早期,一个会使用Unix的大学生(即便是语言专业的,根本没有学过程序设计)可以在30分钟之内能够为自己编写一个网页。但是台式机的用户却做不到。软件设计师们想当然的认为台式机用户的问题在于:超文本语言太难学了,于是他们开始着手解决。
实际上,所谓超文本就是,用“”和“”标记在你想用斜体显示的句子的两侧。在整个70年代,世界上的秘书都成功的使用着诸如此类的文字处理器。难道20年后的今天,人们就笨得连“I表示斜体;B表示加粗”都学不会了?
在Alan Cooper的关于用户界面的有趣的书--《面子问题》 (1995;IDG出版)里,他声称用户们根本不了解RAM和硬盘的区别,也不知道何为文件系统和目录层次关系。在人们历经千辛万苦打印完了一封信件,并且要关闭文档,退出文字处理软件的时候,计算机问用户是否要保存所做的改动,这下他们彻底糊涂了。存在哪儿?为什么以前不要存?为什么几乎在所有的程序里都有一个“文件”菜单?是不是不存,文档就会变成老样子了?
建设网站只会更加恶化用户和计算机之间业已存在的问题。不仅仅是打印几份文件就算了,如今他们要把文件组织和链接起来!所以如果给了他们一个“所见即所得”的超文本编辑器,还怕他们不会花上半个小时的时间去折腾一番?
并且这里还有一个统计误差的问题。假设你去机场想统计一下那一天航班的空座率,你决定站在出口处,询问到达的旅客,在他们坐的那一排有多少空的位子。这样的抽样调查会给你的结果带来误差,这是由于坐满员的飞机的乘客较坐不满员的飞机的乘客多,你遇到乘客告诉你他所在那排是满员的乘客的几率比说非满的要大的多。这样一来在飞机满座率60%的时候,你可能错误的统计为80%。
你如果要与从来没有在网络上出版过什么东西的人合作,请记住刚才说的统计误差。在1992年的时候,NeXT的用户不仅可以浏览超文本文档,在不见超文本标记的情况下进行编辑,而且还可以只通过一个按纽把编辑好的文件发送到服务器。在1995年的上半年,人们可以通过一个可运行在Mac或是PC上的NaviPress (后来被AOL收购,并改名为“AOLpress”,可以在www.aolpress.com免费下载)来实现上述的功能。如果一个人真的想向别人表达些什么,他大可以轻而易举的在计算机文件系统之下组织几个文档,自己动手建立自己的个人网站,可是为什么到了1998年他还没有哪?根据统计误差的原理,在1998年还能遇到第一次构筑个人网站的人,这就表明此人要么没有什么要说的,要么就是计算机盲。换句话说,你遇上大麻烦了。
接下来要叙述的一套静态网站 开发方案,会指出形式化思维的重要性,和让开发小组成员都能掌握一致的基本功。这套方案大致如下:
在纸上勾画结构框图的目的是,为了想一切有关人员说明建立网站的最终目的。预期扩大的网站部分要给找出来,并考虑分别给予独立的子目录。必须记住,一旦你的网站开始向公众开放,所有的目录名称不能再更改,否则会弄断访客或其他网站记下的通向该网站的链接。下面是我在1994年所建立的一个网站的结构框图:
接下来你要决定这个网站是要否以时间为顺序组织内容。换句话说,如果你定了一本网络烹调杂志,你是希望按“1998年11月期”,“1998年12月期”一期一期的浏览,还是希望按“甜点”,“主菜”这样分开来看?如果这个网站是一个普通出版物的镜像网站的话,采取以时间顺序的结构会更容易让读者接受。否则,按主题来组织或许会比较好。不管选择哪一个,要能画出一个网站的结构框图,就先要做好这个决定。 在画网站结构框图的时候,你亦必须考虑究竟网站的访客都是暂留一下,像看海报一般,看过一次就不会重访的,还是要吸引访客多次重访,甚至要放在收藏栏里的网站。大多数的图象设计师倾向于制作“海报”型网站--放入的网页都是写一点介绍什么的文字和一些花哨的图片,和GeoCities内众多用户用来欢迎访客的主页不无两样。这种网站仿佛都把访客看成只来一次,过后不来的过客。程序员的想法就不同了,他们都希望访客会再次光临,会把网址放在收藏栏里。比如http://www.yahoo.com。 虽然第一页看上去很简单,但是实际上它是一个包含了上百个功能链接的主选单。这里没有引子文字和链接。没有自己重新定义的链接颜色。没把页面分成框架。Yahoo的设计者们假设访问者以前一定来过,一定知道Yahoo是做什么的,来的目的很明确,并且不希望把时间花在使用说明上。如果你真的是不太了解Yahoo,在这个页面的最底部,还有一个很小的“公司简介”的链接。
我想除非你要用一大笔广告预算来宣传一件一次性的事件,“海报”型网站可能还有点意义。但是,我始终认为“海报”型网站都是一种失误。其实,现在的网民们都学懂了一看到“海报”型网站就迅速按下返回键。生命短暂,哪里能花在看人家的广告上!如果要保证访问的人数,你的网站结构就要能向用户发出希望他们经常来使用网站内提供的服务。
商讨网站结构框图,是找出谁还没有摆脱“网站不过是满载海报的光盘”这想法的最佳方法。提出要编一连串的欢迎网页的那位仁兄请起来。提出要放个用户指南的这位更不用多说了。
且慢,让我们再回过头来想想CD-ROM,那里些都是客户们花了大钱买的东西啊。他们得到商店里去,掏出50块钱,再把CD-ROM带回家,然后再把自己计算机光盘驱动器里原有的CD-ROM退出来。终于,用户花在多媒体设备上的投资得到了回报--CD-ROM上往往有两分钟的介绍,用户们可以高兴的从介绍里获知,自己的购买决定是多么的正确。并且,为了看到这张CD-ROM中的介绍,用户们常常很愿意去到控制面板里修改显示器设置以及其他大大小小的系统设定。
那连串的欢迎网页的问题是什么呢?想一想,你这个网站真的能在众多的网站中出类拔萃?访客真的愿意献上几分钟来看那连串欢迎页,才终于得见深埋在网站中的宝贝?
提出一个要放个用户指南的家伙更叫人沮丧。即使他的提议只是那么一句“这网站最适合用Netscape
4.0观看”,都叫人怀疑他究竟思考过没有? 如今人们购买一个500美圆的打印机都不会读使用指南,可是为什么一个小小网站的出版者凭什么仍然认为用户们会阅读他的使用指南,并且还会退出去重新按照指南上的要求来更改软件设置。
如果你是参与计划的网络老手,这时候你就有必要提醒组内的新手们,用户没有在你们的网站上花了一分钱,他们并没有足够的耐心,并且连最有江湖地位的AltaVista也不会放一连串的欢迎网页来接待访客。
说到AltaVista,也是适当时候看看给用户导航的策略是否很完善。如果用户从搜索引擎中得到了很多的结果,然后随机的进入了网站内的某个页面,他能顺利的找到网站的主页面吗?
来点实际的。如果我要从草图开始建立http://www.photo.net/photo/,网站的结构框图应该是什么样子的呢?
photo.net的结构框图
基本原则:
- 这是一个“惯看型”网站,而不是“海报型”的。所以主页面尽可能多的提供通向版块和服务的链接。
- photo.net并不是按时间顺序来组织的,所以找不到诸如“一月号”的小标记。
目录:
- /doc/ 用以存放服务器的参考文档,例如这个目录说明
- /pcdNNNN/ 用以存放来自与编号为NNNN的Kodak PhotoCD上的图象文件(随着网站的发展,将会有几百个这样的目录)。所有扩展名为html的文件都记载了本目录里与图片内容有关的信息,以便在不同的场合调用。
- /tutorial/ 存有一本学习摄影术的教材,有自己的索引页面,每章也都有返回索引页面的链接。
- /travel/ 存放有好拍照的地点的旅游指南。关于同一地区的文字资料和图片资料,比如地图,将存放在同一个子目录中。
- /technique/ 用来存放“怎么做”文档,比如“怎样拍摄行星运动轨迹”,或是“怎样拍摄微观世界”等等。需要采用辅助图象来加以阐述的,图象文件将被存放在子目录中。
- /nikon/,/canon/,等等,存放有关于不同厂家相机的评论
- /equipment/ 存放有关于各种相机通用配件的评论,比如相机背包和三角架等
- /digital/ 存放有关数字图象,彩色打印机和扫描仪等等的文章
- /workshops/ 存放讨论摄影室的文章
- /studio/ 用以存放与影楼摄影有关的文章,特别是灯光的使用
- /about/ 用以存放网站声明,和向用户介绍网站编辑、管理、以及运作情况的文档。
- /optics/ 存放讨论镜头选择的文章
- /career/ 存放有职业摄影和商业摄影的文章
- /legal/ 存放有有关版权和是否有必要从模特或是所有者那里获得许可权的资料
- /contributors/**username**/ 专门为普通用户建立的独立的上载文件目录。目录中的index.html包括个人简历和通向用户私人网页的链接。
- /new.html 存放有按逆时间顺序排列的新内容的简介。
文件命名/组织的几条惯例:
- 相关的图片和文字存放在同一个目录之中,比如, foo-f01.gif就是foo.html所要引用的第一张图片
- 音频文件以RealAudio格式,与引用该文件的超文本文件保留在同一个目录之中。但是如果某音频文件和某特定的存放于PhotoCD之上的图片有关,那么就存放在pcdNNNN目录之中。
协作链接:
- 问与答论坛是由www.greenspun.com提供的服务
- 每篇文章的底部的评论,也是由www.greenspun.com提供服务的
- 每篇文章的底部的链接,也还是由www.greenspun.com提供服务的
- www.greenspun.com同样提供邮件列表的服务
注意:我希望我所说的就是photo.net的实际情况。但这网站的建立,是我四年来跌跌撞撞搞起来的,我常常要工作到凌晨3点,连保持清醒都不容易,要搞个清清楚楚的个人网站根本不可能。其实photo.net可能是一团糟……

只要看看有多少个html文件被编辑好,你就可以了解到每个人的工作进度。如果你自己不是一个程序员,最好马上雇一个。当有一大批的网页的内容格式都一样的时候,最安全有效的办法就是让作者把所有的内容都存放在同一个文件,或是数据库之中,再请程序员(1)编写一个Perl程序来自动产生所需要的.html文件,或是(2)编写CGI或API脚本来动态实时的产生.html文件。
假设那些组织内容的人对HTML语言一窍不通,这就必须有个人慢慢的把所有的文档转变成为HTML格式,添加超链接,页面所有者资料,题目和标题等等。在完成了这些工作以后,每个人都可以感到这个呼之欲出的网站的勃勃生机。在还没有动员投资入这个网站结构框图之前,我们还可以大声叫喊,欢呼一番。
这也是添加协作服务的时候。既然你决定放弃采用如第三章所述的全面由数据库支援的方案,你只可征用一些别人服务器上运行的程序。http://www.photo.net/philg/services.html内由我免费提供的一整套协作服务。
你是否打算允许读者可以就网站的内容进行讨论?用一个大论坛讨论整个网站?还是要分成多个子论坛?是否还需要建立一个评论服务器来收集用户们关于每个网页的评论?是否邀请用户加入邮件列表?假若你发现原来什么协作服务你都想放入网站之内,那么请重新考虑你放弃采用数据库支援网站方案这个决定。
这一步其实是并非必要的。有很多受欢迎的网站实际上就只有文字, 比如Yahoo。而且如果图象设计很糟糕的话,还不如没有。也没有人会嘲笑纯文字的网站说:“这些傻家伙,居然花了5万美圆建立了一个没有内容的网站。”
一个严谨的,富有创造性的图象设计师,可以把网站的页面组织的整洁,美观。我们最终的目标是要能够通过增加的图片给予用户一些其他的信息,当然这将不可避免的会使页面的下载速度变慢。图片应该有助于用户理解网站的内容。如果附加的装饰图片并没有给用户带来更多的信息,那么用户们多付出的时间就不值得。(请见 Edward Tufte写的第二和第三本书, 《信息的视像化》 (1990),和《可视解释:图象和数量,证据和描述》 (1997),那里有如何有效的使用图片的例子。)
怎样同你的图片设计师合作呢?最好是首先要决定你能应付用户什么样的要求。如果你请不起人专门来负责回复用户发来的关于浏览器兼容性的询问的电子邮件,那么即便是有很多程序是免费的,你的网站还是不要采用JavaScript或是Java。我会向我的图象设计师提出一下的要求:
| 标记。 浏览器只会在这个表格全部下载完毕之后才会显示出来。如果这张页面的结果是由数条关系型数据库查询语句产生的话,那么用户们在所有的数据查询并且传输完毕之前,将会什么也看不到。 |
但不要误解我的意思,我并不是说不要给图象设计师任何创作的余地。相反,雇佣他们的原因就是要他们在给定要求下,最大限度的发挥创造力去改善用户使用界面。举例来说,假设你想让网站上的新照片和旧的区分开来。你也许会这样要求图象设计师:“在旧照片的周围加上一个有着金色叶子图案的像框。”而我则会给图象设计师更大的创作余地:“采用图形的或是文字的方式,让用户意识到正在浏览的照片是旧的,而不是新的。”

如果网站有着数据库的支持,这个问题就简单了。可以籍设定的管理网页,让作者们自行修改文字材料。然后通过计算机程序组合成完整的HTML页面。
对于一个静态的网站, 你却必须为作者提供一些能够编辑和利用http put 来上载简单的网页的工具,比如AOLpress,Adobe Site Mill, Claris Home Page, Microsoft Front Page,或者Netscape 4.0。或者让作者们花上几个小时去学足够的编辑HTML的技巧,然后直接编辑全部网页。
直到1998八月为止,大多数的桌面HTML开发工具都不能令人满意,HTML文档里总堆满了莫名其妙的垃圾(比如,在原本空白的地方总是出现“ ”),还不如不用的好。这些垃圾甚至使得网络专家也束手无策。要想把静态文件里的内容整理到关系型数据库里,也因此变得困难重重。其实通过网络直接改动HTML源码是很简单的。只要编辑人员在Netscape Composer的设置里,设定一个标准文本编辑器,作为缺省HTML编辑器。在需要更新的时候,用Netscape 4.0来进行HTTP GET获取网页。当他们选择“文件”菜单里的“编辑网页”的时候,Netscape将会开启事先设定了的文本编辑器,如写字板、SimpleText、Emacs、等等。编辑结束以后,再利用Netscape 4.0的HTTP PUT或通过FTP传回文档就成了。你可以在网站加上一个小小的说明--“本网站由写字板编辑而成” 。

要避免丢失更新文件,有赖对版本及源码的有效控制。下面的情况就可能导致丢失更新文件:
在大公司里工作的程序员和负责技术文献的编辑们,对共同协作文件时发生,丢失更新文件的情况都十分熟悉。但对一般从事网络出版的人来说,版本及源码控制的问题却可能是头一回遇到。你必须教会你的投稿者如何通过HTTP PUT和FTP修改网站的文档,但是如果他们不是随下载随修改,或是修改之后并没有马上存储回网站的话,那么他们很有可能覆盖了别人的编辑成果。
如果你的网站是完全建立在一个关系型数据库之上的,那么增加一个版本控制来监视文档编辑的状态就容易。对文档的版本做一个跟踪记录也比较简单。反之如果你的所有内容都只存储在一般操作系统内,而一般的用户都是通过FTP来更新内容,版本控制就变得困难起来。当你的用户在对某文档进行修改的时候,你不得不让他通过电子邮件或是电话来通知其他的人。有趣的是,如果人们使用是有上十年历史的免费文本编辑软件,比如Unix操作系统上的Emacs,这反而不成问题。不用做任何的设置,Emacs会自动的告诉用户“你打算编辑的软件已经被别人改动过,你确定是要在旧的版本上进行新的编辑?”Unix 系统还可装上一个到处通行,免费又源码开放的版本控制工具,用户下载文档时都会给登记下来,文档会给锁定(要是用户忘了回载文档,有授权的用户可以取消文档的锁定,并同时取消那个健忘用户的回载文档权。)现在我们唯一的指望是,到了2000年,“强大”的商业网络开发工具能达到1980年时免费软件的水平。

如果你是负责项目项目小组内最懂计算机技术的人,我提议你找个适当时机站出来,向全组人指出计算机这东西其实如何笨拙,和打从开头就实行形式思维所能带来的长远利益。举例来说,我曾经帮我的几个朋友为一家服装厂建立一个服装检索网站。服装厂的员工们对他们几年前采用的,全计算机化的设计和分类出版系统,感到十分的自豪。因此,所有款式的服装和设计图纸都是以数字的格式存储的。负责网上商店的经理认为有了这些计算机格式的素材,建立一个网站不是什么困难的事情。可惜的是,虽然每件产品都有数字编号,他们却不用诸如“97-04561.tif”一类规范式的名称来命名对应产品的图象文件,却不无随意的给图象文件取个诸如“新春夹克.tif”之类的名称。如此以来,根本无法写个程式给每个产品自动捡出其图象。要能匹配起来,就必要徒手逐个图象检视、分类、重新命名,势必要耗费一段很长的时间。

我总喜欢把我的网站看为一个成功的项目。因为我不仅获得了很高的访问量,而且得到了用户的肯定:
“在你的网站上,我度过了很愉快的36个小时...”
“刚才我花了两个半小时和你在一起...”
“上帝啊,我居然花了3个小时阅读你网站上的内容...”
换个角度想一想,这些全部都是肯定的评价吗?假如这些用户造访我的网站只是为了寻找我的电子邮件地址呢?我仍会为他们在我的网站上平均逗留14个小时而感到骄傲吗?也许我更应该来一个详细的可用性评估。
要做一个妥善的可用性评估,你要找个能模仿家居,教室及办公室的专用实验场地,让受测试的实验对象坐到不同环境内的计算机前面,给他们看你的网站,指派一点工作,或者一些问题,要他们籍使用网站去处理。网站的工程师都站到一块单向透明的玻璃后面,仔细观察对象的操作情况。当然也要鼓励受测试的实验对象都大声说出他们脑袋里的考虑,特别是面对网页内的链接,正想着是否合用时的想法。
最容易建起来测试的网站是商业网站。每个设计者的目标都是一样的:让人们更迅速更方便的购物。进行可用性评估的具体步骤,可以是指派一位用户进入www.amazon.com并完成下列任务:
但是当你要连到的是某个公司的网站的时候,他们目的往往就不如此明确。是想帮助目前的用户更好的使用你的产品?还是希望用户下载并尝试使用?抑或是要吸引用户买些什么?试试在www.oracle.com 上做一个可用性评估,尝试在网站上找以下问题的答案:
我想为我那运行在SPARC/Solaris操作系统的网站增加一套Oracle数据库管理系统。价格是多少?如何下载一套测试版呢? 但是当你测试的是一个个人网站的时候,目标就变得更模糊了。我已经忘记了因为什么而决定建立http://www.photo.net/philg/。假设当时我进行了可用性测试,指派测试对象从我的网站主页出发:确定在《和Samantha一起旅行》中Samantha的身份 When you are testing a personal site, the goals are much less clear. I can't really remember why I set up Suppose I did a usability test and asked subjects to start at my home page and
结果可能会是,有人前来造访的目的本来是想搞清楚我的年龄和通讯地址,但是却找不到,心烦意乱的读完《和Samantha一起旅行》之后,就放弃原来的打算。或者有人想看看我的那个Bill Gates个人财富统计钟,不幸的是他也没有找到,却读了我1994年写的,极其晦涩以致于只有计算机程序员才能看的明白的,关于建立网页标准的建议。亦或有人本来时打算看《和Samantha一起旅行》,却被photo.net的网上社区所吸引。
是否需要就以上出现的情况对我的网站进行调整?不一定。我建网站的目的就是为了和别人分享我的文章、照片、还有程序。 如果人们因为被我的思想或是照片所吸引,没有达到原先的目的而感到沮丧的话,我觉得自己没有什么好说抱歉的。
在“赚钱”一章里,我说过我的个人网站每年几乎要花费我100万美圆。也许每年我在掏钱的时候,应该好好的问问自己:“究竟要这个网站做什么?”和“目前的这个网站是否有效的实现了这个目标?”
这里是你应该从本章里学到的内容:
定期的花上一天的时间,仔细思考一些基本的问题,比如网站的目的是什么,目前是否实现了那些目标等等。