1. 程式人生 > >BAT、360、網易等大公司開源專案

BAT、360、網易等大公司開源專案

1.WeUI為微信Web服務量身設計

WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊為微信 Web 開發量身設計,可以令使用者的使用感知更加統一。包含 button 、 cell 、dialog 、 progress 、 toast 、 article 、 actionsheet 、 icon 等各式元素。

2.手機前端開發除錯利器 vConsole

我們在開發手機版網頁的時候,常常會出現下面的情景:

(1) 開發時,在自己電腦上執行得好好的,在手機上開啟就掛了,但是手機上又看不到error log;

(2) 上線後,某使用者表示頁面失靈,但我們自己又重現不出來,看不到使用者側的出錯資訊。

如果說(1)還可以通過電腦連線手機以檢視log來解決,那(2)在沒有完善的前端上報體系時就非常被動了。

作為開發者,我們的訴求很簡單:有沒有快捷的方法在手機前端頁面看到log日誌?vConsole就這樣出現了!

3.專業級Web影象處理引擎 AlloyImage

AlloyImage是一個使用Javascript語言開發的,基於Web的線上影象處理引擎,除了核心底層影象處理引擎,還同時集成了一些方便快捷的影象處理API,您可以將它簡單快捷的引用到您的Web網頁中,做出與PhotoShop一樣的優美效果。甚至,你可以用AlloyImage來開發一個Web線上影象處理軟體。

4.GoPng圖片合併並生成CSS

Css Sprite,有時也稱為雪碧圖、精靈圖,是每一個前端開都會遇到的問題,也是常見的小圖片載入優化手段。

5.視覺化Web構建工具 AlloyDesigner

AlloyDesigner 是一款致力於提高前端生產效率的瀏覽器內執行工具,AlloyDesigner + Chrome F12(Especially with WorkSpace) 打造前端新的開發和測試模式

6.Koala跨平臺圖形編譯工具

Koala是一款前處理器語言圖形編譯工具,支援Less、Sass、CoffeeScript、Compass framework的即時編譯。 無需手動輸入命令去編譯,後臺監聽檔案是否有改變,如有修改會自動進行編譯。能夠大大提升 Web

 開發中的工作效率。

功能特性

  • 多語言支援支援Less、Sass、CoffeeScript 和 Compass Framework。

  • 實時編譯監聽檔案,當檔案改變時自動執行編譯,這一切都在後臺執行,無需人工操作。

  • 編譯選項可以設定各個語言的編譯選項。

  • 專案配置支援為專案建立一個全域性配置,為檔案設定統一編譯選項。

  • 錯誤提示在編譯時如果遇到語法的錯誤,koala將在右下角彈出錯誤資訊,方便開發者定位程式碼錯誤位置。

  • 跨平臺Windows、Linux、Mac都能完美執行。

系統支援及要求

Koala支援跨平臺執行,完美相容Windows、Linux與Mac 。

Linux系統下需安裝好ruby執行環境, e.g. $ sudo apt-get install ruby .

7.輕量級 CSS3 動畫庫 JX.Animate

JX.Animate 是一個開源的輕量級的CSS3動畫庫。動畫可以使用標準的CSS3關鍵幀動畫(KeyFrame)製作,也可以使用JavaScript製作,而且還可以支援在JavaScript中動態生成動畫關鍵幀。

8.Fanvas swf轉為html5 canvas

Fanvas是一個把swf轉為html5 canvas動畫的系統,由兩部分組成:Actionscript實現的解析器、js執行庫。Flash做動畫是最成熟最高效的方式,但由於終端基本不支援Flash播放,這給終端的動畫製作帶來了不少麻煩。Fanvas是Flash和Canvas的完美結合,可以把swf(包括向量和點陣圖)完美地轉化為canvas動畫.

9.隨身調測平臺 GT

GT(隨身調)是APP的隨身調測平臺,它是直接執行在手機上的“整合調測環境”(IDTE, Integrated Debug Environment)。利用GT,僅憑一部手機,無需連線電腦,您即可對APP進行快速的效能測試(CPU、記憶體、流量、電量、幀率/流暢度等等)、 開發日誌的檢視、Crash日誌檢視、網路資料包的抓取、APP內部引數的除錯、真機程式碼耗時統計等。如果您覺得GT提供的功能還不夠滿足您的需要,您還 可以利用GT提供的基礎API自行開發有特殊功能的GT外掛,幫助您解決更加複雜的APP除錯問題。

10.Frozen UI移動端UI框架

Frozen UI是一個開源的簡單易用,輕量快捷的移動端UI框架。基於手Q樣式規範,選取最常用的元件,做成手Q公用離線包減少請求,升級方式友好,文件完善,目前全面應用在騰訊手Q增值業務中。

11.LivePoolWeb 開發除錯工具

LivePool 是一個基於 NodeJS,類似 Fiddler 支援抓包和本地替換的 Web 開發除錯工具,是 Tencent AlloyTeam 在開發實踐過程總結出的一套的便捷的 WorkFlow 以及除錯方案。

