Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲资源在线观看,最近中文字幕更新免费,天天干天天弄

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          冰與火之歌:JavaScript 的困境與挑戰(zhàn)

          近幾年以來,伴隨著各個端平臺的迅猛發(fā)展,以 TypeScript、Swift、Kotlin 和 Dart 為代表的新一代應(yīng)用編程語言紛紛浮現(xiàn)。群雄環(huán)伺之下,JavaScript 也在不斷演進(jìn)。在今天正在深圳召開的 GMTC2019 全球大前端技術(shù)大會上,360 高級前端架構(gòu)師賀師俊發(fā)表《JavaScript 的困境與挑戰(zhàn)》的主題演講,分析 JavaScript 目前面對的問題以及下一步的發(fā)展趨勢。

          JavaScript 的時代變遷

          我從 1998 年就開始寫 JavaScript 了,那時候做的是 IE4,在座很多人可能沒有用過這個東西。所以我經(jīng)歷了整個時代的變化。

          • 1995 年到 1999 年,是前 ES3 的時代;
          • 2000 年到 2010 年,是 ES3 的時代,我們在整個開發(fā)當(dāng)中使用的都是 ES3 的版本;
          • 2008 年到 2016 年,是 Harmony 時代,今天我們基于 JavaScript 的開發(fā),主要工具也好、方式也好,都是在 Harmony 時代積累下來的;
          • 2014 年到 2020 年,就已經(jīng)進(jìn)入了 ES6/Babel 的時代,Babel 在里面扮演了非常重要的角色,使我們可以在生產(chǎn)環(huán)境里面去使用 ES6 的特性;
          • 最后一個是我個人的預(yù)期:我認(rèn)為我們下面新的時代,可能就是 TS、JS 共同構(gòu)成的生態(tài)新時代。

          在過去十多年里面,我經(jīng)常出來講 JavaScript 的內(nèi)容,2010 年我就講過 ES5 的話題,我當(dāng)時對 JavaScript 的發(fā)展做了判斷:發(fā)展方向可能有三個:API 的擴(kuò)展和標(biāo)準(zhǔn)化;通用化;還有適應(yīng)于 PITL(programming-in-the-large)。

          2014 年我也做過演講,當(dāng)時對 ES6 做了一些總結(jié):

          • Module 使得 JS 生態(tài)系統(tǒng)能重新統(tǒng)一;
          • Module / Class 等讓 JS 更適合大型編程;
          • Promise 等將最佳實踐標(biāo)準(zhǔn)化;
          • Generator / Proxy 等提供了現(xiàn)代語言所需的重要設(shè)施;
          • Arrow function / Destructring 等不僅是語法糖,而且填了長期以來的一些坑。

          在 2015 年到 2017 年,我做過一個演講,題目叫做《JS——世界第一程式設(shè)計語言》。在這個演講里面,我特別提到:根據(jù)當(dāng)時在推特上的統(tǒng)計,有 33% 的人直接在生產(chǎn)環(huán)境使用 Babel stage0/1 presets。

          傳統(tǒng)上 JavaScript 是一個非常難以升級的語言,因為要保持線上兼容性,但是有了 Babel 之后,就變成了永遠(yuǎn)在使用最新特性。從生態(tài)上來講,JavaScript 有瀏覽器,有非常多的大公司一起在這個委員會里,有世界上最大的開發(fā)者生態(tài)。

          為什么會覺得 JavaScript 學(xué)不動了?

          我為什么把這個拿出來說一下呢?之前的演講,我覺得其實比較樂觀,某種意義上是立了 flag。但當(dāng)時 JS 已經(jīng)有一些隱憂浮現(xiàn)了,最直接的體現(xiàn)是什么呢?就是所謂 js fatigue——”學(xué)不動了“。不單單包括語言,框架、工具也不斷地改變,我們會覺得要學(xué)的東西很多。

          當(dāng)然如果大家看最近一兩年會發(fā)現(xiàn)框架也好、工具也好,整個演進(jìn)已經(jīng)變慢了,已經(jīng)穩(wěn)定了、成熟了,如果今天我還說學(xué)不動的話,很多情況下可能會指語言本身。比如 JavaScript 一直在加新語言特性,2015 年之后,每一年都會發(fā)一個新的帶年份版本的標(biāo)準(zhǔn),每一年大概會加六到八個新的提案。包括 ES2020 也已經(jīng)定了,大概會增八到九個新特性。所以這個并沒有慢下來。

          那為什么我們會有所謂的 JavaScript 學(xué)不動的感覺?我理解這個事情是一個邊際效用下降。原本你學(xué)一個東西馬上會給你帶來非常大的收益,但是現(xiàn)在你好像每學(xué)一個新的框架,或者學(xué)一個新的語言特性,在收益上可能要打一個問號。

          如果你學(xué)的東西并不能給你直接帶來一個非常強的收益,包括你在生產(chǎn)環(huán)境里面,你覺得也不是很多地方能用到它,那么它的整個性價比可能就會下降,所以你就會發(fā)出一個好像學(xué)不動的感嘆。

          2020:JavaScript 的困境與挑戰(zhàn)

          所以我今天的內(nèi)容,其實就是在反思,經(jīng)過狂飆后,我們停下來看一看我們眼前所遇到的問題。在今年 6 月份,也就是在北京站的 GMTC 上我做過演講,叫做《前端開發(fā)編程語言的過去、現(xiàn)在和未來》,講了 TS、JS 未來面臨的挑戰(zhàn)。簡單來講就是兩句話:TS 背著 JS 的包袱;JS 背著歷史的包袱。

          很多人認(rèn)為我只要 TypeScript 就好了,但是大家要理解,TypeScript 在設(shè)計目標(biāo)上要全兼容,所以如果 JavaScript 有什么問題的話,TypeScript 也跑不了。

          JavaScript 的新包袱和歷史包袱

          JavaScript 大家知道,背著歷史包袱。歷史包袱不僅指老的問題,今天也改不掉,而且更重要的是,因為 JavaScript 的歷史包袱導(dǎo)致它有一些新的設(shè)計,仍然會增加新的包袱:

          第一個,JavaScript 的應(yīng)用場景非常多,導(dǎo)致 JavaScript 的開發(fā)者社區(qū)非常復(fù)雜,有非常巨大的差異性。當(dāng)我們要去對 JS 進(jìn)行改進(jìn)或者要加入新東西的時候,不同社區(qū)的想法、需求可能會不一樣。怎么做 tradeoff?非常困難。

          另外,還有像委員會語言的弊病,這個不用諱言比如 C++ 就是明顯的委員會的語言,委員會的語言因為參與的人多,不像很多由公司主導(dǎo)的語言,本身的發(fā)展比較有秩序。

          歷史包袱我們可以展開講一下,歷史包袱簡單來講,最基本的就是,因為 JavaScript 用了這么多年,不能破壞它的兼容性,而且在所有語言里面是最沒有辦法改的——我們有那么多的網(wǎng)站跑到線上,加了任何東西都不能把原本的網(wǎng)站搞掛了,所以只能增加特性解決以前的問題。

          比如箭頭函數(shù),它加了之后解決了很多以前 ES3 時代的函數(shù)里面的問題,也就是增加了一個所謂的 Lexical this,但是不可避免的是使 this 的語義變得更加復(fù)雜。

          另外一個例子,因為我們這么多年以來,整個 JavaScript 的發(fā)展,使得我們在真正的工程當(dāng)中,會存在幾種不同的東西:一個叫工程方案;第二個叫事實標(biāo)準(zhǔn);第三個才叫真的標(biāo)準(zhǔn)。這三個東西會長期共存,所以使得整個生態(tài)里面會有些復(fù)雜的問題。

          對于歷史包袱,我們現(xiàn)在的解決方法是 Polyfill 的方案。Polyfill 有廣義 Polyfill 和狹義 Polyfill,到底什么叫 Polyfill?Polyfill 是已經(jīng)成為了標(biāo)準(zhǔn)了,然后我們把它做出來,在沒有實現(xiàn)的瀏覽器上可以用,這才叫 Polyfill。如果你是一個實驗性的實現(xiàn),你就不應(yīng)該去修改 global 和 prototype 上的東西,因為它其實會造成很多潛在的問題。但是如果已經(jīng)是一個標(biāo)準(zhǔn)了,那么去改并沒有什么錯。但是這個問題就是,很多開發(fā)者并不能區(qū)分這個,而且在我們的日常當(dāng)中,當(dāng)我們講 Polyfill 的時候也沒有刻意區(qū)分,但就會在生態(tài)中造成這樣一個非常嚴(yán)重的問題。

          Babel 帶來的挑戰(zhàn)

          接下來講 Babel,Babel 是對生態(tài)非常重要的東西。大家知道我們之前都用 presets,在 v7 的時候被取消了。主要問題是我們會無意中在 Production 中使用了 unstable features,當(dāng)它發(fā)生改變,如果你在生產(chǎn)環(huán)節(jié)里用的話,對你本身來講就會是非常大的挑戰(zhàn),對于標(biāo)準(zhǔn)本身來講也會有很大的挑戰(zhàn)。甚至到 stage3 都會有這樣的問題。但這個事情是雙刃劍,有很多東西你只有在真正的生產(chǎn)環(huán)境里面才能得到真的反饋,不是說光寫一些 demo 就可以看出來什么問題。

          第二個問題是,很多人說我今天寫的不是 JavaScript,而是 BabelScript,這些特性是自己定制的語法特性。這里面有個特別的例子,是 babel-plugin-macros,這個插件非常好,原本要單獨寫插件,現(xiàn)在可以用 macros 去寫,它相對是更顯性的方式,明確的知道我這里用了自定義的東西。但是本質(zhì)上,當(dāng)你導(dǎo)入一個像函數(shù)的東西,它其實并不是函數(shù)。這個仍然存在一個挑戰(zhàn),對很多開發(fā)者來講,是否理解是函數(shù)和不是函數(shù)的差異?

          再看下 TypeScript,TypeScript 的設(shè)計原則是只有到 Stage3 才可以,TypeScript 是從 2012 年就誕生了,2012 年 ES6 還沒有定案,所以 TypeScript 當(dāng)年的很多特性都是 ES6 還沒有定案的。如果我們看一下,這是當(dāng)年 TypeScript 增加的東西,本質(zhì)上 TypeScript 只是加了類型,但是在當(dāng)年,因為 2012 年 ES6 還沒有定案,除了類型之外,這些東西是加進(jìn)去的東西。

          這些東西稍微看一下,arrow function、class 沒有什么問題,es module 就有問題了。它的語法不一樣,這已經(jīng)開始有坑了。decorator 也有問題,這是現(xiàn)在的提案,和 TypeScript 的提案非常不一樣,所以 TypeScript 需要一個編譯開關(guān)才能使用,這也是 decorator 不太好的狀態(tài)。包括最后這兩個,private property 和 public property 語法語義和現(xiàn)在的 stage3 的 class fields 完全不一樣,對 TypeScript 來說非常痛苦。

          然后我們再來看一個例子,叫做 ESLint。它采用的方針更加保守了,它只是在 Stage4 的時候才會做跟這些新特性有關(guān)的新規(guī)則。這種方式也避免了前面很多問題。

          ESLint 會導(dǎo)致兩個問題:第一個我們很多人已經(jīng)在做更早的 Stage3 的東西,但 Stage3 的東西也需要保護(hù),而且更需要保護(hù);第二個問題就是,在制訂標(biāo)準(zhǔn)的時候,缺乏 lint 社區(qū)的反饋。

          有一個有趣的事情是,在整個 ES6 的發(fā)展當(dāng)中,很多的提案是遵循一個叫做 Maximally Minimal 的設(shè)計哲學(xué),最大化的最小化,我們只加那些最最重要的東西,如果翻譯過來的話叫先解決溫飽再考慮小康,所以 ES6 很多東西確實解決痛點,但很多時候 ES6 的東西并不能完全滿足你的所有需要。

          比如 ES6 加了 Map 和 Set,但這兩 API 只能滿足你最基本的需求。所以這也是一個雙刃劍,好的地方是,我們只有通過這樣的設(shè)計,才能在當(dāng)時那么快的把 ES6 做出來,否則可能永遠(yuǎn)都做不出來。到底怎么樣才是真正滿足所有人需求?這個事情定義不清楚。

          今天來講,我們會發(fā)現(xiàn),很多時候我們溫飽都已經(jīng)解決了,現(xiàn)在大家討論的都是小康問題。怎么讓特性用得更好更爽。但這個問題就是前面講的,因為開發(fā)者社區(qū)非常復(fù)雜,每個人的需求都不一樣,最大的問題是誰能代表開發(fā)者?這其實一個非常難以回答的問題。

          舉個例子——Map.prototype.upsert(),看名字猜得出來嗎?估計猜不太出來。我個人認(rèn)為只有非常有經(jīng)驗的開發(fā)者,才可能比較需要這個東西。一般的開發(fā)者其實是不是真的需要,要打個問號。同時對新手來講,理解的成本也比較高。所以這里有個問題,我們怎么衡量成本和收益?其實是非常困難的。

          最后,我講一下有爭議的事,比如說我們現(xiàn)在對 Top-level Await、Class fields 這兩個提案都不太滿意,當(dāng)然我們技術(shù)上可以有很多的討論,但實際上這個事情一句話講就是改革進(jìn)入深水區(qū),就是好做的都做完了,剩下的都是難搞的。這兩個其實都是 ES6 時代遺留至今的問題。

          最后再舉一個例子——Pipeline Operator。現(xiàn)在 Pipeline 有兩種不同的競爭提案,第一種叫 F# Style,另外一種方式叫 Smart style。所以這其實是兩難選擇,我們是希望更符合 FP 的主流還是更普適現(xiàn)有整個 JavaScript 的生態(tài),這是非常難做的選擇。

          還有 Binary AST,也是一個提案,它相當(dāng)于字節(jié)碼,它有個很大的好處就是整個加載速度會非常快的提升。所以這樣一個提案肯定是我們所有人都很喜歡的,特別是做 Web 的人會非常喜歡。但是這個現(xiàn)在也處于一個比較難推進(jìn)的狀態(tài),為什么呢?講一個很簡單的原因就是,當(dāng)你有了 Binary AST 之后,所有語言特性都得考慮,在這里面怎么把它加進(jìn)去,字節(jié)碼里面怎么把它加進(jìn)去,所以困難程度直接翻番了。

          大家看到很多問題都是有兩面性,這是改革進(jìn)入深水區(qū)遇到的很多問題。包括不同平臺的需求,比如 Web 和 Node 的平臺,這兩個平臺的需求不一樣。

          還有性能和動態(tài)性的矛盾,我們做一個東西既希望性能好,又希望符合 JavaScript 的傳統(tǒng),這里面最簡單的例子就是 decorator。所以會遇到非常多的矛盾問題。

          JavaScript 的轉(zhuǎn)折點:未來何去何從?

          講了這么多,可能最重要的問題就是:到底我們整個發(fā)展有沒有 Roadmap?答案是沒有。這就是委員會里面的一個問題,進(jìn)一步來講,它也沒有明確的主導(dǎo)者,如果沒有 Roadmap,全局上怎么解決這個事情就不好說了。

          所以我們今天進(jìn)展到這樣一個地步——JavaScript 是非常成功的語言,但到現(xiàn)在是一個轉(zhuǎn)折點,我們要停下來看一看:它再往下怎么樣發(fā)展才會更好?

          嘉賓介紹:

          賀師俊(網(wǎng)名 Hax),360 高級前端架構(gòu)師,十多年來一直活躍在前端和 JavaScript 社區(qū)。對多項 Web 標(biāo)準(zhǔn)有微小貢獻(xiàn),對 Groovy 語言并間接對 Swift 語言有微小貢獻(xiàn),近年來參與了諸多 ECMAScript 新草案的討論。2019 年 7 月起成為 360 的 TC39 代表。

          一篇:股票高手必修課程和過程(六):不看一日漲跌,研究關(guān)鍵位置洗盤

          有一些人特別喜歡漲停板,以每天追逐漲停板為能事。而且提出了一大堆的方法、技巧。比如說什么“首板”,“二板三板”之類不一而足。

          我并不反對追求漲停板。畢竟這是一個來錢快的活兒。但是如果不知道漲停板的真正意義和原因,就是盲目的去看板就追,則這種專做漲停板,一定是快速自殺技。

          沒有無緣無故的愛也沒有無緣無故的恨。

          同樣的股票也是,沒有無緣無故的漲,也沒有無緣無故的跌。

          出現(xiàn)漲停板你得知道為什么。

          漲停板從意義上就分為四種:一、見底。陰陽發(fā)生轉(zhuǎn)換了。跌到頭了就以漲停板為標(biāo)志,說明到了超跌區(qū)域,出現(xiàn)逆轉(zhuǎn)確認(rèn)了。二、快速震蕩洗盤。三、建倉完畢、開始拉升。四、出貨。

          第一種,是當(dāng)出現(xiàn)一段超長、超跌的走勢后,物極必反,跌不動了。這種漲停板后期不會有大動作,最大可能是出現(xiàn)相當(dāng)一段時間的橫盤走勢。但是也不排除之前就是一大段橫盤后,開始拉升。

          比如600238的11月1日的首板。000838的11月15日的首板。

          第二種是莊家正處于建倉階段。出現(xiàn)漲停板是為了抬高成本。這樣的漲停板出來后,后面走勢基本上就是開始了震蕩。比如600636的10月14日。

          第三種就是建倉完畢,開始走出一波拉升了。比如

          002789的4月27日。

          第四種就很簡單了。為了出貨。

          圖就不上了。最明顯的例子就是600051的11月29日的漲停板。

          既然我把漲停板出現(xiàn)點的理論做了歸類,那么你應(yīng)該知道在什么位置出現(xiàn)漲停板,結(jié)果是怎么樣的了吧。

          那么你究竟要選擇什么位置的漲停板,應(yīng)該做到心中有數(shù)了吧。

          出現(xiàn)漲停板我們一定要仔細(xì)的去研判它。首先就要定義出它目前所處的位置。是建倉階段?還是洗盤后的突破?或者是快速出貨?看清楚了它的位置,再去說其他的。

          我想你如果讀懂了這篇文章,那么就應(yīng)該不會輕易的陷于一追就跌的窘境了。

          {本文為理想論壇博主「善變十字星」的帖子,轉(zhuǎn)載請注明出處。

          原文鏈接: https://www.55188.com/thread-10385601-1-1.html}

          下一篇:股票高手必修課程和過程之(八):長線賺大錢但是你得會選(1)

          多網(wǎng)友都說自己的手機很容易自動關(guān)機,一有這情況就埋怨是手機的質(zhì)量、或品牌差。其實,手機自

          動關(guān)機有時并不“一定”是你的手機質(zhì)量出現(xiàn)了問題,而是其它的一些原因,我們一起來看看是什么導(dǎo)

          致了手機自動關(guān)機。

          一般自動關(guān)機究其原因可能有以下幾種可能:

          1.鋰電內(nèi)的保護(hù)電路作用過度靈敏,因此電流一大就斷電。

          2.電池本身已老化。

          3.電池接觸位的金屬片有污物,造成電源接觸不良。

          4.電池與手機之間的接合位容易松動。

          5.自己設(shè)置了自動關(guān)機,到設(shè)置里自己查看下。

          假如檢查后,發(fā)現(xiàn)是前兩項問題,那么一定要送到專門維修店去修理。假若是后兩項問題,只是電池金

          屬片臟污氧化所致,只要用膠棒將之拭擦清潔,情況將會得到改善。在電池與手機之間墊上紙皮或膠片

          ,也可以解決電池松動引起的接觸不良的問題。

          其他原因分析參考資料:

          http://jingyan.baidu.com/article/ed2a5d1f3ad9de09f6be17d0.html

          1、系統(tǒng)固件兼容性問題

          手機是硬件,而系統(tǒng)固件是系統(tǒng)軟件,系統(tǒng)軟件負(fù)責(zé)調(diào)度硬件運行,并提供和用戶的人機交互。我們知道蘋果的ios系統(tǒng)是封閉的,有的人喜歡破解掉ios系統(tǒng)的限制而進(jìn)行越獄,可以下載免費的破解APP應(yīng)用軟件和蘋果公司禁止的應(yīng)用軟件。由于ios系統(tǒng)固件的部分功能被改寫,影響了原有系統(tǒng)固件與手機硬件的兼容性,越獄后的系統(tǒng)固件導(dǎo)致蘋果手機發(fā)生自動關(guān)機的可能性是存在的。這類情況的解決辦法,要么重新刷機越獄,要么刷會蘋果官方的系統(tǒng)固件。

          2、應(yīng)用軟件插件兼容性問題

          上面也提到蘋果的IOS系統(tǒng)是封閉的,所有在IOS系統(tǒng)運行的APP應(yīng)用軟件,必須經(jīng)過蘋果官方的認(rèn)證測試,只有測試通過后的APP應(yīng)用軟件才能在蘋果的APPstore中供其他用戶下載安裝使用。一些影響蘋果系統(tǒng)或用戶安全性的APP應(yīng)用軟件,蘋果公司禁止上線。而越獄過的蘋果手機缺可以安裝這些APP應(yīng)用軟件,比如說:界面美化類,通訊錄管理工具,短信管理工具,文件管理工具等APP應(yīng)用插件。由于這些插件沒有經(jīng)過第三方的嚴(yán)格測試,可能會導(dǎo)致系統(tǒng)出現(xiàn)兼容性問題,而引起蘋果手機自動關(guān)機。這類情況的解決辦法,把最近安裝的APP應(yīng)用插件卸載掉。

          3、硬件問題電池漏電

          iphone手機的充電器是電壓5V,充電電流是1A,而ipad的充電器電壓也是5V,充電電流是2A,長期使用ipad充電器給iphone手機充電,會損傷iphone手機的電池。如果用非原裝的充電器,充電電壓和充電電流控制的不嚴(yán)格的話,也會損傷iphone手機的電池,這樣iphone手機的電池耐用度會比較差,電量消耗很快,明明看著有電呢,一會兒電量就消耗光了,遇到這種情況,采用DFU模式啟動手機當(dāng)然是無法啟動,只能更換蘋果手機的電池。

          4、硬件問題主板電源IC

          電源IC是主板上一個用于蘋果手機供電用電的邏輯控制單元。如果邏輯控制單元出現(xiàn)計算錯誤,明明手機電池有電了,在主板電源IC這層缺認(rèn)為手機電池沒有電量了,而自動關(guān)閉手機。這種情形,可以采用DFU硬啟動模式,重新啟動手機。當(dāng)手機用了一段時間,主板電源IC又出現(xiàn)計算錯誤的情況,則再次自動關(guān)機。遇到類似的情況,如果在質(zhì)保服務(wù)期內(nèi),找官方售后免費進(jìn)行整機更換,如果已經(jīng)過了質(zhì)保服務(wù)期,只能找維修站進(jìn)行維修。


          主站蜘蛛池模板: 久久久一区二区三区| 亚洲日本一区二区一本一道| 精品久久综合一区二区| 不卡无码人妻一区三区音频| 亚洲熟妇AV一区二区三区宅男| 久久久久国产一区二区| 在线成人综合色一区| 国产一区二区精品| 高清一区二区三区| 99在线精品一区二区三区| 国产精品伦一区二区三级视频| 一区二区三区久久精品| 国产成人一区二区精品非洲| 国产精品高清一区二区人妖| 精品人妻码一区二区三区| 清纯唯美经典一区二区| 精品国产一区二区三区2021| 亚洲午夜精品第一区二区8050| 国产免费一区二区三区VR| 精品免费国产一区二区三区 | 国产精品一区三区| 国产一区二区三区播放心情潘金莲 | 在线精品国产一区二区| 日本免费电影一区二区| 日韩精品一区二区三区四区 | 麻豆AV一区二区三区久久| 亚洲男人的天堂一区二区| 乱人伦一区二区三区| 亚洲韩国精品无码一区二区三区| 国产午夜精品一区二区三区小说 | 亚洲AV无码一区二区乱孑伦AS| 好爽毛片一区二区三区四| 成人欧美一区二区三区在线视频 | 久久中文字幕一区二区| 国产综合精品一区二区三区| 内射女校花一区二区三区| 国产激情无码一区二区app| 中文字幕一区二区三区久久网站| 成人免费观看一区二区| 国模无码视频一区二区三区| 国产免费私拍一区二区三区|