前端黑話

前言

最近看文檔,一直碰到hydrate單詞。原本以為這只是裝載數(shù)據(jù)的意思,但是今天查詞典——<code>hydrate v.(使)水合</code>——并不是這樣。這又是一個黑話。干脆整理一下我所見的來源不一定是前端,但是卻經(jīng)常在前端文檔中出現(xiàn)的黑話。

hydrate

根據(jù)stackflow大神的解釋,hydrate與serialization的部分操作很像,但是概念卻大相徑庭。serialization是將數(shù)據(jù)結(jié)構(gòu)或者對象屬性轉(zhuǎn)化為文件或者內(nèi)存buffer的過程,根據(jù)serialization生成的文件或者字節(jié)流,我們可以在另一個環(huán)境重構(gòu)語義相同的對象或數(shù)據(jù)結(jié)構(gòu)。而hydrate是向以創(chuàng)建的對象中填充數(shù)據(jù),對于熟悉js的人來說,這不是一個陌生的概念。使用hydrate可以優(yōu)化性能,比如實例化了一個對象后,只向數(shù)據(jù)庫請求將要用的部分field值,那么剩余的值就不會浪費寬帶和cpu,性能不就優(yōu)化了嗎?

monkey patch

最早見monkey patch是在python中,后來與js中見到也不奇怪。monkey patch就是為動態(tài)語言而生。
monkey patch表現(xiàn)一般是替換一個類的方法,使這個方法增加新的功能或者消除bug。
形式

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

例子:為某函數(shù)增加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.。如果我們想要包裝一串函數(shù)在某類的方法中,那么monkeypatch就不合時宜了。因為monkey patch的本質(zhì)是將新的方法賦值給原方法。當?shù)谝粋€修飾函數(shù)還未賦值給原方法時,第二個函數(shù)使用的<code>someObject.foo</code>可能是未完成賦值的原方法的,這可能帶來麻煩。解決方法之一就是將修飾函數(shù)的參數(shù)改為被修改的對象,直接在函數(shù)體中完成替換。

vanilla JS

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

Polyfill

根據(jù)web開發(fā)中的“黑話”的解釋,Polyfill的準確意思為:用于實現(xiàn)瀏覽器并不支持的原生API的代碼。然而babel經(jīng)常使用polyfill,所以polyfill的使用場景可以更廣泛。

Isomorphic & Universal

universal一詞來源mjackson的universal js文章,他在培訓時發(fā)現(xiàn),很多人不知道Isomorphic的意思,所以想用universal代替Isomorphic。
Isomorphic js和universal js指可以在前端或后端運行的js。雖然jq,angular,ember都有相似的api,但是它們的設(shè)計原則,開發(fā)用途卻各式各樣。universal或許可以指代所用可運行的js。
如mjackson所說A good name teaches about purpose and responsibility, so you have to spend some time thinking about it.名字平??磥頉]有意義,但是真正到表達時,才顯得難能可貴。

mixin

高頻詞,算不上黑話,但是它出現(xiàn)于各個編程環(huán)境之中,如ruby,python,js,scss等等。mixin往往與可復用組件掛鉤,也常常是框架設(shè)計的加益。


16.2.3更新

stub

stub通常指已定義卻未實現(xiàn)的函數(shù),像skeleton function。比如wiki上的例子:

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

stub還可以指那些模擬遠程端進程的函數(shù),在meteor文檔中描述<code>Meteor.Methods</code>時有使用。


16.3.5更新

perf hit

有某種東西讓系統(tǒng)性能(performance)下降。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 兩顆心碰到一起,是你矯情的先碎。蠢驢。
    ZBOOM閱讀 539評論 0 0
  • 員工啥時候最沒成就感? 就是所有的事都是在領(lǐng)導的監(jiān)控下完成的而不是在自己的創(chuàng)意下完成的,這個時候不可能有成就感。 ...
    李大個子工作室閱讀 633評論 0 0

友情鏈接更多精彩內(nèi)容