略谈这几年的“筐技术”

筐技术是我杜撰的一个名词,使用这个名词特指那些众说纷纭的技术名词。这一方面是由于技术发展太快,并非每种新技术都可以使用简单明白的方式表达,此时使用一个最接近的名词有助于双方的沟通,另一方面由于每位技术人员的知识范围有一定的局限性,也很难在使用每一个名词之前都精确的理解名词的定义。
这些词都是开发专用的技术名词,都有相应的定义,但是随着发展,这些词已超过原来的含义,将相关的技术内容也都包含了进来。简言之:这些词都是筐,啥都能往里面装。
对于这个现象的关注已久,为了便于沟通,所以杜撰了“筐技术”这样一个名词,引发我今天整理这篇文章的另一个原因是关于DiP(Dependency Inversion Principle,依赖倒置原则)的讨论,我想可以把这几年遇到的“筐技术”名词整理一下了。


先声明一下,这个文章本来就是在讨论口水词的,一大堆口水词放在一起免不了更多的口水,本文无意于争论这些口水词,而只是讨论这种现象。


美国著名物理学家R. P. Feynman指出:“

要给一个概念下一个非常严格的定义往往是不值得的。”>


先说非技术的“筐概念”

非技术领域的“筐概念”由于没有技术那么严格的定义,所以“筐概念”非常多。也就是随着使用者自己的意愿随意填充含义。比如说互联网精神就是一个典型的筐概念。还有大筐套小筐的情况,比如说互联网精神这个大筐中常常套个去中心化的小筐。认为一切影响互联的因素都应当去掉,那么互联总要说一样的话吧,也就是技术上遵循相同的协议,协议也要去掉么。


再说一个设计方面的“筐概念”

我无意于评价见仁见智的”极简“这个词。但是也要明确的说明”极简“只是一种形式,本意是避免干扰,提升用户的操作效率。因此,如果一个应用程序可以用智能的方式提升用户操作效率,又何须用剪裁功能的方式呢?


NoSQL

这个词更多含义是非关系型DBMS,不过由于很多程序员长期受到RDBMS的SQL折磨,因此NoSQL突然就广泛传播并使用了。这个词可能对于中国程序员来说没有那么明显的感觉,不过如果经常看到美帝的游行会发现,反对什么就在什么前面加上一个No,例如反对战争的口号就是No War。


DIV+CSS

本来是指用DIV和CSS结合的特性将HTML与CSS分离,后来演变成消除TABLE标签的战争。
之后随着HTML5的发布融入到了HTML5中。


AJAX

本意是(Asynchronous JavaScript And XML),异步JavaScript+XML技术,后来泛指一切使用JavaScript控制页面的技术。然后会特指包含异步JavaScript+XML技术的JavaScript库,此时会出现一个有趣的现象,即使某个功能不需要异步JavaScript+XML,因为用到了包含这个的JavaScript库,也会被称为AJAX,例如浮动层效果。
之后随着HTML5的发布融入到了HTML5中。


HTML5

本意是指HTML5的定义,或者说是HTML5相对于HTML4.01的新增功能集,从这个角度来说,狭义的可以认为是video+audio+canvas。
如果扩大的话,有把CSS3也算含进去了,再扩大把JavaScript对HTML5和CSS3的操作都包含进去了。
还有成为移动手机浏览器开发技术代名词的趋势,尽管桌面浏览器也支持HTML5技术。
HTML5出现之后,DIV+CSS和AJAX也改成HTML5了。


OO

面向对象,从技术上包含封装、继承、多态三个方面。
狭义的说,没有封装没有继承就不用谈OO了。
不过很多人仍旧把可以模拟出类似于封装和继承特性的编程语言使用OO来讨论。
还有时会涉及到“某些编程语言比OO更OO”这样的话题。


MVC

在桌面领域没有异议,模板-视图-控制器,以前在桌面程序阶段,MVC的含义基本上没有什么异义,但是到了Web开发领域,因为控制器缺少了一个重要的特性:当Model变化时,不能主动向View发消息,导致MVC分层的原则开始混乱。
在Web领域中有着各种自称Web MVC的实现方式,直到最近MVVM的几大框架开始流行,讨论Web框架就不再用MVC衡量了,而是MVVM了。


设计模式

设计模式,那本书的小标题已经说了是“可复用面向对象软件的基础”,不过正如前面所说,OO本身有着各种解读,那么设计模式也就有着各种解读了。


DiP

DiP(Dependency Inversion Principle,依赖倒置原则)目前主要用于针对框架Framework层面的设计,从我的实践来看,DiP是一个比较简洁明了的描述框架的职能,同时可以作为评估一个特性是否符合框架层面设计的一个衡量标准。
DiP主要涉及的框架设计方法是Di,依赖注入(Dependency Injection)和IoC,控制翻转和MVC。
Di、IoC和MVC中会包含大量的设计模式的使用,而设计模式中会包含大量的OO的使用,如前所述,OO、MVC、设计模式都可能有各自的解读,因此DiP就更多的解读方式了。


最后再次声明,这个文章本来就是在讨论口水词的,一大堆口水词放在一起免不了更多的口水,本文无意于争论这些口水词,而只是讨论这种现象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值