前端黑话

前言

最近看文档,一直碰到hydrate单词。原本以为这只是装载数据的意思,但是今天查词典——hydrate v.(使)水合——并不是这样。这又是一个黑话。干脆整理一下我所见的来源不一定是前端,但是却经常在前端文档中出现的黑话。

hydrate

根据stackflow大神的解释,hydrate与serialization的部分操作很像,但是概念却大相径庭。serialization是将数据结构或者对象属性转化为文件或者内存buffer的过程,根据serialization生成的文件或者字节流,我们可以在另一个环境重构语义相同的对象或数据结构。而hydrate是向以创建的对象中填充数据,对于熟悉js的人来说,这不是一个陌生的概念。使用hydrate可以优化性能,比如实例化了一个对象后,只向数据库请求将要用的部分field值,那么剩余的值就不会浪费宽带和cpu,性能不就优化了吗?

monkey patch

最早见monkey patch是在python中,后来与js中见到也不奇怪。monkey patch就是为动态语言而生。
monkey patch表现一般是替换一个类的方法,使这个方法增加新的功能或者消除bug。
形式

someObject.foo = function(...arg) {
  return monkeypatch(someObject.foo);
}

例子:为某函数增加log

someObject.foo = function(..arg){
  console.log("someEvidence",someState);
  return someObject.foo(...arg);
}

然而有一句话Monkeypatching never feels right, but we can live with this for now.。如果我们想要包装一串函数在某类的方法中,那么monkeypatch就不合时宜了。因为monkey patch的本质是将新的方法赋值给原方法。当第一个修饰函数还未赋值给原方法时,第二个函数使用的someObject.foo可能是未完成赋值的原方法的,这可能带来麻烦。解决方法之一就是将修饰函数的参数改为被修改的对象,直接在函数体中完成替换。

vanilla JS

vanilla JS指纯原生的js,可以看作pure javascript。

Polyfill

根据web开发中的“黑话”的解释,Polyfill的准确意思为:用于实现浏览器并不支持的原生API的代码。然而babel经常使用polyfill,所以polyfill的使用场景可以更广泛。

Isomorphic & Universal

universal一词来源mjackson的universal js文章,他在培训时发现,很多人不知道Isomorphic的意思,所以想用universal代替Isomorphic。
Isomorphic js和universal js指可以在前端或后端运行的js。虽然jq,angular,ember都有相似的api,但是它们的设计原则,开发用途却各式各样。universal或许可以指代所用可运行的js。
如mjackson所说A good name teaches about purpose and responsibility, so you have to spend some time thinking about it.名字平常看来没有意义,但是真正到表达时,才显得难能可贵。

mixin

高频词,算不上黑话,但是它出现于各个编程环境之中,如ruby,python,js,scss等等。mixin往往与可复用组件挂钩,也常常是框架设计的加益。


16.2.3更新

stub

stub通常指已定义却未实现的函数,像skeleton function。比如wiki上的例子:

var Temperature = ThermometerRead(Outside);
if(Temperature > 40) console.log("It's HOT!");
var ThermometerRead = function(Source insideOrOutside){
  return 28;
}

stub还可以指那些模拟远程端进程的函数,在meteor文档中描述Meteor.Methods时有使用。


16.3.5更新

perf hit

有某种东西让系统性能(performance)下降。

你可能感兴趣的:(前端黑话)