Programming Methodology 18
今回は、実際にバグをつぶしていく過程を実演しながら、デバッグについて熱く語っていました。
- 配列の復習
- Debugging
- 役割
- Design -> Architect
- Coding -> Engineer
- Testing -> Vandal(プログラムを破壊しようと試みる)
- Debugging -> Detective(破壊された原因を捜査して修正する)
- Design -> Development -> Debugging -> Deployment
- 先の工程に行くほど、修正するのに10倍のコストがかかる
- Designの時点で見つけられるミスと比べると、Deploymentの時点で発見される問題は1000倍の負荷がかかってしまう
- Bugの種類
- bad values
- faulty logic
- unwarranted assumptions
- 回避するには
- simple
- systematic
- assumptions about problems
- critical(批判的にコードを読む)
- Don't panic!
- Debuggingの方法
- printlnを使う(メソッドや変数に対して)
- Unit Test
- EclipseでのDebuggingの実演
- BreakPointを指定する
- BreakPoint時点でのstackFrameが表示される
- 変数の中身が表示される
- 1step毎処理を進めてみる
- 役割