阿里巴巴技术输出
一、阿里巴巴Java開發手冊
經過最近幾年的發展,阿里巴巴形成了良好的技術體系,阿里巴巴許多技術輸出影響著越來越多的程序開發者。有許多工具類的軟件、性能驗證、開發規范等等。
如果一個項目比較小那么有許多東西是可以不考慮的,而且,涉及的開發人員也不會太多,但是如果是一個大型的項目,且開發人員很多時,各個模塊組合成一個大型系統時,就會有許許多多的因素在影響整個項目。所以,阿里巴巴制定了涵蓋編程規約、異常日志、單元測試、安全規約、MySQL數據庫、工程規約、設計規約等7大維度的開發規范——《阿里巴巴Java開發手冊》。
經過幾年的不斷完善,并經歷了多次大規模一線實戰檢驗,現在已經更新到1.4.0版本。(2018年6月更新)
下載地址如下:
鏈接:https://pan.baidu.com/s/1UPag-tGn_zKsTssvG0zkVA
提取碼:zyf1
解壓密碼:123
或者GitHub上的地址:(包含開發規約插件)
https://github.com/alibaba/p3c.git
主要的更新節點如下:
2016年3月,由阿里研發效能事業部云效高級技術專家孤盡首次發布在ATA(阿里內部技術同學華山論劍處);
2017年2月,首次對外公開;
2017年9月,正式版發布。
2017年10月,在杭州云棲大會《研發效能峰會》發布;
2018年6月,新增16條設計規約!
2018年10月,升級為一本書進行出版:《碼出高效:Java 開發手冊》在杭州云棲大會《開發者生態峰會》上正式發布,并宣布將所有收益捐贈于技術公益項目“83行代碼計劃”。
關于這份文檔,還有官方的小視頻:三位普通工程師與《手冊》的故事,有時間的話,可以看一下:http://cloud.video.taobao.com/play/u/2865628743/p/1/e/6/t/1/50293814709.mp4
在阿里云網站上提供線上體驗:
https://code.aliyun.com/
該線上工具提供的功能非常豐富,具體可以自己嘗試一下:
當然,使用云效也可體驗:https://www.aliyun.com/product/yunxiao
在如下網址上還提供了視頻教程,推薦看一下:
http://click.aliyun.com/m/1000019586/
IDEA插件與Eclipse插件使用指南可以參考如下鏈接:
http://click.aliyun.com/m/1000019587/
掃描插件詳情介紹鏈接:
http://click.aliyun.com/m/1000019588/
在阿里云大學上有編碼規范考試認證:(需要花錢認證考試的,兩次機會,而且有在線學習的,有興趣的可以看一下,會辦法電子證書的)
http://click.aliyun.com/m/1000019590/
阿里巴巴Java開發規約挑戰賽:
http://click.aliyun.com/m/1000019591/
挑戰賽說明:
答題開始即開始計時,中途不可暫停,如超時則自動提交
1、考試共 (5) 道題,總分100分,及格分數60分
2、考試需在(10分鐘)內交卷,過程中無法暫停,請提前安排好時間;如未及時交卷,則本次考試作廢
以上鏈接大部分出自阿里云,有時間可以經常關注一下這個網站,會對自己編碼水平的提高會有比較大的幫助。
二、Java 線上診斷工具 Arthas
在以下幾個場景中如何解決:
? 這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception?
? 我改的代碼為什么沒有執行到?難道是我沒 commit?分支搞錯了?
? 遇到問題無法在線上 debug,難道只能通過加日志再重新發布嗎?
? 線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
? 是否有一個全局視角來查看系統的運行狀況?
? 有什么辦法可以監控到 JVM 的實時運行狀態?
利用Arthas再好不過了,采用命令行交互模式,同時提供豐富的 Tab 自動補全功能,無需重啟,動態跟蹤Java代碼,實時監控JVM狀態,進一步方便進行問題的定位和診斷。
使用教程:
基礎教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics
Github: https://github.com/alibaba/arthas
文檔: https://alibaba.github.io/arthas/
進階教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced
對于以上提供的教程都是中文版的,編寫風格很好,而且簡單易懂,值得推薦。
值得一提的是,在啟動時可以指定被暴露的target-ip、telnet-port、http-port,在不指定以上參數時,是不能直接遠程連接的。默認啟動的方式,只能本地監控。而且,這里的target-ip指的是服務所在的IP地址,這個地址是暴露給別人用的。
在arthas的遠程監控中如果遇到“Connection refuse”錯誤,要先確認這個端口是否被防火墻屏蔽。在防火墻沒有屏蔽這個端口的情況下,還有一個可能是target-ip參數指定錯誤。它需要被指定為外能訪問的本機ip,不指定或者指定為127.0.0.1都有可能導致“Connection refuse”錯誤。
幾個比較好說明博客地址:
https://my.oschina.net/Rayn/blog/2054773
https://www.cnblogs.com/theRhyme/p/10659265.html
https://blog.csdn.net/lsy0903/article/details/94184008#Dashboard_76
三、數據庫連接池 Druid
相信許多公司都已經在使用了該連接池了,Druid 是 Java 語言下的數據庫連接池,它能夠提供強大的監控和擴展功能。
使用教程:https://github.com/alibaba/druid/wiki/常見問題
獲取方式:(開源) http://central.maven.org/maven2/com/alibaba/druid/
具體的使用和注意事項會在另外的博客上寫明。
四、應用實時監控工具 ARMS
在以下場景下的解決方案——ARMS(目前收費)
? 晚上 10 點收到 37 條報警信息,你卻無從下手?
? 當我們發現問題的時候,客戶/業務方已經發起投訴?
? 每個月花幾十萬買服務器,卻無法保障用戶體驗?
提供前端、應用、自定義監控 3 類監控選項,可快速構建實時的應用性能和業務監控能力。
使用教程:
前端監控接入:https://help.aliyun.com/document_detail/106086.html
應用監控接入:https://help.aliyun.com/document_detail/63796.html
自定義監控:https://help.aliyun.com/document_detail/47474.html
由于目前是收費的,本人暫時沒有研究過,只看過別人在使用過。不過只要是分布式微服務系統架構,都會有自己的實時監控系統(往往公司自行開發)。
五、性能測試工具 PTS
對于后端開發、測試人員用的比較多的。PTS 可以模擬大量用戶訪問業務的場景,任務隨時發起,免去搭建和維護成本,支持 JMeter 腳本轉化為 PTS 壓測,同樣支持原生 JMeter 引擎進行壓測。
但是,該工具是收費的(6個月628元)。
使用教程: https://help.aliyun.com/document_detail/70290.html
本人沒有仔細研究過,只看過別人使用。當然,對于一個項目公司而言,肯定會有一套自己的測試系統。(如果選用PTS這點費用肯定也不算什么)
官網地址:https://www.aliyun.com/product/pts,官網上提供了資料已經很全了。
六、云效開發者工具 KT
KT 可以簡化在 Kubernetes 下進行聯調測試的復雜度,提高基于 Kubernetes 的研發效率。
使用教程: https://yq.aliyun.com/articles/690519
該工具是免費的,很值得使用和研究的工具。
工具地址:https://yq.aliyun.com/download/3393
七、架構可視化工具 AHAS
現在的開發基本上都是基于微服務化了,在以下場景中如何清晰的了解架構情況呢:
? 服務化改造過程中,想精確的了解資源實例的構成和交互情況,實現架構的可視化?
? 想引入真實的故障場景和演練模型?
? 低門檻獲得流控、降級功能?
AHAS為 K8s 等容器環境提供了架構可視化的功能,同時,具有故障注入式高可用能力評測和一鍵流控降級等功能,可以快速低成本的提升應用可用性。
目前大部分公司都是基于Spring全家桶二次開發的自己微服務分布式框架,可能會開發自己的流量控制、降級功能,可以參考以下這個工具。(該工具是免費的)
使用教程: https://help.aliyun.com/document_detail/90323.html
獲取方式:https://www.aliyun.com/product/ahas
八、數據處理工具 EasyExcel
在以前的一個項目中要操作Excel,當時還是使用了jxl技術,雖然也可以完成大部分功能,但是從性能角度看,利用poi技術可能會好點(數據量較大時較為明顯,本人沒有實際做過對比,只是從網上看到的)。阿里出的EasyExcel 是一個用來對 Java 進行解析、生成 Excel 的框架,它重寫了 poi 對 07 版 Excel 的解析,原本一個 3M 的 Excel 用 POI sax 需要 100M 左右內存,EasyExcel 可降低到 KB 級別,并且再大的 excel 也不會出現內存溢出的情況。03 版依賴 POI 的 sax 模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。
使用教程: https://github.com/alibaba/easyexcel/blob/master/quickstart.md
獲取方式(免費開源): https://github.com/alibaba/easyexcel
我簡單試了下,性能還是不錯的,以后操作Excel首選。
附:幾個總結比較好的網站
最具權威的網站:
https://yq.aliyun.com/opensource?spm=5176.8279002.minheadermenu.12
https://www.cnblogs.com/lidabo/p/9087760.html
https://www.oschina.net/project/alibaba/
總結
- 上一篇: JSON数据转EXCEL
- 下一篇: 注塑模介绍、设计中文语音多媒体教学光盘