您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

facebook開源模型(有哪些值得一讀的優秀開源 JS 代碼) - 副本

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-15 05:28:14【】4人已围观

简介如何看待國產數據庫SequoiaDB開源如何看待國產數據庫SequoiaDB開源總的來說,我認為有幾點吧1)相比mongo還是有中文的齊全文檔,作為中國的碼農。。英文文檔看得還是頭疼啊。3)總體上說使

如何看待國產數據庫SequoiaDB開源

如何看待國產數據庫SequoiaDB開源

總的來說,我認為有幾點吧

1)相比mongo還是有中文的齊全文檔,作為中國的碼農。。英文文檔看得還是頭疼啊。

3)總體上說使用和遷移轉換時候不會不上手,不過現在據說多了SQL的支持,還沒有嘗試過,聽起來很厲害的樣子,不過他們原生的操作語句也還是很好理解的

如何看待yandex開源clickhouse這個列式文檔數據庫

Yandex在2016年6月15日開源了一個數據分析的數據庫,名字叫做ClickHouse,這對保守俄羅斯人來說是個特大事。更讓人驚訝的是,這個列式存儲數據庫的跑分要超過很多流行的商業MPP數據庫軟件,例如Vertica。如果你沒有聽過Vertica,那你一定聽過 Michael Stonebraker,2014年圖靈獎的獲得者,PostgreSQL和Ingres發明者(Sybase和SQL Server都是繼承 Ingres而來的), Paradigm4和SciDB的創辦者。Michael Stonebraker于2005年創辦Vertica公司,后來該公司被HP收購,HP Vertica成為MPP列式存儲商業數據庫的高性能代表,Facebook就購買了Vertica數據用于用戶行為分析。

簡單的說,ClickHouse作為分析型數據庫,有三大特點:一是跑分快, 二是功能多 ,三是文藝范

1. 跑分快: ClickHouse跑分是Vertica的5倍快:

ClickHouse性能超過了市面上大部分的列式存儲數據庫,相比傳統的數據ClickHouse要快100-1000X,ClickHouse還是有非常大的優勢:

100Million 數據集:

ClickHouse比Vertica約快5倍,比Hive快279倍,比My SQL快801倍

1Billion 數據集:

ClickHouse比Vertica約快5倍,MySQL和Hive已經無法完成任務了

2. 功能多:ClickHouse支持數據統計分析各種場景

- 支持類SQL查詢,

- 支持繁多庫函數(例如IP轉化,URL分析等,預估計算/HyperLoglog等)

- 支持數組(Array)和嵌套數據結構(Nested Data Structure)

- 支持數據庫異地復制部署

3.文藝范:目前ClickHouse的限制很多,生來就是為小資服務的

- 目前只支持Ubuntu系統

- 不提供設計和架構文檔,設計很神秘的樣子,只有開源的C++源碼

- 不理睬Hadoop生態,走自己的路

如何看待阿里巴巴宣布開放開源AliSQL數據庫

其實有點類似,谷歌開放安卓系統給大家免費用,

某些技術別人要模仿不難,而且專利有效期也不長,

谷歌可能覺得還不如一下子公開了,大家一起弄,能迅速占領市場

如何看待黑客入侵數據庫

內網。內鬼和外面的黑客一起合作搞的。內鬼的話就比較容易了。

如何看待美國研發的數據庫TokuDB?

測試過 TokuMX, 性能確實不錯,但穩定性堪憂,mongodb 3.0 后引入了 wiredtiger engine,與 tokumx 差距縮小了

研究過 TokuMX 和 TokuDB 用的索引數據結構,很巧妙的設計,雖然樹的深度加倍了,但插入時間確實大幅度降低了。

最后沒有采用。

如何看待免費開源CRM

免費開源CRM基本上很難滿足企業的實際業務需求,可以考慮一款支持用戶個性化定制的CRM,百會的CRM就不錯,它可以根據用戶需求,在最短時間內定制出來并讓用戶看到效果。滿意之后再付費,沒有后顧之憂。定制工具簡單,定制速度快。用戶完全可以自己操作去滿足未來業務的變化。另外它基于SAAS模式的在線租用形勢,可以為企業節省購買硬件、安裝調試、后期升級的費用成本。定期的售后回訪還可以解決不少使用中的問題。

