北漂IT民工 的博客

那些事后可能会让你感到羞耻的Web词汇?

引子

经常会有这样一种场景,就是在你想表达某种意思时,不能确定这个词是不是能正确的表达,而又没有别的选择时,你使用了这个不确定的词,并且最后发现这个词用错了。这时我们通常会产生一种羞耻感,而这种羞耻感会让你很不舒服。所以在这里我介绍几个比较常见的会被误用的Web词汇,并且通常使用者还比较理直气壮的词汇,避免未来可能的尴尬。

所有认识与知识的传播都是可能出错的,所以出现错误是很正常的。
但是出现错误的时候,我们的态度则是很重要的。
“知错能改,善莫大焉”,每个人都是会出错的,而客观公正的讨论错误,改进错误,则是一个社会进步的必由之路。
本文尽量在客观的态度下,指出错误的原因,并提供正确的参考。当然本文本身可能就是有错误,也欢迎反馈交流。
所以下面我们来一起看看都有那些可能用错或者本身就是错误的词汇。

DIV+CSS

DIV+CSS的错误已经有近十年的历史了,误导了无数开发人员。而错误的根本原因是将不同层次的东西放在一起。正确的说法当然是HTML+CSS。至于究竟谁是始作俑者,目前已经不可考了。

div解决了滥用table的问题

由于之前浏览器并不支持CSS或者CSS的功能很弱,所以通过会使用table进行布局,从而导致了网页非常大,解析速度非常慢。而引入CSS与DIV后,可以让DIV结合CSS承担了原来的table布局的功能,所以div是一个非常重要的元素。

div只是众多HTML元素里的一种

table, li, p等所有的元素通过CSS可以实现跟DIV完全相同的表现效果,所以DIV在表现上并不特殊。
所以div无非是一个语义是结构的元素,跟其它HTML并没有特殊性。并且在使用上DIV也不应该过于占优势。而错误的理解div会导致divitiies,并且曾经有一度出现过认为ul应该取代table的错误风向。

​HTML元素通常包含四种属性

  1. 结构
  2. 表现
  3. 语义
  4. 数据
    虽然CSS主要是用来负责表现的,但是HTML还是保留了很多的默认表现,而div是默认表现比较少的元素之一。因为特别适合作为布局元素使用。

所以DIV+CSS的说法完全是一个错误,而这种错误可以这样广泛而肆无忌惮的传播,我们还是有很多需要反思的地方的。

前后端分离

前后端分离的说法的误导已经有超越DIV+CSS之势。前后端分离的事情本身是不存在的。因为前后端本身就是分离的,所以提前后端分离是没有意义的,那么为什么还会有人提前后端分离呢?
原因有几点:

  1. 混淆了MVC分离与前后端分离
  2. 没有搞清楚前端与后端分别是什么
  3. 他们所认为的前后端分离本身就是错误的
  4. 不知道前后端的代码同构已经是一个趋势

我还为此特地写了几篇文章,将前后端,MVC等各个内容分析了一遍,终于将问题论述清楚。
我估计前后端分离的始作俑者们,他们应该没有仔细分析过,否则不会提出来前后端分离的概念。
因为过程确实也并没有那么容易,所以出现错误也是很正常的。

但是我希望更多的应该看到不是前后端分离是趋势,而是前后端同构是趋势。因为前后端本身就是分离的,所以唯一能变化的是代码。

前后端分离的错误在于代码本身就是要MVC化的,就是要模块化的,这个过程并不是前后端分离的过程。特别是有人认为将模板放在nodejs上是前后端分离,则是完全没有概念的表现。
而目前来讲更多的实际上是前后端共享代码,也就是前后端代码的同构化。

因为相信未来前后端分离的错误提法会不断的减少,直到消失。

Socket

Socket这个单词本身是没有问题的。但是问题在于很多人在使用Socket时想表达tcp的意思。在他们的意识里socket代表的就是TCP,而实际上socket是一种连接方式,并不是协议。因为目前的TCP/IP协议栈是基于Socket这种连接方式的,所以所有的协议都是Socket协议。当然如果有一天真将socket当成是tcp我也不会奇怪,谁叫人多力量大呢?但是错误终归是错误,他无法逃过逻辑的检验。

WAP

WAP一词跟Socket一词差不多。本身这个名词是没有问题的,问题也是在于表达的人想表达的意思上存在错误。
WAP是一种协议,是Wireless Application Protocol的缩写。是一种跟TCP/IP协议栈类似的一个网络协议,他规定了无线网络的数据传输。他所对应的标记语言是WML(Wireless Markup Language)。通常人们将基于WAP,并使用WML的网站称为WAP网站。
WAP 2.0后出现了与HTML合并的趋势,所以WAP 2.0实际上对应的是XHTML 的 MP(Mobile Profile)版本。
基于WAP1.0, 2.0网站称为WAP站是没有任何问题的。
但是后来由于移动OS的发展,以及Web技术放弃了XHTML化,转向了HTML5,并且兴起了多屏合一的理念,要求网页要能响应不同屏的变化。同时由于移动OS与桌面OS在解析能力上的差别越来越小,无线带宽进一步的提升,从2G升级到3G,4G,导致了WML为主导的移动网页发生了巨大的变化。所有的网站从WML全面转向了HTML5。所以现在这个时候WAP站点已经很难找到了。随着Symbian的倒掉,智能OS手机基本上也没有几个浏览器还在支持WML了。所以WAP实际上已经基本消灭了,但是由于很多业务人员对技术不敏感,还在沿用WAP这个术语来表达移动页面,导致了很技术人员跟着使用WAP表达移动站。但是很显然,这是错误的。

结论

最后希望所有人在讨论时不会因为概念不统一而产生交流的错误与障碍。
子曾经曰过:“名不正,则言不顺”。
所以正确的定义名字,也就是正确的定义一个东西在任何时候都是非常重要的,也是社会进步的唯一体现。社会的进步就是各种名词的增加与概念多义性的消除。

如果你认可文章作者的观点,想继续了解作者新的观点以及Web开发相关的知识,欢迎关注微信公共号:frontend-guru
或者扫描下面的图片