當前位置:
首頁 > 最新 > 阿里前10大開源項目,致敬!

阿里前10大開源項目,致敬!

1

JSON處理器 fastjson

fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。

主要特點:

快速FAST (比其它任何基於Java的解析器和生成器更快,包括jackson)

強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)

零依賴(沒有依賴其它任何類庫除了JDK)

示例代碼:

Group group = new Group();

group.setId(0L);

group.setName("admin");

User guestUser = new User();

guestUser.setId(2L);

guestUser.setName("guest");

User rootUser = new User();

rootUser.setId(3L);

rootUser.setName("root");

group.getUsers().add(guestUser);

group.getUsers().add(rootUser);

String jsonString = JSON.toJSONString(group);

2

JVM-Sandbox

JVM-Sandbox,JVM 沙箱容器,一種基於 JVM 的非侵入式運行期 AOP 解決方案。

JVM-SANDBOX 的核心功能:

實時無侵入 AOP 框架

在常見的 AOP 框架實現方案中,有靜態編織和動態編織兩種。

靜態編織

靜態編織發生在位元組碼生成時根據一定框架的規則提前將 AOP 位元組碼插入到目標類和方法中,實現 AOP;

動態編織

動態編織則允許在 JVM 運行過程中完成指定方法的 AOP 位元組碼增強。常見的動態編織方案大多採用重命名原有方法,再新建一個同簽名的方法來做代理的工作模式來完成 AOP 的功能(常見的實現方案如 CgLib),但這種方式存在一些應用邊界:

侵入性

對被代理的目標類需要進行侵入式改造。比如:在 Spring 中必須是託管於 Spring 容器中的 Bean

固化性

目標代理方法在啟動之後即固化,無法重新對一個已有方法進行 AOP 增強

3

分散式RPC服務框架 Dubbo

Dubbo 是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring 框架無縫集成。

主要核心部件:

Remoting: 網路通信框架,實現了 sync-over-async 和 request-response 消息機制

RPC: 一個遠程過程調用的抽象,支持負載均衡、容災和集群功能

Registry: 服務目錄框架用於服務的註冊和服務事件發布和訂閱

工作原理:

4

Node.js框架 Egg.js

Egg.js,為企業級框架和應用而生,是阿里開源的企業級 Node.js 框架。

特性

深度框架定製

高度可擴展的插件機制

內置多進程管理

基於 koa 開發,性能優異

框架穩定,測試覆蓋率高

開始使用

npm install egg-init -g

$egg-init --type simple showcase && cd showcase

$npm install

$npm run dev

$open http://localhost:7001

5

Ant Design Pro

Ant Design Pro 是一套開箱即用的中台前端/設計解決方案。

特性

優雅美觀:基於 Ant Design 體系精心設計

常見設計模式:提煉自中後台應用的典型頁面和場景

最新技術棧:使用 React/dva/antd 等前端前沿技術開發

響應式:針對不同屏幕大小設計

主題:可配置的主題滿足多樣化的品牌訴求

國際化:內建業界通用的國際化方案

最佳實踐:良好的工程實踐助您持續產出高質量代碼

Mock 數據:實用的本地數據調試方案

UI 測試:自動化測試保障前端產品質量

6

JDBC連接池,監控組件Druid

Druid是一個JDBC組件,它包括三部分:

DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的插件體系。

DruidDataSource 高效可管理的資料庫連接池。

SQLParser

Druid可以做什麼?

1) 可以監控資料庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對於線上分析資料庫訪問性能有幫助。

2) 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的資料庫連接池。

3) 資料庫密碼加密。直接把資料庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。

4) SQL執行日誌,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫訪問情況。

擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

如下是一個基於Druid內置擴展StatFilter的監控實現:

7

NG-ZORRO

NG-ZORRO 是一個企業級的 UI 組件庫,是 Ant Design 的 Angular 4.0 實現,開發和服務於企業級後台產品。

特性