如何看待Facebook已開源React Native

React Native項目成員Tom Ohino發表的React Native: Bringing modern web techniques to mobile(墻外地址)詳細描述了React Native的設計理念。Ohino認為盡管Native開發成本更高,但現階段Native仍然是必須的,因為Web的用戶體驗仍無法超越Native:

1. Native的原生控件有更好的體驗;

2. Native有更好的手勢識別;

3. Native有更合適的線程模型,盡管Web Worker可以解決一部分問題,但如圖像解碼、文本渲染仍無法多線程渲染,這影響了Web的流暢性。

Ohino沒提到的還有Native能實現更豐富細膩的動畫效果,歸根結底是現階段Native具有更好的人機交互體驗。筆者認為這些例子是有說服力的,也是React Native出現的直接原因。

圖3 - Ohino在F8分享了React Native(Keynote)

Learn once, write anywhere

“Learn once, write anywhere”同樣出自Ohino的文章。因為不同Native平臺上的用戶體驗是不同的,React Native不強求一份原生代碼支持多個平臺,所以不提“Write once, run anywhere”(Java),提出了“Learn once, write anywhere”。

圖4 - “Learn once, write anywhere”

這張圖是筆者根據理解畫的一張示意圖,自下而上依次是:

1. React:不同平臺上編寫基于React的代碼,“Learn once, write anywhere”。

2. Virtual DOM:相對Browser環境下的DOM(文檔對象模型)而言,Virtual DOM是DOM在內存中的一種輕量級表達方式(原話是ligheight representation of the document),可以通過不同的渲染引擎生成不同平臺下的UI,JS和Native之間通過Bridge通信(React Native通信機制詳解 « bang’s blog)。

3. Web/iOS/Android:已實現了Web和iOS平臺,Android平臺預計將于2015年10月實現(Blog | React)。

前文多處提到的React是Facebook 2013年開源的Web開發框架,筆者在翻閱其發布稿時,發現這么一段:

圖5 - 摘自React發布稿(2013)

1. 加亮文字顯示2013年已經在開發React Native的原型,現在也算是厚積薄發了。

2. 最近另一個比較火的項目是Flipboard/react-canvas · GitHub(詳見 @rank),渲染層使用了Web Canvas來提升交互流暢性,這和上圖第一個嘗試類似。

React本身也是個龐大的話題不再展開,詳見facebook/react Wiki · GitHub。

筆者認為“Write once, run anywhere”對提升效率仍然是必要的,并且和“Learn once, write anywhere”也沒有沖突,我們內部正在改造已有的組件庫和HybridAPI,讓其適配(補齊)React Native的組件,從而寫一份代碼可以運行在iOS和Web上,待成熟后開源出來。

持續更新...

二、規劃

下圖展示了業務和技術為React Native所做的改造:

圖6 - 業務和技術改造圖6 - 業務和技術改造

自下而上:

1. React Node:React支持服務端渲染,通常用于首屏服務端渲染;典型場景是多頁列表,首屏服務端渲染翻頁客戶端渲染,避免首次請求頁面時發起2次請求。

2. React Native基礎環境:

2.1. Framework集成:盡管React Native放出了Integration with Existing App文檔,集成到現有復雜App中仍然會遇到很多細節問題,比如集成到天貓iPad客戶端就花了組里iOS同學2天的時間。

2.2. Neorking改造:主要是重新建立session,而session通常存放于 header 買粉絲okie中,React Native提供的網絡IO fetch和XMLHttpRequest不支持改寫買粉絲okie。所以要不在保證安全的條件下實現fetch的擴展,要么由native負責網絡IO(已有session機制)再通過HybridAPI由JS調用,暫時選擇了后者。

2.3. 緩存/打包方案:只要有資源從服務器端加載就避免不了這個話題,React Native也是如此,緩存用于解決資源二次訪問時的加載性能,打包解決的是資源首次訪問時的加載性能。

3. MUI是一套組件庫,目前會采用向React Native組件補齊的思路進行改造。

4. HybridAPI是阿里一組Hybrid API,此前也在多個公開場合(如傳感器 @杭JS)分享過不再累述,React Native建立了自己的通信機制,看起來更高效(未驗證),改造成本不大。

