Skip to content

Xpe2ndReadingAtEsm7

Fumihiko Kinoshita edited this page Sep 30, 2015 · 3 revisions

エクストリームプログラミング読書会@ESM#7

  • 日時: 2015年9月30日(水) 14:00-15:00
  • 場所: 永和システムマネジメント 和じゃスペース
  • 参加者: @kakutani, @fkino, @chibamem, @kunitoo, @aikyo02, @nsgc, @takiy33, @koic, @gissan, @onionSoup, @emattsan, @muryoimpl

『7章 主要プラクティス』のテストファーストプログラミング (Test-First Programming) 〜 7章の終わりまで の流れで進めました。

『7章 主要プラクティス』

テストファーストプログラミング (Test-First Programming)

  • 静的解析ツールの実行速度が遅すぎるなら1日に1回実行するとかでもよい。
  • 振る舞いが分からないときはどうやってテストを書くのか?
    • 書かなくてもよい。ワッと作って捨てる。『達人プログラマー』でいう「プロトタイプ」。
    • 【読書会後に追記】読書会の中では「曳光弾」というキーワードも出たが、「プロトタイプ」は使い捨て、「曳光弾」は最小限度のものだが完全なものであり、システム最終形の骨格の一部をなすものと区別されている (cf. 『達人プログラマー』P.52)。
  • テストの実行速度が重要であると感じた。10分かかると手元 (ローカルの開発PC) で動かすのは厳しい。全テストはCIで実行する。とはいえ、CIが50分かかるとかだと厳しい。CIでパラレルで実行させる方法があるが、その場合、本番環境では発生しないリソース競合に注意する必要がある。
  • テストを全部自動化することはできない。どこまで自動化するかは自分たちで決める。

インクリメンタルな設計 (Incremental Design)

  • 変更コストを下げるのが エクストリーム プログラミングたる所以。
  • インクリメンタルな設計をしないとすると、作り直して差し替えるになってしまう。しかし、通常はそのような話は通らない。
  • やり方のせいにしてはいけない。みんなが上手になればできるようになる。

それから……

  • 「プラクティスを うまく実践できるようになると 、XPの大きな恩恵が受けられる」という点がポイント。

次回

2015年10月14日(水) 14:00-15:00 に開催予定。『8章 始めてみよう』から再開する。