搜索

2011年1月4日星期二

技术中立性原则

一个良好的设计应该尽可能避免技术依赖性,因为技术本身是快速变化的,而产品应该是经久耐用的。
  1. http://www.example.com/article-title
  2. http://www.example.com/article-title.html
  3. http://www.example.com/article-title.php
1比2好的原因在于,前一个不依赖 HTML 技术(即便现在看起来 HTML 的地位牢不可破),至于说3,依赖某一种编程语言(PHP)则更不靠谱,语言本身的变化是很快的,可能有一天你会放弃 PHP。

当然,有人会说可以等到变更的时候,再做301跳转……当然,这是可以的,问题是为什么一开始就不做好呢?1比2、3的方案增加多少工作量吗?而且外部引用会是类似 .html .php 这样的链接引用也会非常多,用户越多,残留的旧链接就越多……

所谓良好的设计就是可以容纳发展的框架,很多人的所谓省事儿,实际上是把工作留给未来。

另一个例子通知搜索引擎自己的网站是否需要 www 前缀。

我看到很多有经验的技术人员会说,在谷歌管理员工具中设置某个选项,我的确也找到了那个选项,不过我要提一个问题:是否在谷歌管理员工具中进行了正确的设置,这个问题就解决了?

啊?难道不是吗?

这个世界有很多搜索引擎,谷歌目前似乎是最好的,但是显然情况是在不断发生变化的,未来谁会占据优势那是未知的,更重要的是不是每个用户都是谷歌用户,不是吗?

目前著名的搜索引擎:
  • Yahoo
  • Ask
  • Bing
  • Blekko
  • Yebol
  • Kosmix
  • 更多
还有更多不知名的未知搜索引擎。

我们实际上生活在一个多元化的世界,搜索引擎的数量比你想象的多得多。

那么在谷歌工具中进行设置意味着什么呢?——单独给谷歌一个通知:收录 www 或相反。那么其它搜索引擎呢?对它们来说这个问题依旧是未知的。其它的外部程序引用你的内容的时候,这个问题也是未知的。

你打算挨个通知数百个甚至数千个搜索引擎,或者未来的未知新应用吗?这可能吗?

相反,在跳转规则中利用 HTTP 协议中的301代码,则统一、一致的通知所有“应用”,注意“应用”一词,不只是搜索引擎,而是抽象的一切已知和未来可能出现的对你资源的“利用”,你的网址应该是什么样的。

你可能会说,有些搜索引擎,或者什么应用,因为糟糕的编码、设计……它们根本不理会301代码,或者……——注意,在这个问题上,如果存在这样的情况,1、那么犯错误的不是你,而是别人,你不应该用别人的错误,来引导自己采用错误的方案;2、如果那个该死的有问题的应用对你来说很重要,联系它的管理员,看它提供什么样的方案,那么依照这个特殊方案对它做个案处理(注意,标准的301依然是需要提供的,这个特殊方案是做为额外的补丁,针对特定的问题)。

总结一下,在跳转问题上:
  1. 遵循标准的 HTTP 协议,提供正确的跳转代码
  2. 针对有问题的应用,提供相应的针对性方案
这样,无论对于已知、未知还是别人的错误,你都可以应对自如了。

其实这样的原则可以推而广之,记住虽然我们不可避免的要把自己绑定在某个特定技术上,但是你可以做得更好,让这样的依赖减少一些。

不依赖任何特定技术,是设计师永恒的追求。

没有评论:

发表评论