5. 最快的一個業務將于4月中上線,通過最初幾個業務改造推動整體系統的改造,如果效果如預期則會啟動更大規模的業務改造。

三、風險

1. 盡管Facebook有3款App(Groups、Ads Manager、F8)使用了React Native,隨著React Native大規模應用,Appstore的政策是否有變不得而知,我們只能往前走一步。

* 更新:

2015.7.28 AppStore審核政策調整:允許運行于JavascriptCore的動態加載代碼,下圖是此前的審核政策,對比加亮部分的改變。

qt支持國產數據庫嗎

應用程序很多情況下需要操作數據庫。QT支持多種數據庫,但是很多情況需要安裝DLL驅動。這就有點麻煩,想當初想用MYSQL的結果就是因為驅動很難裝,然后就使用了SQLITE。如果對數據庫的要求不是很高的話,Sqlite應該可以滿足需求了。

如何看待數據庫技術向大數據技術發展的必然

隨著數據的積累,一些記載對象的業務狀態的數據越來越多,所以就慢慢的形成各行業的大數據,當然有些大數據庫,是有可用之處,有些大數據就是個垃圾。

請采納!

阿里開源新一代 AI 算法模型,由達摩院90后科學家研發

近日,阿里 AI 開源了新一代人機對話模型 ESIM。該算法模型提出兩年多,已被包括谷歌、facebook 在內的國際學術界在200多篇論文中引用,更曾在國際頂級對話系統評測大賽(DSTC7)上獲得雙料冠軍,將人機對話準確率的世界紀錄提升至94.1%。

ESIM 模型最初由達摩院語音實驗室內的90后科學家陳謙研發,現在已經成為業界的熱門模型和通用標準。這支平均年齡30歲的研發團隊宣布,即日起向全世界企業與個人開源ESIM模型,與全球開發者共享這一成果,共同推進人工智能技術發展。

在去年 DSTC 7大賽上,ESIM 橫掃 NOESIS 賽道,從麻省理工學院、約翰霍普金斯大學、IBM 研究院等近20支參賽隊伍中脫穎而出,拿下該賽道兩項比賽的冠軍。

DSTC 是學術界權威對話系統評測大賽,由微軟研究院、卡耐基梅隆大學的科學家在2013年發起,今年舉辦到了第八屆。NOESIS 賽道考察AI的人機對話能力,要求 AI根據給定的多輪人機對話 歷史 ,從成百到上萬個句子中選出正確的回復。

人機對話系統及其背后的認知智能,是人機交互中最復雜也最重要的技術,曾被比爾蓋茨形容為“人工智能皇冠上的明珠”。為讓機器快速準確理解人類的表達,ESIM給 AI 裝上一套“雷達”系統,賦予它實時檢索對話 歷史 、自動去除干擾信息的能力,使它能夠給出人類期待的回復。

這項突破將給智能客服、導航軟件、智能音箱等應用場景帶去顯著變化,阿里基于 ESIM 模型研發的智能語音點餐機、地鐵語音售票機等應用已在杭州、上海等地落地。

這不是阿里第一次開源前沿技術。2018年達摩院開源了新一代語音識別模型DFSMN,吸引眾多研究者在該模型基礎上開展工作,甚至再度刷新語音識別世界紀錄。

Meta 開源了語言翻譯 AI 模型

Meta(前身是 Facebook)在開源世界做出了不小的貢獻。Meta 除了專注于元宇宙Metaverse和其社交媒體平臺外,還致力于各種研究和創新工作,比如 React(一個 JaveScript 庫)。

現在,Meta 的研究人員決定開源一個叫 “不落下任何語言No Language Left Behind” 項目。

(LCTT 校注:這個直譯項目名稱不夠好聽,我來拋磚引玉,似可稱做“無人獨語”,讀者有什么建議嗎?)

目前,雖然世界上有大約 7000 個在使用中的語言,但大多數在線的內容都是以少數的流行語言來提供的,比如英語。這讓許多不懂這些語言的人處于不利的地位。

雖然現存的許多翻譯工具,但語法錯誤會讓錯誤變得難以閱讀和理解。另外,如果你想把內容翻譯為一個不流行的語言(特別是非洲和亞洲的一些語言),翻譯體驗不會很好。

