成本

转载

我相信没人愿意看这些细节问题,引用框里的内容直接跳过也并不影响阅读

[quote]
根据早上客服提交了个 BUG,Windows 98 se 的用户用缺省的 IE 5 页面访问一个使用了 XSLT 的页面乱码,即 jscript 里的 new ActiveXObject("MSXML2.FreeThreadedDOMDocument") 失败——我原来用的 Msxml2.DOMDocument.4.0,以为换成这个就可以包治百病了,其实我仅仅是想用 transformNode 方法把 XML 和 XSLT 合一下,Google 版本问题,找到一个 MS 官方页面里有个非常有价值的[url=http://support.microsoft.com/kb/278636]XML Versions Shipped with Products[/url],另外还有个[url=http://support.microsoft.com/kb/269238]Version list for the Microsoft XML parser[/url]。

简单的说,w98se 的默认 IE 的版本是 5.0b,w2k 则是 5.01,它们俩内置的 MSXML 版本分别是 2.0b 和 2.5a,也就是说我应该用的 ProgID 是 MSXML.FreeThreadedDOMDocument,不过估计是 IE 5 Beta 本身的 BUG,使用这个 parser 后解析错误(这很奇怪,XP + IE 6 正常,按理说控件版本应该和浏览器版本不相干的),transformNode 后返回的还是 XSLT 本身,无奈只有做个判断,如果是 win98 下的 IE 5 就让用户再去[url=http://msdn.microsoft.com/library/en-us/xmlsdk/html/303f788a-b58a-497c-9e15-ab85294cd882.asp]装个 MSXML 4[/url](大约 640KB 的 ActiveX)
[/quote]

这个 IE 5.0b 兼容问题从发现到解决问题花费了 5 个小时的时间,但这是值得的。根据半年来的统计 Window 98 的访问者依然占了 20% 以上(当我知道这个数字时着实吃了一惊),因此无论是做网站的我还是做客户端的小孙,谁也不敢怠慢了 win98 用户,因为他们人多。

[hr]

第一次听说 XML 这个词可能是 99 年秋的《计算机世界》,大约是 2001 年在 CSDN 问关于 XML 的问题时了解这东西的人实在寥寥无几(我当时几乎所有的问题都是逆天强人、当年 MVP 之一“无为”解答的,不过英文 id 记不住了),IE 5 应该是 99 年上半年发布的吧?那时候微软已经完成了 MSXML parser 的 2.0。

在 Web 的很多地方,我觉得只有 XSLT 才是唯一正确合理的解决方法,也许可以用 js 写个 parser,但所耗时间和维护修改难度都要大的多。而这些新东西要想能普及使用,微软 IE 提前 6 年行动,才基本铺平了道路。

[hr]

几天前,群里有一次关于网页标准化的讨论,我的观点是得不偿失,起码就现在这个正在做的网站来说,非 IE 用户的数量真是少的可怜:Firefox 占 0.05%,所占比率是 IE [b]4[/b] 的 2 倍。所以对于 Firefox 的兼容的任务要排的非常靠后。或者现实点说,只有用 Firefox 的访问者所带来的利益大于程序员的工资的时候,才有必要做这样的事情。

我只认为现阶段只有 IE 优化(或者说 CSS 优化)和 SEO 是有必要的。

CSS 的大量使用可以简化网页结构、减少页面加载时间,主要是出于维护的角度考虑的。而 SEO,把一些替代标签改成正确的(例如 <h1>、<li> 这些)本来也是举手之劳。而针对各种版本浏览器做各式复杂的判断,会成倍的增加劳动量,在我看来有这种必要的网站全国也数不出几个。

[hr]

程序要考虑的因素是很多,现在在我看来时间是第一位的,那本《心理学》里有个例子是一个炼钢厂、炼油厂或者是别的什么厂,急需程序控制来节约成本,大约每个月能节约一百万,因此程序就是晚一天出来也是担当不起的。方法、框架、流程,这些都不重要了。迅速估算成本、评价每项工作内容的重要程度,投以相应的时间精力,可以用最野蛮的方法去解决,只要相对于该项工作来说是恰当的。

没有十全十美的程序,因为没必要