Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

不该浪费时间纠结 —— 那些细而虚的坑

  我以前也经常纠结某个实现的性能如何、在某个平台是否有某些优化,或者纠结某个浏览器上存在的边缘 Bug 怎么解决。现在又觉得,纠结这种程度的问题完全就是浪费时间。写代码不能基于浏览器的优化来写,也不能基于 Bug 来写,基于各种非标准技术写的程序早晚都要呵呵掉。
  最典型的纠结点就是 CSS 选择器的性能。我想很多人在写选择器的时候都会有意无意地朝着自己觉得高性能的方式来写。然而到底怎样才是高性能呢?如果看规范,根本就没有性能这么一回事。性能数据都是通过在各个平台各个浏览器上做测试得到的。而且所以性能测试根本就是当下的性能测试,在浏览器升级速度如此迅速的今天,很难确定某个东西的性能就是快。也许过段时间浏览器换了一种实现方式结果就完全不同了。
  我以前也经常对各种东西做性能测试,现在翻翻以前的文章好像这些测试就变得完全没用了。特别是一些新特性的实现,连实现的实现都是不稳定的,那还去纠结性能是扯什么蛋。所以 ES6 相关的东西我至今没有考虑过性能。用着爽就好,实在有高性能需求的话就用相对稳定的 ES5 重写一波。
  扯完性能,然后就是浏览器 Bug 问题。几乎所有实现只要考虑到临界条件下,所有浏览器的实现都会有差异。有时候这些差异并不是 Bug,只是规范中未定义的行为而已。Bug 最多的方面应该是 CSS 了吧?因为 CSS 规范实在太复杂了,实现总是无法考虑周全,就会出现各种 Bug。像 webkit 那样的家伙有时候甚至做几波性能优化又造出一堆 Bug。对于这些临界的 Bug,抱怨也没用,扯蛋也没用。如果业务上需要就绕过去,如果真对这个 Bug 有兴趣就给浏览器贡献代码把它修好。
  但并不是所有 Bug 都能修。之前 v8 上的好几个 Bug 都是优化带出来的,把它们修复的代价就是性能降低。所以有时候那些正常使用踩不到坑的 Bug 就随它去吧,引擎级别的东西性能还是比较总要的。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^