因此,Meta 正在開發有最高質量的翻譯工具,可以幫助解決這一全球性的問題。

NLLB-200(不落下任何語言No Language Left Behind) 是一個人工智能翻譯模型,其可以翻譯 200 多種語言。該模型在每種語言中的翻譯結果是通過一個名為 FLORES-200 復雜數據集來確定和評估的。

正如 Meta 所說,NLLB 的翻譯結果比以前的人工智能研究方法好 40% 。對于一些最不常見的語言,其翻譯準確率甚至超過 70%。了不起的工作!

為了幫助開發項目和提高模型的翻譯質量,Meta 向所有感興趣的研究人員開放了源代碼,包括 NLLB-200 模型、FLORES-200 數據庫、模型訓練和重建訓練數據庫的代碼。

Meta 宣布向從事聯合國可持續發展目標UN Sustainable Development Goals任何領域工作和翻譯非洲語言的非營利組織和研究人員提供高達 20 萬美元的捐贈,也鼓勵其他學術領域如語言學和機器翻譯的研究人員申請。

盡管 Meta 主要打算在其數字平臺上,特別是在“元宇宙”上使用 NLLB,但 NLLB 也有可能在其他領域產生巨大影響。

許多用戶可以用他們的母語輕松地訪問和閱讀在線資源。項目開源后,社區應該能夠幫助實現這個目標。

你對 Meta 的這個項目有什么看法?

via: 買粉絲s://news.itsfoss.買粉絲/meta-open-source-ai-model/

作者:Rishabh Moharir選題:lkxed譯者:fenglyulin校對:wxy

Facebook 開源的 C++ 網絡庫 wangle 和 Boost.Asio 有何異同

喜歡一個人是無罪的,可是他有家庭了,做為一個好女人就不要去插足他的家庭讓兩個家庭都受傷,可以把這份愛放到心里,總會遇到那個真正屬于自己的人,我們不要為了自己而去傷害別人,你會幸福的

開源大數據分析工具?

考慮到現有技術解決方案的復雜性與多樣化,企業往往很難找到適合自己的大數據收集與分析工具。然而,混亂的時局之下已經有多種方案脫穎而出,證明其能夠幫助大家切實完成大數據分析類工作。下面回龍觀IT培訓將整理出一份包含十款工具的清單,從而有效壓縮選擇范疇。

OpenRefine

這是一款高人氣數據分析工具,適用于各類與分析相關的任務。這意味著即使大家擁有多川不同數據類型及名稱,這款工具亦能夠利用其強大的聚類算法完成條目分組。在聚類完成后,分析即可開始。

Hadoop

大數據與Hadoop可謂密不可分。這套軟件庫兼框架能夠利用簡單的編程模型將大規模數據集分發于計算機集群當中。其尤為擅長處理大規模數據并使其可用于本地設備當中。作為Hadoop的開發方,Apache亦在不斷強化這款工具以提升其實際效果。

Storm

同樣來自Apache的Storm是另一款偉大的實時計算系統,能夠極大強化無限數據流的處理效果。其亦可用于執行多種其它與大數據相關的任務,具體包括分布式RPC、持續處理、在線機器學習以及實時分析等等。使用Storm的另一大優勢在于,其整合了大量其它技術,從而進一步降低大數據處理的復雜性。

Plotly

這是一款數據可視化工具,可兼容JaScript、MATLAB、Python以及R等語言。Plotly甚至能夠幫助不具備代碼編寫技能或者時間的用戶完成動態可視化處理。這款工具常由新一代數據科學家使用,因為其屬于一款業務開發平臺且能夠快速完成大規模數據的理解與分析。

Rapidminer

作為另一款大數據處理必要工具,Rapidminer屬于一套開源數據科學平臺,且通過可視化編程機制發揮作用。其功能包括對模型進行修改、分析與創建,且能夠快速將結果整合至業務流程當中。Rapidminer目前備受矚目,且已經成為眾多知名數據科學家心目中的可靠工具。

Cassandra

ApacheCassandra是另一款值得關注的工具,因為其能夠有效且高效地對大規模數據加以管理。它屬于一套可擴展NoSQL數據庫,能夠監控多座數據中心內的數據并已經在Netflix及eBay等知名企業當中效力。