提煉自企業級中後台產品的交互語言和視覺風格,定期與 Ant Design React 版本保持更新一致。

開箱即用的高質量 Angular 組件。

使用 TypeScript 構建,提供完整的類型定義文件。

支持環境

現代瀏覽器和 IE9 以上(需要 polyfills)。

兼容版本

當前支持 Angular 4.0.0 版本

8

容器技術Pouch

2017年杭州雲棲大會中,阿里巴巴正式宣布,自主研發的容器技術 Pouch 將以開源的形式回饋社區,希望與開發者共同推動中國容器技術發展,共建容器生態。

阿里Pouch並不是一個完全創新的技術。最早,阿里基於LXC技術為集團業務提供容器服務,2011年,阿里自研容器技術T4,2016年,阿里內部將容器技術重新命名為Pouch,並於去年支持集團內部大量核心業務,比如電商平台核心業務、主要應用和部分資料庫、螞蟻金服的支付業務,淘寶網的交易業務等等。

關於Pouch的命名由來,源於阿里作為開放賦能者,注重用戶場景應用的初衷。正如阿里巴巴技術專家孫宏亮所言,Pouch作為從阿里巴巴集團內部大規模場景自研技術,相比docker、rkt等容器技術,差異化的核心價值體現在以下幾個方面:

富容器技術:容器內部的應用體驗如虛擬機般,擁有init進程,且富含系統服務;

豐富的隔離保障:隔離安全避無可避,內核加固與輕量級虛擬機支持,豐富隔離維度;

P2P鏡像分發:超大規模場景下的鏡像分發,P2P的方式緩解網路負載;

內核兼容性:企業內核的升級往往較為緩慢,最大限度適配現有底層基礎設施。

9

開源資料庫AliSQL

AliSQL是基於MySQL官方版本的一個分支,由阿里雲資料庫團隊維護,目前也應用於阿里巴巴集團業務以及阿里雲資料庫服務。該版本在社區版的基礎上做了大量的性能與功能的優化改進。尤其適合電商、雲計算以及金融等行業環境。

阿里雲資料庫資深專家丁奇介紹,AliSQL版本在強度和廣度上都經歷了極大的考驗。最新的AliSQL版本不僅從其他開源分支比如:Percona,MariaDB,WebScaleSQL等社區汲取精華,也沉澱了阿里巴巴多年在MySQL領域的經驗和解決方案。AliSQL增加更多監控指標,並針對電商秒殺、物聯網大數據壓縮、金融數據安全等場景提供個性化的解決方案。

「在通用基準測試場景下,AliSQL版本比MySQL官方版本有著70%的性能提升。在秒殺場景下,性能提升100倍。」丁奇表示。

阿里雲資深總監李津表示,「AliSQL的發展得到了眾多智慧的支持。我們希望將過去幾年沉澱的技術積累回饋到社區,幫助更多使用MySQL的個人和企業,這是社區良性發展的道路。我們也歡迎更多的開發者和技術團隊加入AliSQL開源項目,使之在業內發揮更大的價值。」

和 Oracle 資料庫的性能比較:

10

可視化編碼的圖形語法AntV - G2

G2 是一套基於可視化編碼的圖形語法,以數據驅動,具有高度的易用性和擴展性,用戶無需關注各種繁瑣的實現細節,一條語句即可構建出各種各樣的可交互的統計圖表。

同時,G2 也是 AntV 最重要的組成,始於《The Grammar of Graphics》一書描述的視覺編碼語法系統(這也是 G2 項目命名的由來)。

特性

簡單、易用:從數據出發,僅需幾行代碼就可以輕鬆獲得想要的圖表展示效果

完備的可視化編碼:以數據驅動,提供了從數據到圖形的完整映射

強大的擴展能力:任何圖表,都可以基於圖形語法靈活繪製,滿足你無限的創意

示例

柱狀圖

完整代碼:

柱狀圖


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 美的讓人心動 的精彩文章:

TAG:美的讓人心動 |