关于DEBUG的一点体会
目錄
- 1. 看待問題
- 2. 為什么要debug
- 3. 我理解的問題定位能力
- 4. debug能力模型的4個層級
- 5. 小結與擴展
1. 看待問題
遇到更高級的bug,解決更重要的問題,是開發同學的迭代生活。
遇到問題、分析問題、定位問題、并尋求優雅的方式方法解決問題,為我們不斷成長提供了素材。
2. 為什么要debug
bug在所難免。問題在于怎么減少不必要的bug,以及快速解決問題!
- 提升個人技術素養,最大限度減少bug,降低版本交付風險。面向對象能力、UT能力等基本功最應該重視和掌握。
- 另一方面,bug在于難免。要積累一些解決問題的套路和方法。
3. 我理解的問題定位能力
debug能力其實就是定位問題的能力。那如何提升自己定位問題的能力?
- 首先,對業務邏輯以及數據交互流程應該有清晰的了解。
- 其次,對所涉及的技術知識、基本原理有一定的認識,積累一些所謂的“坑”。
- 再次,針對具體的業務場景及其技術應用,積累一些工具方法,提升效率。
4. debug能力模型的4個層級
L1(入門級) 只會查看堆棧
"① 只會通過日志打印、查看堆棧信息定位問題"
補充:熟悉日志記錄框架,代碼中日志記錄符合可審計的基本要求。
L2(初級) 基礎調試
"① 可以通過IDE的可視化方法進行單步調試、斷點設置等手段定位問題
② 了解JVM的運行機制,了解其中線程調度、垃圾回收、JMM、GC的優化策略等
③ 了解Eclipse或JDB調試原理
④ 了解jstack,jmap,jstat工具原理,并能定位簡單的性能問題(GC、同步、I/O、代碼執行性能等)"
L3(中級) 中級調試
"① 精通JVM的運行機制,了解其中線程調度、垃圾回收、JMM、GC的優化策略等
② 精通Eclipse或JDB調試原理
③ 能熟練的使用Eclipse或JDB定位問題,進行遠程調試
④ 熟練掌握jstack,jmap,jstat等工具,能定位中等難度的性能問題
⑤ 了解其他的性能調優分析工具及方法:OQL、Visual VM、Java Flight Recorder等
⑥ 輔導低級別員工進行調試,使用調試工具"
L4(高級) 高級調試
"① 可以通過JDB附加進程,調試定位問題
② 精通JAVA調試原理,熟練掌握jstack,jmap,jstat等工具,能定位高難度的性能問題
③ 熟練掌握其他的性能調優分析工具及方法:OQL、Visual VM、Java Flight Recorder等
④ 能承擔部門級調試技術賦能"
5. 小結與擴展
從問題定位的場景來看,或許也可以分為迭代開發中的debug和線上問題的攻關定位。
迭代開發中的debug調試方法:
1. 本地斷點調試
2. 服務器上遠程調試
3. 日志查看:業務日志、數據庫日志、操作系統日志
4. JVM堆棧信息
線上問題定位方法:
1. 日志采集與查看
2. 堆dump信息,GC日志、堆棧信息
本文對debug能力的理解做簡要記錄。寫在文末:
- 重視java基礎/OO能力/UT能力等基礎,注重編碼質量
- 積累項目公共組件和基本框架流程的理論和實踐經驗
- 具體問題具體分析
轉載于:https://www.cnblogs.com/eaglediao/p/9333619.html
總結
以上是生活随笔為你收集整理的关于DEBUG的一点体会的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Solr分组聚合查询之Group
- 下一篇: Typescript尝试