HadoopMapRece

這是一套軟件框架,允許用戶利用其編寫出以可靠方式并發處理大規模數據的應用。MapRece應用主要負責完成兩項任務,即映射與規約,并由此提供多種數據處理結果。這款工具最初由谷歌公司開發完成。

Bokeh

這套可視化框架的主要目標在于提供精致且簡潔的圖形處理結果,用以強化大規模數據流的交互能力。其專門供Python語言使用。

WolframAlpha

這是一套搜索引擎,旨在幫助用戶搜索其需要的計算素材或者其它內容。舉例來說,如果大家輸入“Facebook”,即可獲得與Facebook相關的HTML元素結構、輸入解釋、Web托管信息、網絡統計、子域、Alexa預估以及網頁信息等大量內容。

有哪些值得一讀的優秀開源 JS 代碼

jQuery

jQuery 是一個無需介紹的庫。它憑一己之力讓跨瀏覽器網站使用成為現實,同時把 web 帶到今天的位置。Web 標準已經被大多數瀏覽器制造商采納并真正地尊重,jQuery 是其中的原因之一。jQuery 基金會的使命是“通過開源軟件的開發和支持,以及開發社區的合作,改善開放的 web,讓每一個人都可以訪問它。”

jQuery 是世界上最常用的 JavaScript 庫,所有應用程序都應該使用它,除非你不在意程序員的工作效率。它使得 DOM 遍歷、事件處理、動畫、AJAX 在所有瀏覽器上變得更簡單、更容易。

何時使用 jQuery?一直使用,除非你想使用一個像 Zepto 的輕量級版本。

GitHub:買粉絲s://github.買粉絲/jquery/jquery/jquery

AngularJS

Angular 是流行的企業級框架,許多開發人員都在使用它來構建和維護復雜的 web 應用程序。Angular 的人氣非常高,包括 Domino’s Pizza, Ryanair, iTunes Connect, PayPal Checkout, 谷歌等企業都在使用它。Angular 是一個由谷歌支持的開源框架。Angular 自稱是 HTML 的一個擴展,用來構建復雜的 web 應用程序。另外如果你熟悉 TypeScript, Angular 2就是用它構建的。

Angular 是一個 MVC 類型的框架。它提供了模型和視圖之間的雙向數據綁定。該數據綁定允許每當數據改變時,兩邊自動更新。  它使你能夠構建可復用的視圖組件。它提供了一個服務框架,使得后端-前端服務通信更容易。最后,它只是普通的 JavaScript。

何時使用 AngularJS?當你正在構建一個復雜的 web 前端應用程序,同時需要一個模塊化的框架來處理一切時。

GitHub:買粉絲s://github.買粉絲/angular/angular.js

React

React 是今年最受歡迎的 JavaScript 項目!每個人都似乎在談論 ReactJS。去年我參加的每一個會議,至少有好幾個議題是關于 React 和同家族的其他庫(Flux, Rex)的。React 是開源軟件,主要由 Facebook 開發,其他大型科技公司也有貢獻。React 自稱是一個用于構建用戶界面的 JavaScript 庫。

React 主要是 MVC 中的 V。它的重點完全在 MVC 的 V 部分,忽視應用程序架構的其余部分。它提供了一個組件層,使得創建 UI 元素,組合元素變得更容易。它使用虛擬 DOM,因此優化了渲染,且允許從 node.js 渲染 React。此外,它實現了單向響應的數據流,因此比其他框架更容易理解和使用。

作為 MVC 中的 V,很多項目將 React 結合 Angular 或 Ember 這樣的框架使用。

何時使用 React?當你想要一個強大的視圖層,但不需要在應用程序的其余部分使用一個復雜的框架,或者你在 Angular、Backbone 或 Ember 應用上需要一個視圖層時。當你正試圖建立一個同構 web 框架時。

GitHub:買粉絲s://github.買粉絲/facebook/react

Backbone

Backbone 是一個著名的簡易框架,適合單個 JavaScript 文件。Backbone 已經存在有一段時間了,是以 CoffeeScript 和 Unders買粉絲re 聞名的 Jeremy Ashkenas 所開發的。對于一些為小型 web 應用尋找一個結構簡單的框架,而不想引入如 Angular 或 Ember 這些大型框架的團隊,Backbone 特別受歡迎。