特性

  • 基於 NodeJS, 跨平臺

  • 支援 http 抓包和本地替換除錯,Https/WebSockets 直接代理轉發(暫不支援本地替換)

  • 便捷的 UI 管理介面,跟 Fiddler 類似,降低學習成本

  • 可以脫離 UI 後臺執行,適應於某些不需要抓包,只需要使用替換和簡單路由的場景

  • 基於專案的替換規則管理,方便高效,規則支援拖曳排序

  • 支援基於請求路徑的本地檔案替換,支援基於請求路徑的路由轉發(host 配置)

  • 替換型別支援:檔案/資料夾替換,combo合併替換,qzmin替換(批量combo),delay延時等

  • 支援自動設定系統代理

  • 支援規則過濾,只顯示關注的請求

  • 提供構建 http get/post 請求介面,方便介面除錯

  • 特色功能:模擬gprs/3g等低網速(mac only)

  • 特色功能:支援離線站點到本地,並自動程式碼格式化

12.KNVProtoEngine高效能樹型協議處理引擎

KNV是一個模式自由的高效能樹型協議處理引擎,是對Key-Value的一個通用結構化擴充套件。

應用特性

正如NoSQL對SQL的徹底變革一樣,KNV是對Key-Value的徹底變革!

大家都很熟悉Key-Value系統,但KV操作極不方便:

-- 你不得不自己做樂觀鎖(讀返回seq->修改->帶seq寫->seq變化則重頭開始);

-- 你不得不拉取一堆資料,然後再提取你想要的部分;

-- 為了修改一個bit,你不得不把一串資料拉取修改後再一起提交更新

不過現在有KNV,一切都解決了。KNV時代來了,你還在猶豫嗎?

應用場景

KNV是專門針對以Protocol Buffers(或類似樹型結構)儲存的儲存系統開發的,有3個應用場景:

  1. 儲存系統處理使用者請求的通用解決方法(Get/Set/Delete),可以適配任意使用者自定義的資料結構。

  2. 代理/通用邏輯層伺服器處理Protocol Buffers協議的通用方法 – 比如通用Proxy,透傳多個協議, 對請求包進行鑑權、限頻、統計等等操作,還支援對包體內容進行審計,使用KNV協議, 這種方法就有可能而且很簡單。

  3. 原生態Protocol Buffers打解包庫的高效能代替品。

13.Behaviac 遊戲AI的開發框架元件

Behaviac是遊戲AI的開發框架元件,也是遊戲原型的快速設計工具。支援行為樹BT,狀態機FSM,HTN等多種正規化,方便的編輯和除錯。支援全平臺,適用於客戶端和伺服器,助力遊戲快速迭代開發。編輯器可以執行在PC上,操作方便直觀可靠,支援實時和離線除錯;編輯器可以匯出xml,bson等多種格式,更可以匯出C++,C#原始碼,提供最高效率。執行時支援全平臺,有C++和C#兩個版本,原生支援Unity。

已被《天天炫鬥》、《QQ飛車》、《全民突擊》、《全民奪寶》、《九龍戰》等遊戲及其他更多預研專案使用。

14.現代構建系統 Typhoon Blade

Blade主要定位於linux下的大型C++專案,密切配合研發流程,比如單元測試,持續整合,覆蓋率統計等。但像unix下的文字過濾程式一 樣,保持相對的獨立性,可以單獨執行。目前重點支援i386/x86_64 Linux,未來可以考慮支援其他的類Unix系統。

特點:

  • 自動分析標頭檔案依賴關係,構建受影響的程式碼。

  • 增量編譯和連結,只構建因變更受影響而需要構建的。

  • 自動計算庫的間接依賴,庫的作者只需要寫出直接依賴,構建時自動檢查所依賴的庫是否需要重新構建。

  • 在任意程式碼樹的任意子目錄下都能構建。

  • 支援一次遞迴構建多個目錄下的所有目標,也支援只構建任意的特定的目標。

  • 無論構建什麼目標,這些目標所依賴的目標也會被自動連坐更新。

  • 內建 debug/release 兩種構建型別。

  • 彩色高亮構建過程中的錯誤資訊。

  • 支援ccache

  • 支援distcc

  • 支援基於構建多平臺目標

  • 支援構建時選擇編譯器(不同版本的gcc,clang等)

  • 支援編譯protobuf,lex,yacc,swig

  • 支援自定義規則

  • 支援測試,在命令列跑多個測試

  • 支援並行測試(多個測試程序併發執行)

  • 支援增量測試(無需重新執行的測試程式自動跳過)

  • 整合gperftools,自動檢測測試程式的記憶體洩露

  • 構建指令碼 vim 語法高亮

  • svn 式的子命令命令列介面。

  • 支援 bash 命令列補全

  • 用 Python 編寫,無需編譯,直接安裝使用。

徹底避免以下問題:

  • 標頭檔案更新,受影響的模組沒有重新構建。

  • 被依賴的庫需要更新,而構建時沒有被更新,比如某子目錄依賴遙遠的某外部目錄的程式碼,我在這個目錄構建,外部目錄的程式碼會被自動檢查是否也需要重新構建。

15.RapidJSONC++的JSON開發包

Rapidjson 是一個 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 風格的 API 設計。