版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、技術(shù)創(chuàng)新,變革未來代碼靜態(tài)分析系統(tǒng)設計及實踐目錄代碼質(zhì)量管理是個大問題靜態(tài)分析+代碼評審的實踐學習和強調(diào),紅線和懲罰,100%的測試覆蓋率,和事后復盤并不夠有經(jīng)驗的程序員也會犯錯對代碼提要求很難監(jiān)督落實測試更多是驗證功能,很難檢測編碼缺陷代碼的快速變化使質(zhì)量更難管生產(chǎn)質(zhì)量是責任靠運維和事后復盤善后夠嗎?靜態(tài)分析工具:半智能的代碼分析機器人靜態(tài)分析輔助代碼評審自動化工具+流程才是未來Bug!Thx!Bug!投入大KPI不痛不癢使用主體和責任主體不一致一步登天想要終極AI代碼質(zhì)量改進工具、流程落地難Bug!No Thx!DevOps: 代碼質(zhì)量責任應該左移設計代碼開發(fā)代碼評審入庫測試發(fā)布非研發(fā)人員
2、主導,溝通成本高,推動修復周期長很難形成標準推動研發(fā)實施形成技術(shù)債,償債成本高代碼簽入前,研發(fā)人員有義務修復問題測試人員早期加入,更懂項目研發(fā)的情況,溝通成本低,加快上線能逐步形成好的編碼規(guī)范和最佳實踐檢查代碼風格問題挺準,但是 我warning都不看,還看這個?大多數(shù)開發(fā)人員眼中的靜態(tài)分析工具檢查邏輯問題好,但耗時長 還挺多誤報,想用而不敢用編譯器里的Errors and warnings自帶靜態(tài)分析的語言如Typescript, RustIDE里的智能提示代碼混淆和美化代碼交叉索引Eclipse等IDE中的一鍵重構(gòu)App市場的審核成功靜態(tài)分析應用代碼評審中的靜態(tài)分析針對該提交 代碼片段自
3、動觸發(fā)分析發(fā)現(xiàn)問題,拒絕代碼合并發(fā)起代碼提交,如Pull Request沒有問題,允許合入開發(fā)者代碼倉庫靜態(tài)代碼評審的樣子為何代碼評審階段?2K Bugs12K Warnings 225K Code Smell“找到幾萬個問題,沒法修”“這是以前的業(yè)務邏輯,不用修”“這別人寫的代碼,不關我事”大量報告引起不適剛寫的代碼立即自動掃描,程序員強迫使用 只體現(xiàn)新增代碼問題,責任邊界清晰評審流程多人督促漸進式開啟更多檢查器增量分析減少不適軟件工程師一天被邀請進行多次 代碼評審,這些都不是他們自身 的KPI一旦工期緊996,人工評審容易 變成走形式任務掛著還容易造成工程師焦慮降低工程師勞動強度大規(guī)模C/
4、C+靜態(tài)代碼評審系統(tǒng)搭建數(shù)千個活躍開發(fā)的代碼倉庫每天上千次代碼評審請求平均每次代碼評審小于50分鐘需要編譯C/C+代碼使用了定理證明器求解可行路徑(精確,耗時)能跨函數(shù)分析能處理指針使用有深度的代碼分析器做到快速和準確用盡量少機器完成一天幾千次分析每次分析10分鐘要能結(jié)束控制誤報并建立反饋和改進機制挑戰(zhàn):超大規(guī)模代碼倉庫項目平均40分鐘單機編譯時間 項目平均編譯代碼量超百萬行編譯的價值C/C+代碼邏輯受編 譯參數(shù)深度控制源代碼索引和統(tǒng)計提升開源靜態(tài)分析工 具分析質(zhì)量提高分析質(zhì)量測試項目 glog (谷歌的日志項目), 17個源文件。cppcheck不帶編譯分析:111個分析報告cppcheck
5、帶編譯分析:280個分析報告111 280不編譯編譯300250200150報告數(shù) 100500編譯流程融合靜態(tài)分析分布式編譯與分析大量使用緩存提升靜態(tài)分析的理論速度如何做到10分鐘反饋分析結(jié)果系統(tǒng)地改進分析時間編譯流程分析流程依賴關系分析分布式 編譯分布式 分析分布式鏈接跨模塊分析 報告整合緩存緩存緩存緩存硬核玩家:從理論上改進靜態(tài)分析能力PLDI2018: 去掉路徑 遍歷分析中的冗余ICSE2019:路徑遍歷內(nèi) 存泄漏分析的多項式算法需求2:誤報率要低方法1: 數(shù)據(jù)驅(qū)動的改進循環(huán)降低誤報率標注反饋優(yōu)化代碼掃描新增分析器淘汰分析器感知誤報率數(shù)據(jù)驅(qū)動的開發(fā)管理方法2: 高低搭配高危,誤報率偏高
6、的高價值檢查器 搭配其他誤報率低的檢查器避免重要問題被忽略的同時降低 “感知誤報率”降低感知誤報率方法3:易于理解的報告關鍵步驟高亮和行為解釋配套完善的文檔代碼交叉索引降低感知誤報率回憶下代碼評審 時最不能忍的事 是啥?對,就是 不能像在IDE里 面一樣查看符號 定義使用。代碼交叉索引方法4:Bug生命周期跟蹤精確查找類似Bug,利用標記數(shù)據(jù)排除潛在誤報通過修復率等參數(shù)對分析 器進行綜合評價降低感知誤報率降低感知誤報率方法5:防止誤標和作弊標記量,間隔時間,標記內(nèi)容用基線數(shù)據(jù)訓練模型用聚類和離群檢測找到違反者紅黑榜鼓勵參與者用數(shù)據(jù)風控的方式管理總結(jié):代碼評審中的靜態(tài)分析無需額外操作,不改變程序員習慣的流
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45111-2024保護層分析(LOPA)、安全完整性等級(SIL)定級和驗證質(zhì)量控制導則
- BIM工程師-全國《BIM應用技能資格》考前沖刺2
- 浙江省溫州市龍港市2024年中考數(shù)學二模試題附答案
- 電子政務提高公共服務效率
- 幼兒園大班數(shù)學測試題
- 高一化學教案:第二單元化學反應中的熱量
- 2024高中地理第1章區(qū)域地理環(huán)境與人類活動第4節(jié)第1課時資源跨區(qū)域調(diào)配精練含解析湘教版必修3
- 2024高中語文第6單元墨子蚜第1課兼愛訓練含解析新人教版選修先秦諸子蚜
- 2024高中語文第六單元文無定格貴在鮮活種樹郭橐駝傳作業(yè)含解析新人教版選修中國古代詩歌散文欣賞
- 2024高考化學一輪復習第一部分考點10氯及其化合物強化訓練含解析
- 2025湖北襄陽市12345政府熱線話務員招聘5人高頻重點提升(共500題)附帶答案詳解
- 2025年河北省職業(yè)院校技能大賽智能節(jié)水系統(tǒng)設計與安裝(高職組)考試題庫(含答案)
- 2024年下半年鄂州市城市發(fā)展投資控股集團限公司社會招聘【27人】易考易錯模擬試題(共500題)試卷后附參考答案
- GB/T 29498-2024木門窗通用技術(shù)要求
- 《職業(yè)院校與本科高校對口貫通分段培養(yǎng)協(xié)議書》
- 人教版(2024)英語七年級上冊單詞表
- 中醫(yī)養(yǎng)生產(chǎn)業(yè)現(xiàn)狀及發(fā)展趨勢分析
- 2023年浙江省溫州市中考數(shù)學真題含解析
- 司庫體系建設
- 居間合同范本解
- 機電傳動單向數(shù)控平臺-礦大-機械電子-有圖
評論
0/150
提交評論