Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bug撲滅作戦

2,112 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Bug撲滅作戦

  1. 1. Bug撲滅作戦!
  2. 2. 自己紹介 <ul><li>TwitterID </li><ul><ul><li>hayabusa333 </li></ul></ul><li>興味があること </li><ul><ul><li>OS周りとか下層 </li></ul></ul><li>現在のお仕事 </li><ul><ul><li>スマフォ関係をやってます </li></ul></ul></ul>
  3. 3. 注意 <ul>今回はアニメネタが含まれています。 外部の勉強会でも、結構な頻度で 出てくるので、今回はそのようなノリで 作ってみました。 分からない場合は適当に合せていただけるとありがたいです。 </ul>
  4. 4. Bugの歴史 <ul><li>グレース・マレー・ホッパー氏が提唱? </li><ul><li>でも実は起源はチャールズ・バベッジ氏
  5. 5. による解析機関にまでさかのぼる
  6. 6. ホッパー氏の虫の発見も実は発見者は他の人
  7. 7. 「本物の『バグ』が発見された」と
  8. 8. 報告したのが真相 </li></ul></ul>
  9. 9. Bugとは! <ul><li>いらいらするもの
  10. 10. プログラマを悩ませるもの
  11. 11. どこにでも居るのに、どこに
  12. 12. 居るかわからない
  13. 13. 締め切り前に出たらプログラマが
  14. 14. 死ぬ
  15. 15. 品質に大問題! </li></ul>
  16. 16. Bugが多い場合 プログラマはどうなるのか!
  17. 17. Before
  18. 18. After
  19. 19. Bugは開発者を悩ませる存在! <ul><li>Bugを直すために開発者は労力を割かなければならない
  20. 20. 帰れない日々
  21. 21. いらいらする作業
  22. 22. 溜まっていくストレス
  23. 23. 溜まっていく仕事
  24. 24. 増える仕事時間 </li></ul>
  25. 25. プログラムの中のBugに負けないようにするためには、どうすれば良いか!
  26. 26. 我慢して、 気合いでのりきる?
  27. 27. 時代遅れすぎます!
  28. 28. じゃあ、どうすれば良いの? <ul><li>プログラムの書き方を改善
  29. 29. 良いツールを使う </li></ul>
  30. 30. プログラムの書き方 <ul><li>マジックナンバーを使わない
  31. 31. 変数はちゃんとした英語を使う
  32. 32. インデントは、きちんと守る
  33. 33. 1 関数に 1 つの機能
  34. 34. 1 クラスに 1 つの役割
  35. 35. メソッドは小さく保つ </li></ul>
  36. 36. 基本的なこと じゃないですか!
  37. 37. こんなことで、 ちゃんと改善できるの?
  38. 38. 逆に、こんな事も 出来てないと 駄目じゃないですか?
  39. 39. プログラムの書き方(上級編) <ul><li>良いソースコードをたくさん読む
  40. 40. ソースコードを書く
  41. 41. 壊して良いオモチャの作成
  42. 42. 新しい事を学ぶ
  43. 43. ドキュメントを常に最新にし続ける </li></ul>
  44. 44. 仕事以外の学習が 大切って結論になった…
  45. 45. 良いツールを使う?
  46. 46. printf デバック最高!!
  47. 47. だから 時代遅れすぎます!
  48. 48. プログラマのツール <ul><li>コンパイラ </li><ul><li>gcc   Eclipse   Visual Studio </li></ul><li>バージョン管理システム </li><ul><li>git   CVS   Subversion   Mercurial </li></ul><li>バグトラッキングシステム </li><ul><li>Trac  影舞  FogBugz </li></ul><li>メトリックス測定ツール </li><ul><li>SourceMonitor   CCFinderX   Cppcheck </li></ul><li>エディタ </li><ul><li>Vi   Emacs  …そして、戦争へ… </li></ul></ul>
  49. 49. ジョエル・テスト <ul><li>バージョン管理システムを使っているか?
  50. 50. 1オペレーションでビルドを行えるか?
  51. 51. 毎日ビルドを行っているか?
  52. 52. バグトラッキングシステムを持っているか?
  53. 53. 新しいコードを書くまえにバグを修正しているか?
  54. 54. 更新可能なスケジュール表を持っているか?
  55. 55. 仕様書を持っているか?
  56. 56. プログラマは静かな労働環境にあるか?
  57. 57. 買える範囲で一番良い開発ツールを使っているか?
  58. 58. テスト担当者はいるか?
  59. 59. プログラマを採用するときにコードを書かせるか?
  60. 60. 「廊下でユーザビリティテスト」を行っているか? </li></ul>
  61. 61. 今回は メトリックス測定ツールのお話をします。
  62. 62. SourceMonitor <ul><li>Verは3.2
  63. 63. ダウンロード </li><ul><li>http://www.campwoodsw.com/sourcemonitor.html </li></ul><li>コードの行数の計測
  64. 64. コメント行数の計測
  65. 65. ステートメント数の計測
  66. 66. 循環的複雑度の計測 </li></ul>
  67. 67. 計測してみた!
  68. 68. 基本的な HelloWorld さん <ul>#include <stdio.h> void main() { <ul><ul><li>/* コマンドプロンプトに出力する */
  69. 69. printf( &quot;HelloWorldn&quot; ); </li></ul></ul>} </ul>
  70. 70. 結果
  71. 71. 英語の説明 <ul><li>Functions </li><ul><li>関数の数 </li></ul><li>Average Statements per Function </li><ul><li>関数の中の論理行数の平均 </li></ul><li>Maximum Function Complexity </li><ul><li>複雑度の最大値 </li></ul><li>Maximum Block Depth </li><ul><li>関数の中のブロックのネスト数の最大値 </li></ul><li>Average Block Depth </li><ul><li>関数の中のブロックのネスト数の平均値 </li></ul><li>Average Complexity </li><ul><li>平均複雑度 </li></ul></ul>
  72. 72. 関数を追加してみた <ul>#include <stdio.h> void test(void); void main() { <ul>/* コマンドプロンプトに出力する */ printf( &quot;HelloWorldn&quot; ); </ul><ul>test(); </ul>} void test() { <ul>if( 1 ) { <ul>if( 1 ) { <ul>if( 1 ) { <ul>if( 1 ) { <ul>if( 1 ) { <ul>printf( &quot;1n&quot; ); </ul>}else{ <ul>printf( &quot;2n&quot; ); </ul>} </ul>} </ul>} </ul>} </ul>} </ul>} </ul>
  73. 73. 結果
  74. 74. 詳しく見てみた
  75. 75. まとめ <ul><li>見える化って大事!
  76. 76. ツールを使えば分かりやすい
  77. 77. クソースは撲滅しなければならない
  78. 78. ツールだけだと美しいコードは分からない
  79. 79. ソースコードを 愛 せよ
  80. 80. プログラマにとってコードが神
  81. 81. 便利なものはどんどん使っていきましょう! </li></ul>
  82. 82. 幸せな生活に戻れると良いね
  83. 83. おまけ
  84. 84. <ul><li>アニメネタが分からなかった人 </li><ul><li>外部の勉強会は、アニメネタを使わない人も多いです。
  85. 85. 分からなくても参加できますし、楽しいので参加してみましょう </li></ul><li>アニメネタが分かった人へ </li><ul><li>外部の勉強会と言っても、このようなフランクなノリで、面白いです。
  86. 86. 怖くないですし、楽しいので参加してみましょう </li></ul></ul>
  87. 87. ご清聴ありがとうございました

×