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

Published on 2017 - 03 - 03

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元素通常包含四种属性

结构
表现
语义
数据

虽然CSS主要是用来负责表现的,但是HTML还是保留了很多的默认表现,而div是默认表现比较少的元素之一。因为特别适合作为布局元素使用。
所以DIV+CSS的说法完全是一个错误,而这种错误可以这样广泛而肆无忌惮的传播,我们还是有很多需要反思的地方的。

前后端分离

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

混淆了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表达移动站。但是很显然,这是错误的。