工欲善其事必先利其器膳凝,一個(gè)優(yōu)秀的程序員除了代碼寫(xiě)得好急侥,善于利用各種開(kāi)發(fā)工具同樣可以事半功倍同眯。以 BAT 為代表的各大廠程序員們?cè)谄綍r(shí)的工作中都用什么開(kāi)發(fā)工具呢调炬?InfoQ 編輯部盤點(diǎn)了大廠內(nèi)部常用的開(kāi)發(fā)工具,以供讀者參考捡多。本文涉及工具大部分為開(kāi)源項(xiàng)目蓖康,大家可以按需選用。
阿里篇
一垒手、Java 線上診斷工具 Arthas
Arthas 是阿里巴巴 2018 年 9 月開(kāi)源的一款 Java 線上診斷工具蒜焊。
使用場(chǎng)景:
- 這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的 Exception科贬?
- 我改的代碼為什么沒(méi)有執(zhí)行到泳梆?難道是我沒(méi) commit?分支搞錯(cuò)了榜掌?
- 遇到問(wèn)題無(wú)法在線上 debug优妙,難道只能通過(guò)加日志再重新發(fā)布嗎?
- 線上遇到某個(gè)用戶的數(shù)據(jù)處理有問(wèn)題憎账,但線上同樣無(wú)法 debug套硼,線下無(wú)法重現(xiàn)!
- 是否有一個(gè)全局視角來(lái)查看系統(tǒng)的運(yùn)行狀況胞皱?
- 有什么辦法可以監(jiān)控到 JVM 的實(shí)時(shí)運(yùn)行狀態(tài)邪意?
Arthas 支持 JDK 6+,支持 Linux/Mac/Windows反砌,采用命令行交互模式雾鬼,同時(shí)提供豐富的 Tab 自動(dòng)補(bǔ)全功能,進(jìn)一步方便進(jìn)行問(wèn)題的定位和診斷宴树。
使用教程:
基礎(chǔ)教程:
https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics
進(jìn)階教程:
https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced
開(kāi)源地址:
https://github.com/alibaba/arthas
二策菜、IDE 插件 Cloud Toolkit
Cloud Toolkit 是一款 IDE 插件,可以幫助開(kāi)發(fā)者更高效地開(kāi)發(fā)酒贬、測(cè)試又憨、診斷并部署應(yīng)用。通過(guò) Cloud Toolkit锭吨,開(kāi)發(fā)者能夠方便地將本地應(yīng)用一鍵部署到任意機(jī)器(本地或云端)竟块,并內(nèi)置 Arthas 診斷、高效執(zhí)行終端命令和 SQL 等耐齐,提供 IntelliJ IDEA 版浪秘,Eclipse 版蒋情,PyCharm 版和 Maven 版。
使用場(chǎng)景:
- 每次修改完代碼后耸携,是否正在經(jīng)歷反復(fù)地打包棵癣?
- 在 Maven 、Git 以及其他運(yùn)維腳本和工具的之間頻繁切換夺衍?
- 采用 SCP 工具上傳狈谊?使用 XShell 或 SecureCRT 登陸服務(wù)器?替換部署包沟沙?重啟河劝?
- 文件上傳到服務(wù)器指定目錄,在各種 FTP矛紫、SCP 工具之間頻繁切換 赎瞎?
使用教程:
IntelliJ IDEA 版:
https://help.aliyun.com/document_detail/98762.html
Eclipse 版:
https://help.aliyun.com/document_detail/29970.html
PyCharm 版:
https://help.aliyun.com/document_detail/112740.html
Maven 版:
https://help.aliyun.com/document_detail/108682.html
(免費(fèi)) 工具地址:
https://www.aliyun.com/product/cloudtoolkit
三、混沌實(shí)驗(yàn)注入工具 ChaosBlade
ChaosBlade 是一款遵循混沌工程實(shí)驗(yàn)原理颊咬,提供豐富故障場(chǎng)景實(shí)現(xiàn)务甥,幫助分布式系統(tǒng)提升容錯(cuò)性和可恢復(fù)性的混沌工程工具,可實(shí)現(xiàn)底層故障的注入喳篇,提供了延遲敞临、異常、返回特定值麸澜、修改參數(shù)值挺尿、重復(fù)調(diào)用和 try-catch 塊異常等異常場(chǎng)景。
使用場(chǎng)景:
- 微服務(wù)的容錯(cuò)能力不易衡量炊邦?
- 容器編排配置是否合理無(wú)法驗(yàn)證编矾?
- PaaS 層健壯性的測(cè)試工作無(wú)從入手?
使用教程:
https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南
開(kāi)源地址:
https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南
四铣耘、Java 代碼規(guī)約掃描插件
該插件用于檢測(cè) Java 代碼中存在的不規(guī)范的位置洽沟,并給予提示以故。規(guī)約插件是采用 Kotlin 語(yǔ)言開(kāi)發(fā)蜗细。
使用教程:
IDEA 插件使用文檔:
https://github.com/alibaba/p3c/wiki/IDEA 插件使用文檔
Eclipse 插件使用文檔:
https://github.com/alibaba/p3c/wiki/Eclipse 插件使用文檔
開(kāi)源地址:
https://github.com/alibaba/p3c
五、解決 Kubernetes 上應(yīng)用自動(dòng)化問(wèn)題工具 OpenKruise
Kruise 的核心是自動(dòng)化怒详,從不同維度解決 Kubernetes 之上應(yīng)用的自動(dòng)化問(wèn)題炉媒,包括部署,升級(jí)昆烁,彈性擴(kuò)縮容吊骤,Qos 調(diào)節(jié),健康檢查静尼,遷移修復(fù)等白粉。此次传泊,Kruise 開(kāi)源的內(nèi)容主要在應(yīng)用部署,升級(jí)方面鸭巴,即一套增強(qiáng)版 controller 組件用于應(yīng)用的部署和級(jí)和運(yùn)維眷细。后續(xù),Kruise 會(huì)依次開(kāi)源智能化的彈性擴(kuò)縮容組件鹃祖,以及應(yīng)用 Qos 自調(diào)節(jié)能力的組件等溪椎。
開(kāi)源地址:
https://github.com/openkruise/kruise
六、靜態(tài)開(kāi)源站點(diǎn)搭建工具 Docsite
Docsite 是一款集官網(wǎng)恬口、文檔校读、博客和社區(qū)為一體的靜態(tài)開(kāi)源站點(diǎn)的解決方案,具有簡(jiǎn)單易上手祖能、上手不撒手的特質(zhì)歉秫,同時(shí)支持 react 和靜態(tài)渲染、PC 端和移動(dòng)端芯杀、支持中英文國(guó)際化端考、SEO、markdown 文檔揭厚、全局站點(diǎn)搜索却特、站點(diǎn)風(fēng)格自定義、頁(yè)面自定義等功能筛圆。
使用教程:
https://docsite.js.org/zh-cn/docs/installation.html
開(kāi)源地址:
https://github.com/txd-team/docsite
七裂明、Android 平臺(tái)上的秒級(jí)編譯方案 Freeline
Freeline 可以充分利用緩存文件,在幾秒鐘內(nèi)迅速地對(duì)代碼的改動(dòng)進(jìn)行編譯并部署到設(shè)備上太援,有效地減少了日常開(kāi)發(fā)中的大量重新編譯與安裝的耗時(shí)闽晦。Freeline 最快捷的使用方法就是直接安裝 Android Studio 插件。
使用教程:
https://github.com/alibaba/freeline/blob/master/README-zh.md
開(kāi)源地址:
https://github.com/alibaba/freeline
八提岔、架構(gòu)可視化工具 AHAS
AHAS 為 K8s 等容器環(huán)境提供了架構(gòu)可視化的功能仙蛉,同時(shí),具有故障注入式高可用能力評(píng)測(cè)和一鍵流控降級(jí)等功能碱蒙,可以快速低成本的提升應(yīng)用可用性荠瘪。
使用場(chǎng)景:
服務(wù)化改造過(guò)程中,想精確的了解資源實(shí)例的構(gòu)成和交互情況赛惩,實(shí)現(xiàn)架構(gòu)的可視化哀墓?
想引入真實(shí)的故障場(chǎng)景和演練模型?
低門檻獲得流控喷兼、降級(jí)功能篮绰?
使用教程:
https://help.aliyun.com/document_detail/90323.html
工具地址:
https://www.aliyun.com/product/ahas
九、數(shù)據(jù)處理工具 EasyExcel
EasyExcel 是一個(gè)用來(lái)對(duì) Java 進(jìn)行解析季惯、生成 Excel 的框架吠各,它重寫(xiě)了 poi 對(duì) 07 版 Excel 的解析臀突,原本一個(gè) 3M 的 Excel 用 POI sax 需要 100M 左右內(nèi)存,EasyExcel 可降低到 KB 級(jí)別贾漏,并且再大的 excel 也不會(huì)出現(xiàn)內(nèi)存溢出的情況惧辈。03 版依賴 POI 的 sax 模式。在上層做了模型轉(zhuǎn)換的封裝磕瓷,讓使用者更加簡(jiǎn)單方便盒齿。
使用教程:
https://github.com/alibaba/easyexcel/blob/master/quickstart.md
開(kāi)源地址:
https://github.com/alibaba/easyexcel
十、iOS 類工具 HandyJSON
HandyJSON 是一個(gè)用于 Swift 語(yǔ)言中的 JSON 序列化 / 反序列化庫(kù)困食。與其他流行的 Swift JSON 庫(kù)相比边翁,HandyJSON 的特點(diǎn)是,它支持純 Swift 類硕盹,使用也簡(jiǎn)單符匾。它反序列化時(shí) (把 JSON 轉(zhuǎn)換為 Model) 不要求 Model 從 NSObject 繼承 (因?yàn)樗皇腔?KVC 機(jī)制),也不要求你為 Model 定義一個(gè) Mapping 函數(shù)瘩例。只要你定義好 Model 類啊胶,聲明它服從 HandyJSON 協(xié)議,HandyJSON 就能自行以各個(gè)屬性的屬性名為 Key垛贤,從 JSON 串中解析值焰坪。
使用教程:
https://github.com/alibaba/HandyJSON/blob/master/README_cn.md
開(kāi)源地址:
https://github.com/alibaba/HandyJSON
十一、Java 工具集 Dragonwell
Alibaba Dragonwell 是阿里巴巴內(nèi)部 OpenJDK 定制版 AJDK 的開(kāi)源版本聘惦, AJDK 為在線電商某饰,金融,物流做了結(jié)合業(yè)務(wù)場(chǎng)景的優(yōu)化善绎,運(yùn)行在超大規(guī)模的黔漂,100,000+ 服務(wù)器的阿里巴巴數(shù)據(jù)中心。 Alibaba Dragonwell 與 Java SE 標(biāo)準(zhǔn)兼容禀酱,目前僅支持 Linux/x86_64 平臺(tái)炬守。
使用教程:
https://github.com/alibaba/dragonwell8/wiki/ 阿里巴巴 Dragonwell8 用戶指南
開(kāi)源地址:
https://github.com/alibaba/dragonwell8
騰訊篇
一、Web 開(kāi)發(fā)基礎(chǔ)樣式庫(kù) WeUI
WeUI 是一套同微信原生視覺(jué)體驗(yàn)一致的基礎(chǔ)樣式庫(kù)剂跟,由微信官方設(shè)計(jì)團(tuán)隊(duì)為微信 Web 開(kāi)發(fā)量身設(shè)計(jì)减途,可以令用戶的使用感知更加統(tǒng)一。包含 button浩聋、cell观蜗、dialog臊恋、 progress衣洁、 toast、article抖仅、actionsheet坊夫、icon 等各式元素砖第。
使用文檔:
https://github.com/Tencent/weui/wiki
開(kāi)源地址:
https://github.com/Tencent/Weui
二、騰訊 Git 代碼管理平臺(tái)『工蜂』
騰訊工蜂是騰訊研發(fā)管理部自主研發(fā)的 Git 托管代碼平臺(tái)环凿,服務(wù)騰訊內(nèi)部數(shù)萬(wàn)名研發(fā)工程師梧兼,是騰訊內(nèi)部使用范圍最為廣泛的工程效率工具;在滿足基本開(kāi)發(fā)協(xié)作能力的基礎(chǔ)上智听,工蜂也提供了可定制化的 CodeReview羽杰、開(kāi)源協(xié)作和研發(fā)度量能力。
使用場(chǎng)景:
? 企業(yè)內(nèi)部研發(fā)管理到推、開(kāi)發(fā)協(xié)作考赛;
? 企業(yè)內(nèi)部開(kāi)源項(xiàng)目管理、協(xié)同共享莉测;
? 微信小程序版本開(kāi)發(fā)颜骤;
? 高校實(shí)驗(yàn)室,教學(xué)場(chǎng)景等
官網(wǎng)和文檔:
官網(wǎng):https://code.tencent.com/
文檔:https://code.tencent.com/help/productionDoc/project
三捣卤、騰訊敏捷協(xié)作平臺(tái) TAPD
TAPD 平臺(tái)是騰訊敏捷研發(fā)體系十余年的發(fā)展成果忍抽,為產(chǎn)品研發(fā)全生命周期提供解決方案,支持敏捷需求規(guī)劃董朝、迭代計(jì)劃跟蹤鸠项、測(cè)試與質(zhì)量保證、持續(xù)構(gòu)建交付等全過(guò)程研發(fā)實(shí)踐子姜。TAPD 于 2017 年對(duì)外服務(wù)锈锤,目前已幫助超過(guò) 10 萬(wàn)家企業(yè)提升研發(fā)效能,實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型升級(jí)闲询。
使用場(chǎng)景:
- 任務(wù)協(xié)作——適合不同場(chǎng)景的任務(wù)跟進(jìn)
- 敏捷研發(fā)——一站式敏捷研發(fā)全生命周期管理
- DevOps——一站式 DevOps 持續(xù)交付平臺(tái)
- 企業(yè)級(jí)研發(fā)數(shù)據(jù)度量——助力企業(yè)衡量效能久免、持續(xù)改進(jìn)
官網(wǎng):https://www.tapd.cn/
文檔:https://www.tapd.cn/help#page-wikidoc
四、一站式 DevOps 研發(fā)平臺(tái):騰訊 CI 平臺(tái)(藍(lán)盾)
藍(lán)盾(bk-ci)是一個(gè)開(kāi)源的持續(xù)集成和持續(xù)交付系統(tǒng)扭弧,從業(yè)務(wù)安全出發(fā)阎姥,貫穿產(chǎn)品研發(fā)、測(cè)試和運(yùn)營(yíng)的全生命周期鸽捻; 助力業(yè)務(wù)平滑過(guò)渡到敏捷研發(fā)模式呼巴,打造一站式研發(fā)運(yùn)營(yíng)體系,持續(xù)快速交付高質(zhì)量的產(chǎn)品御蒲。目前服務(wù)于騰訊 10000+ 開(kāi)發(fā)人員衣赶,現(xiàn)已成為騰訊公司指定的 CI 平臺(tái)。另外厚满,也是獲得行業(yè)至今為止唯一一個(gè) 4 級(jí)認(rèn)證的 DevOps 標(biāo)準(zhǔn)府瞄。藍(lán)盾提供了流水線、代碼庫(kù)碘箍、憑證管理遵馆、環(huán)境管理鲸郊、研發(fā)商店 5 大核心服務(wù),多重組合货邓,滿足企業(yè)不同場(chǎng)景的需求秆撮。
使用場(chǎng)景:
- 工程編譯
- 靜態(tài)代碼檢查
- 運(yùn)行測(cè)試用例,及時(shí)發(fā)現(xiàn) BUG
- 部署與發(fā)布
開(kāi)源地址:
https://github.com/Tencent/bk-ci
五换况、高性能职辨、多語(yǔ)言的微服務(wù)治理框架 Tars
Tars 是騰訊將其內(nèi)部使用的微服務(wù)框架 TAF(Total Application Framework)多年的實(shí)踐成果總結(jié)而成的開(kāi)源項(xiàng)目,在騰訊內(nèi)部有上百個(gè)產(chǎn)品使用戈二,服務(wù)內(nèi)部數(shù)千名 C++拨匆、Java、Golang挽拂、Node.Js 與 PHP 開(kāi)發(fā)者惭每。其包含一整套開(kāi)發(fā)框架與管理平臺(tái),兼顧多語(yǔ)言亏栈、易用性台腥、高性能與服務(wù)治理,理念是讓開(kāi)發(fā)更聚焦業(yè)務(wù)邏輯绒北,讓運(yùn)營(yíng)更高效黎侈。目前騰訊有 160 多個(gè)業(yè)務(wù)(如 QQ 瀏覽器、手機(jī) QQ闷游、手機(jī)游戲峻汉、應(yīng)用寶、微視脐往、天天快報(bào)等)在 10 萬(wàn)臺(tái)服務(wù)器上使用 TARS休吠。2017 年,Tars 在 GitHub 開(kāi)源业簿,目前 TarsCloud 擁有將近一萬(wàn) star瘤礁。2018 年,Tars 項(xiàng)目被捐獻(xiàn)給 Linux 開(kāi)源基金會(huì)梅尤。
使用場(chǎng)景:
- 高效支持后臺(tái)服務(wù)的開(kāi)發(fā)柜思、部署、發(fā)布巷燥、運(yùn)營(yíng)赡盘、監(jiān)控等;
- 提供一站式服務(wù)治理缰揪,包括服務(wù)注冊(cè)發(fā)現(xiàn)陨享、服務(wù)配置、負(fù)載均衡、過(guò)載保護(hù)霉咨、容災(zāi)容錯(cuò)等功能;
- 提供立體化監(jiān)控平臺(tái)拍屑,輕松獲取流量途戒、耗時(shí)、超時(shí)僵驰、異常喷斋、自定義等監(jiān)控?cái)?shù)據(jù)和歷史曲線。同時(shí)可進(jìn)行消息染色蒜茴,從而做有針對(duì)性的監(jiān)控星爪。
開(kāi)源地址:
輕量級(jí)服務(wù)注冊(cè)發(fā)行容錯(cuò)方案 TSeer
TSeer 是一套服務(wù)注冊(cè)發(fā)現(xiàn)容錯(cuò)方案,是對(duì) TARS 名字服務(wù)功能的輕量化粉私,對(duì)業(yè)務(wù)侵入性低顽腾,并且提供 Web 管理平臺(tái)。在騰訊內(nèi)部眾多業(yè)務(wù)中廣泛采用诺核,目前日均承載百億級(jí)的請(qǐng)求量抄肖。
開(kāi)源地址:
https://github.com/Tencent/tseer/
分布式 NoSQL 存儲(chǔ)系統(tǒng) DCache
DCache 是一個(gè)基于 TARS 框架開(kāi)發(fā)的分布式 NoSQL 存儲(chǔ)系統(tǒng),數(shù)據(jù)采用內(nèi)存存儲(chǔ)窖杀,支持連接后端 DB 實(shí)現(xiàn)數(shù)據(jù)持久化漓摩。DCache 采用集群模式,具有高擴(kuò)展入客、高可用的特點(diǎn)管毙。DCache 在騰訊內(nèi)部有大量業(yè)務(wù)使用,日訪問(wèn)總量超萬(wàn)億次桌硫。
開(kāi)源地址:
https://github.com/tencent/dcache
六夭咬、小程序組件化開(kāi)發(fā)框架 WePY
WePY 項(xiàng)目啟動(dòng)于 2017 年 11 月份, 是小程序最早的框架之一铆隘,是一款讓小程序支持組件化開(kāi)發(fā)的框架皱埠,通過(guò)預(yù)編譯的手段讓開(kāi)發(fā)者可以選擇自己喜歡的開(kāi)發(fā)風(fēng)格去開(kāi)發(fā)小程序】裕框架的細(xì)節(jié)優(yōu)化边器,Promise,Async Functions 的引入都是為了能讓開(kāi)發(fā)小程序項(xiàng)目變得更加簡(jiǎn)單托修,高效忘巧。
使用場(chǎng)景:
- 使用 Vue Observer 實(shí)現(xiàn)數(shù)據(jù)綁定
- 支持 Vue watch/computed/mixin 等特性
- 基于原生組件實(shí)現(xiàn)組件化開(kāi)發(fā)
- 支持 TypeScript
開(kāi)源地址:
https://github.com/Tencent/wepy
七、騰訊自動(dòng)化測(cè)試中臺(tái) QTA
QTA 是面向多種平臺(tái)(包括 Android睦刃、iOS砚嘴、Windows、MacOS、Web际长、小程序耸采、后臺(tái)服務(wù)和云原生應(yīng)用等)的自動(dòng)化測(cè)試服務(wù)平臺(tái),致力于幫助業(yè)務(wù)研發(fā)團(tuán)隊(duì)開(kāi)展和落地自動(dòng)化測(cè)試工育,提供包括自動(dòng)化測(cè)試用例管理和數(shù)據(jù)分析虾宇、分布式測(cè)試執(zhí)行、線上測(cè)試報(bào)告和數(shù)據(jù)可視化如绸、測(cè)試執(zhí)行度量分析嘱朽、測(cè)試資源管理等功能。
QT4A怔接,UI 自動(dòng)化測(cè)試 for Android:
https://github.com/Tencent/QT4A
QT4i搪泳,UI 自動(dòng)化測(cè)試 for iOS:
https://github.com/Tencent/QT4i
QT4W,UI 自動(dòng)化測(cè)試 for Web:
https://github.com/Tencent/QT4W
八扼脐、微信跨平臺(tái)跨業(yè)務(wù)基礎(chǔ)組件 Mars
Mars 是微信官方的終端基礎(chǔ)組件, 是一個(gè)業(yè)務(wù)性無(wú)關(guān), 平臺(tái)性無(wú)關(guān)岸军,使用 C++ 編寫(xiě)的基礎(chǔ)組件。目前已接入微信 Android瓦侮、iOS凛膏、Mac、Windows脏榆、WP猖毫、UWP 等客戶端。Mars 是一個(gè)結(jié)合移動(dòng) App 所設(shè)計(jì)的基于 socket 層的解決方案须喂,在網(wǎng)絡(luò)調(diào)優(yōu)方面有更好的可控性吁断,Mars 在微信用的應(yīng)用場(chǎng)景主要是:普通 CGI 請(qǐng)求類似收發(fā)消息收發(fā)語(yǔ)音,業(yè)務(wù) CGI 支付請(qǐng)求等坞生。
開(kāi)源地址:
https://github.com/Tencent/Mars
百度篇
一仔役、主打 C++ 平臺(tái)下的高性能 RPC 框架 baidu-rpc
baidu-rpc (簡(jiǎn)稱 brpc) 是一款主打 C++ 平臺(tái)下的高性能 RPC 框架,它上手簡(jiǎn)單是己,擴(kuò)展性上限又很高又兵,同時(shí)還具備完善的運(yùn)維和調(diào)試接口。目的是構(gòu)建一套百度內(nèi)統(tǒng)一的 RPC 框架卒废,那么靈活的擴(kuò)展性就是最基礎(chǔ)的需求沛厨。Baidu-rpc 在實(shí)現(xiàn)過(guò)程中非常注重機(jī)制與策略分離,支持了百度內(nèi)使用的大部分 RPC 協(xié)議摔认,方便無(wú)縫遷移業(yè)務(wù)到 baidu-rpc逆皮。除了協(xié)議之外,將名字服務(wù)参袱、負(fù)載均衡和認(rèn)證也采用了具體 policy 實(shí)現(xiàn)电谣,比如 bns 名字服務(wù)秽梅、rr 負(fù)載均衡。
使用場(chǎng)景:
- 搭建能被百度內(nèi)所有協(xié)議訪問(wèn)的服務(wù)剿牺,包括但不限于:標(biāo)準(zhǔn)協(xié)議,hulu-pbrpc,sofa-pbrpc,nova-pbrpc,public-pbrpc,ubrpc 和所有使用 nshead 的協(xié)議,http 和 https, 其中 json 可自動(dòng)轉(zhuǎn)化為 protobuf 消息企垦;
- 訪問(wèn)百度內(nèi)所有的服務(wù),包括但不限于:標(biāo)準(zhǔn)協(xié)議晒来,hulu-pbrpc钞诡,sofa-pbrpc,nova-pbrpc潜索,public-pbrpc臭增,ubrpc(包括 idl 或裸用 mcpack/compack),http(baidu::rpc::Channel 可以代替 curl)懂酱;
- 通過(guò) HTTP 調(diào)試服務(wù)竹习,或用 pprof 在線采樣服務(wù)的性能;
- 獲得更好的延時(shí)和吞吐列牺。
開(kāi)源地址:
https://github.com/apache/incubator-brpc
二整陌、高度個(gè)性化定制的數(shù)據(jù)可視化圖表 Echarts
ECharts 是一個(gè)純 Javascript 的圖表庫(kù),兼容當(dāng)前絕大部分瀏覽器(IE6/7/8/9/10/11瞎领,chrome泌辫,firefox,Safari 等)月培,底層依賴輕量級(jí)的 Canvas 類庫(kù) ZRender 绷跑,提供直觀生動(dòng)恬总、可交互、可高度個(gè)性化定制的數(shù)據(jù)可視化圖表殿遂。從而增強(qiáng)用戶對(duì)數(shù)據(jù)進(jìn)行挖掘和整合的能力,揭示出隱藏在數(shù)據(jù)背后的價(jià)值乙各。
使用場(chǎng)景:
- 使用 Canvas 或者 SVG 渲染墨礁;
- 在圖表中支持無(wú)障礙訪問(wèn);
- 使用 ECharts GL 實(shí)現(xiàn)基礎(chǔ)的三維可視化耳峦;
- 在微信小程序中使用 ECharts恩静;
- 多種數(shù)據(jù)格式無(wú)需轉(zhuǎn)換直接使用。
官網(wǎng)地址:
開(kāi)源地址:
https://github.com/apache/incubator-echarts
三蹲坷、深度學(xué)習(xí)平臺(tái)飛槳(PaddlePaddle)
飛槳(PaddlePaddle)是百度自主研發(fā)驶乾、集深度學(xué)習(xí)訓(xùn)練和預(yù)測(cè)框架、模型庫(kù)循签、工具組件轻掩、服務(wù)平臺(tái)等為一體的開(kāi)源深度學(xué)習(xí)平臺(tái)。目前 PaddlePaddle 開(kāi)源了 60 多個(gè)經(jīng)過(guò)真實(shí)業(yè)務(wù)場(chǎng)景驗(yàn)證的官方模型懦底,涵蓋視覺(jué)唇牧、NLP罕扎、語(yǔ)音和推薦等 AI 核心技術(shù)領(lǐng)域。
使用場(chǎng)景:
- 研究新的 AI 算法等深度學(xué)習(xí)技術(shù)丐重;
- 利用深度學(xué)習(xí)技術(shù)解決業(yè)務(wù)問(wèn)題腔召,例如百度地圖的精準(zhǔn)時(shí)間預(yù)估,百度 Feed 的視頻完全自動(dòng)分類扮惦,中國(guó)科學(xué)院遙感與數(shù)字地球研究所的基于遙感影像的目標(biāo)地物檢測(cè)臀蛛,領(lǐng)邦智能的快速完成不同零件質(zhì)檢的業(yè)務(wù)落地,北京林業(yè)大學(xué)的 AI 識(shí)蟲(chóng)達(dá)到專業(yè)人士識(shí)別準(zhǔn)確率且檢測(cè)周期從兩周縮短至一個(gè)小時(shí)等等崖蜜;
- 學(xué)習(xí)提升浊仆。
使用指南:
http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/index_cn.html?from=paddlenav
API 文檔:
http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/index_cn.html?from=paddlenav
開(kāi)源地址:
https://github.com/PaddlePaddle
四、基于 json 生成 MIS 頁(yè)面的前端工具 amis
amis 是百度 2019 年 4 月開(kāi)源的一款基于 json 生成 MIS 頁(yè)面的前端工具豫领,目前已用于內(nèi)部 amis 平臺(tái)抡柿,結(jié)合可視化工具及后端服務(wù),大大縮減了各類管理系統(tǒng)的開(kāi)發(fā)成本等恐,目前平臺(tái)內(nèi)部已累計(jì)創(chuàng)建了 1.4w+ 頁(yè)面洲劣,每天有 2700 人在使用。
使用場(chǎng)景:
- 可快速生成各種增刪改查頁(yè)面课蔬,直接配置接口和需要展示的字段信息即可囱稽;
- 要做復(fù)雜的表單驗(yàn)證?直接配置規(guī)則就可以二跋;
- 當(dāng)然還集成圖表功能战惊,用來(lái)做帶管理功能的報(bào)表系統(tǒng)也很適合。
使用教程:
https://baidu.github.io/amis/docs/getting-started
開(kāi)源地址:
五扎即、MVVM 的組件框架 San
San 是一個(gè) MVVM 的組件框架吞获,它體積小巧(15K)、兼容性好(IE6)铺遂、性能卓越衫哥、使用靈活。組件是 San 的基本單位襟锐,是獨(dú)立的數(shù)據(jù)撤逢、邏輯、視圖的封裝單元粮坞。從頁(yè)面角度看蚊荣,組件是 HTML 元素的擴(kuò)展;從功能模式角度看莫杈,組件是一個(gè) ViewModel互例。San 組件提供了完整的生命周期,與 WebComponent 的生命周期相符合筝闹。組件間是可嵌套的樹(shù)形關(guān)系媳叨,完整的支持了組件層級(jí)腥光、組件間的通信,方便組件間的數(shù)據(jù)流轉(zhuǎn)糊秆。San 的組件機(jī)制武福,可以有效支撐業(yè)務(wù)開(kāi)發(fā)上的組件化需求,對(duì)各種類型的 Web 應(yīng)用場(chǎng)景都有較強(qiáng)的適應(yīng)性痘番。
使用場(chǎng)景:
- 傳統(tǒng) Web 頁(yè)面捉片,部分區(qū)域需要在當(dāng)前頁(yè)面中響應(yīng)用戶操作;
- 單頁(yè) Web 應(yīng)用汞舱;
- 基于 Node.js 的服務(wù)端渲染伍纫;
- 同構(gòu) Web 應(yīng)用。
使用教程:
https://baidu.github.io/san/tutorial/start/
開(kāi)源地址:
六昂芜、Python 語(yǔ)言基礎(chǔ)庫(kù)——Cup
CUP 基礎(chǔ)庫(kù)是百度開(kāi)源的 Python 語(yǔ)言基礎(chǔ)庫(kù)莹规,致力將業(yè)務(wù)開(kāi)發(fā)從涉及底層操作、Util 操作類解放出來(lái)说铃,進(jìn)而更關(guān)注構(gòu)建上層業(yè)務(wù)邏輯访惜。目前 CUP 已涵蓋從零構(gòu)建一個(gè)服務(wù)底層支持的各個(gè)方面嘹履。
使用場(chǎng)景:
使用 CUP 輔助從 0 到 1 構(gòu)建一個(gè) Service腻扇,特別是底層結(jié)構(gòu);
使用 CUP 作為 Utils 底層庫(kù)協(xié)助業(yè)務(wù)代碼開(kāi)發(fā)砾嫉。
使用教程:
開(kāi)源地址:
七幼苛、一站式 DevOps 解決方案百度效率云
百度效率云是由百度工程效能部自主研發(fā)的一站式 DevOps 解決方案,在百度內(nèi)部每天服務(wù) 10000+ 工程師焕刮、產(chǎn)品經(jīng)理的研發(fā)協(xié)作舶沿;每天執(zhí)行 70000+ 次的構(gòu)建、30000+ 次的持續(xù)集成配并;每周清掃 3000+ 的代碼高危漏洞括荡。
百度效率云包括四大平臺(tái): 專注產(chǎn)品和項(xiàng)目管理的 icafe 平臺(tái),專注代碼托管和協(xié)同開(kāi)發(fā)的 icode 平臺(tái)溉旋,專注 CI/CD 的 ipipe 平臺(tái)以及構(gòu)建產(chǎn)物管理平臺(tái) iRepo畸冲。
使用場(chǎng)景:
- 企業(yè)內(nèi)部的軟件研發(fā)管理,企業(yè)間項(xiàng)目協(xié)同观腊;
- 高校實(shí)驗(yàn)室邑闲,教學(xué)場(chǎng)景;
- 云原生應(yīng)用開(kāi)發(fā)梧油;
- AI 服務(wù)應(yīng)用開(kāi)發(fā)苫耸;
- 代碼安全掃描、漏斗掃描儡陨。
使用教程:
文檔:https://cloud.baidu.com/doc/XLY/index.html
視頻:http://abcxueyuan.cloud.baidu.com/#/course_detail?id=14927&courseId=14927
工具地址:
https://cloud.baidu.com/product/xly.html
結(jié)語(yǔ)
程序員的世界里褪子,語(yǔ)言多量淌,框架更多,想要從多如牛毛的開(kāi)發(fā)工具中找到好用的輪子并不容易嫌褪。通過(guò)本文类少,我們盤點(diǎn)了 BAT 大廠程序員們常用的開(kāi)發(fā)工具,這其中不少工具也已開(kāi)源渔扎,你可以很方便地在 GitHub 上找到這些工具并下載使用硫狞。