Web 技术研究所

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

关于前缀命名方式的碎碎念

  前缀是解决冲突的一件神器,各种语言,各种场合都会用到。对于一些新特性,各浏览器也会加自己的前缀,目的也至少防止冲突。HTML5 对自定义标签名中必须使用「-」这条规定也是想表达自定义标签必须有前缀才不会和目前现有或将来可能有的 HTML 标签冲突。

函数式编程的命名规则

  面向对象的编程可以封装,可以继承,可以有命名空间。这时也许真看不出前缀的必要性,因为那些确实也是一套有效的冲突解决方案。但是函数式编程呢?或者不该说函数式编程,这个概念更广,表示所有直接使用全局作用域,并且没有命名空间的东西。CSS 就是典型。
  前缀的目的就是在命名上模拟一套命名空间的概念来解决冲突问题。我好像说得有点本末倒置了,实际上历史的发展是先有前缀命名,后来才发明了命名空间,面向对象就是如此发展出来的。所以前缀命名本身就是一种原始概念。在函数式的环境中它确实可以解决问题。

不加前缀的情况

  Bootstrap 之类的东西就没有前缀,他们不加前缀想表达的是自己不会或不该与别的东西冲突。如果一个框架足够搞定所有事情,使用者就不会再引入同类产品弥补,就不容易出现冲突问题。

怎么选择?

  我很喜欢在CSS中使用前缀式的命名,这样可以对我的规则更有效地分类,而且不容易产生冲突。代价是名称普遍变长了。当然,也不是说这就是最好的方法。很多人看不惯太长的命名,不使用这种命名方式也不存在任何问题。
  反正没有什么解决不了的问题,只是根据自己的价值观来判断取舍。每个人肯定都希望做到最好,只是衡量事物价值的标准不同导致了选择的差异。两种选择不是一粒芝麻和一个西瓜的关系,要是那么容易判断的东西世间就不会有这么多纠结。我觉得这应该是麦当劳和肯德基的关系,我就比较喜欢肯德基,但是我确实没法说出它哪里比麦当劳好,只是个人喜好问题。

网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^