Backbone 提供一個完整的 MVC 框架以及路由。模型允許鍵-值綁定和數據變化的事件處理。模型(和集合)可以連接到RESTful API。視圖具有聲明式事件處理,路由在處理 URL 和狀態管理上做的很出色。它包含你創建一個單頁面應用程序所需要的一切,且沒有提供太多東西,沒有不必要的復雜度。

何時使用 Backbone?Backbone 是我創建簡單 web 應用程序的首選框架。

GitHub:買粉絲s://github.買粉絲/jashkenas/backbone/

Ember

Ember 是一個固執的 web 應用程序框架,關注程序員的工作效率。Ember 比較流行,它的核心團隊包括像曾是 Ruby on Rails 和 jQuery 核心團隊成員的 Yehuda Katz 的聰明人。Ember 自稱是“一個用于創建大規模 web 應用程序的框架”,且不浪費你的時間。它很固執,為你提供了很多選擇。

Ember 也是一個 MVC 框架。它包括一個模板和視圖引擎,當數據變化時自動更新,就像 Angular,Backbone 和 React 一樣。它包含 web組件 的思想,讓你使用自己標簽擴展 HTML(就像 Angular 一樣)。它也有一個知道如何與你的 RESTful API 一起工作的路由和模型引擎。

何時使用 Ember?當你只需要一個可以運行的框架時。當你因為預算緊張或工期很短而不需要靈活性時,請使用 Ember。

GitHub:買粉絲s://github.買粉絲/emberjs/ember.js

Unders買粉絲re &lodash

有時候 JavaScript 內置的功能導致程序員的效率并不高。總是缺少一個工具函數或一個可以簡化代碼的函數。Unders買粉絲re(和 lodash)是一個 JavaScript 庫,它提供了一整套工具函數,不需要對內置 JavaScript 對象打補丁。兩個庫均提供超過 100 個功能助手和其他專用功能,包括 map,filter,invoke,rece,template, throttle, bind, extend, pick, clone 等更多的函數。

何時使用 Unders買粉絲re?當你需要一個單獨的 JavaScript 文件,來立即提升程序員的工作效率時。

GitHub:買粉絲s://github.買粉絲/jashkenas/unders買粉絲re

何時使用 lodash?當你需要模塊化和性能稍強版本的 Unders買粉絲re,同時更容易地支持 AMD 和社區插件時。

LodashGitHub:買粉絲s://github.買粉絲/lodash/lodash

D3.js

數據可視化和圖表是一種常見的 web 應用程序需求。D3.js 是任何數據操作和可視化的事實標準。它是 GitHub上最受歡迎的項目之一,被數以百計的組織使用。大量的圖形,圖表和可視化庫在 D3 上構建。

D3 允許你操作任何來源的數據文檔,轉換成 DOM 或/和 SVG 或/和 CSS。D3 關注現代 web 標準,確保你不受任何專有格式的約束,比如 Flash 和 Silverlight。

何時使用 D3.js?在你需要任何形式的可視化的時候。

GitHub:買粉絲s://github.買粉絲/mbostock/d3

Babylon.js

想要構建完全符合現代 web 標準且跨瀏覽器的視頻游戲嗎?看看 Babylon.js,它是基于 WebGL 和 JavaScript 的 3d 游戲引擎。你可以創建令人難以置信的包含物理、音頻和粒子系統等等的高質量游戲。

何時使用 Babylon.js?無論何時,只要你想做一個視頻游戲或任何類型的復雜三維場景,都能用上。

GitHub:買粉絲s://github.買粉絲/BabylonJS/Babylon.js

Three.js

想要構建一個 3D 可視化場景,但不需要一個完整的游戲引擎?three.js 提供了一個輕量級的 3d 庫,允許渲染 3d 為 HTML5 畫布、SVG 和 WebGL。它是相當簡單的庫,在 three.js 的展示里有數百個優美的例子。

何時使用Three.js?當你需要一個能輸出為 Canvas 的簡單的 3D 可視化場景時。

GitHub:買粉絲s://github.買粉絲/mrdoob/three.js/

Mocha& Chai

