工欲善其事,必先利其器
環境
- jdk1.8
- IntelliJ IDEA
1.靜態代碼檢查
1.1工具
- 阿里代碼規范檢測工具
安裝教程:阿里代碼規范檢查工具
1.2規范等級
在 Snoar 中對代碼規則有五個級別,這是前三個:崩潰/嚴重/重要 ,也就是說前兩級別是必須要處理掉的。
Blocker:
即系統無法執行、崩潰或嚴重資源不足、應用模塊無法啟動或異常退出、無法測試、造成系統不穩定。
嚴重花屏、內存泄漏、用戶數據丟失或破壞、系統崩潰/死機/凍結、模塊無法啟動或異常退出、嚴重的數值計算錯誤、功能設計與需求嚴重不符、其它導致無法測試的錯誤, 如服務器500錯誤
Critical
即影響系統功能或操作,主要功能存在嚴重缺陷,但不會影響到系統穩定性。
功能未實現、功能錯誤、系統刷新錯誤、數據通訊錯誤、輕微的數值計算錯誤、影響功能及界面的錯誤字或拼寫錯誤、安全性問題
Major
即界面、性能缺陷、兼容性。操作界面錯誤(包括數據窗口內列名定義、含義是否一致)、邊界條件下錯誤、提示信息錯誤(包括未給出信息、信息提示錯誤等)、長時間操作無進度提示、系統未優化(性能問題)、光標跳轉設置不好,鼠標(光標)定位錯誤、兼容性問題
Minor/Trivial
即易用性及建議性問題。界面格式等不規范、輔助說明描述不清楚、操作時未給用戶提示、可輸入區域和只讀區域沒有明顯的區分標志、個別不影響產品理解的錯別字、文字排列不整齊等一些小問題
1.3阿里開發手冊
下載地址:https://www.lanzous.com/i4jauib
密碼 : 9tz4
2.代碼優化
2.1工具
JProfiler 安裝教程:https://blog.csdn.net/wytocsdn/article/details/79258247
2.2從哪些方面:結構&效率
百度了一下,如下:
(1)優化算法時間復雜度。
(2)減少冗余數據。
(3)合理使用 copy 與 deepcopy。
(4)使用 dict 或 set 查找元素。
(5)合理使用生成器(generator)和 yield
(6)優化循環。
(7)優化包含多個判斷表達式的順序。
(8)使用join合並迭代器中的字符串。
(9)選擇合適的格式化字符方式。
(10)不借助中間變量交換兩個變量的值。
(11)使用 if is。
(12)使用級聯比較 x < y < z。
(13)while 1 比 while True 更快。
(14)使用**而不是 pow。
(15)使用 cProfile, cStringIO 和 cPickle 等用 c 實現相同功能(分別對應profile, StringIO, pickle) 的包。
(16)使用最佳的反序列化方式。
(17)使用 C 擴展(Extension)。
(18)並行編程。
(19)終級大殺器:PyPy。
(20)使用性能分析工具。參考博文:https://blog.csdn.net/q911137905/article/details/90142984
個人覺得:
-
結構:盡量遵守七大OO設計原則,可以學習一下Gof23(設計模式)。
-
效率:算法,優化循環,減少對象創建,多線程,不要寫慢SQL。