JavaScript 在很長一段時間內是非常煩人的。測試任何代碼通常都被認為是惱人的,但它卻是每個開發人員都應該做的事情。每個開發人員似乎總是蔑視和忽略它,而不測試他們的代碼。這個惱人的東西有一個解決辦法,那就是 Mocha 和 Chai。兩個庫的名字都來自美味的熱飲料,它們都能幫你測試代碼,但方式不同。

Mocha 是一個 JavaScript 測試框架,使得你在 node 模塊和瀏覽器 app 中測試異步代碼變得更容易。Mocha 測試可以串聯運行,可以為正確的測試用例添加異常跟蹤的能力。

Chai 是一個行為驅動開發/測試驅動開發的斷言庫,可以搭配 Mocha 使用。它可以把你需要測試的東西用可讀的風格簡單地表達出來。

何時使用 Mocha & Chai?總是!請測試你的代碼,讓世界變得更美好。

Chai GitHub:買粉絲s://github.買粉絲/chaijs/chai

Karma

既然已經把 Mocha 和 Chai 包含在這個列表中了,如果不包含用來運行這些測試或設置持續集成測試的測試運行器,那將是不完整的。Karma 是一款旨在幫助你在不同的瀏覽器上自動運行測試的工具。它可以幫助你在所有瀏覽器上運行 Mocha 和 Chai 測試。

不是每個瀏覽器都運行在所有平臺,但幸運的是可以使用一些免費工具來測試其他瀏覽器,看看 Browser Screenshots。如果你正在 OS X 上運行代碼,想測試 Edge 或 IE,可以 免費 使用這個工具。

何時使用 Karma?當你的應用程序有一個完善的測試套件,并希望確保測試在所有瀏覽器上通過時。

GitHub:買粉絲s://github.買粉絲/karma-runner/karma

PhantomJS

運行完整的瀏覽器來測試你的代碼比較耗內存和 CPU。PhantomJS 允許你運行一個輕量的 WebKit —— Safari 和Chrome(現在是 Blink)后臺的渲染引擎。它允許你通過 JavaScript API 運行測試,捕捉截圖,監控網絡和自動瀏覽頁面。

GitHub:買粉絲s://github.買粉絲/ariya/phantomjs

Grunt & Gulp

為生產環境構建網站,通常涉及到提高性能的任務,比如 JavaScript 和 CSS 的壓縮, CoffeeScript/TypeScript 的編譯,單元測試,語法檢查。也許你已經有一個為網站發布到生產環境的工具鏈,如果沒有,你可以使用任務運行器,比如 Grunt 或Gulp。兩者都有大量關于網站的任何轉換的插件,為發布到生產環境做好準備。

何時使用 Grunt?當你喜歡寫配置文件同時不介意你的任務運行器生成中間文件時。

Grunt GitHub:買粉絲s://github.買粉絲/gruntjs/grunt

何時使用 Gulp?當你喜歡在配置上寫代碼和利用 node.js 的流功能來加快任務執行時。

Gulp GitHub:買粉絲s://github.買粉絲/gulpjs/gulp

Babel

JavaScript 語言正在迅速發展。ECMAScript2015 于去年夏天發布,它的許多新特性在最新的瀏覽器上實現了。如果你想看看 ECMAScript 2015 的兼容性,你可以看看來自 @kangax 的這個 表。你會注意到,最新版本的 Edge,Firefox 和 Chrome 已經幾乎完全兼容了。

我們并不是生活在一個完美的世界。作為開發人員,我們需要繼續支持舊的瀏覽器,它們沒有最新最好的 JavaScript 特性。我們要推進 web 和改善我們的代碼庫。Babel 是一個 JavaScript 編譯器,用于把最新的 JavaScript 標準編譯成可在 IE9 等老瀏覽器上運行的兼容ES5的 JavaScript。它有一些插件,使得 React 開發更容易,甚至可以使用一些不屬于該規范的特性(例如ES7)。

何時使用 Babel?當你想使用新的 JavaScript 語言特性,同時還要支持老版本瀏覽器時。

GitHub:買粉絲s://github.買粉絲/babel/babel

引自:

最佳的 JavaScript 前端框架、庫和工具

買粉絲://web.jobbole.買粉絲/84644/

很赞哦!(226)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:新疆喀什疏勒县

工作室:小组

Email:[email protected]