日々常々

ふつうのプログラマがあたりまえにしたいこと。

TDDBC 福岡 2日目 午前のメモ(TDD応用編、JavaScriptのテスト)

2日目午前中には和田さんの追加講演があり、TDD応用編としてTDDで現実に挑むと出てくる問題に対処する本の紹介と、JavaScriptのテストに関するお話とデモを見せてくれました。

テストの無いコードが既にたくさんある

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

持ってます。これ読んでると、テスト不可能に思えるコードも何とかなりそうに思えます。現実に存在するレガシーコードでもあらかたは適用できます。しかしこの本の内容ってどこかで見たような……見たことある訳だ…orz いやまぁそれだけ現実的って事ですよ。うん。TDDせずに後からテスト書くとこういう事態になります。後付テストには無理が出る。それでもテストできないわけじゃない、そう言う事です。

既にデータの入ったデータベースがある

データベース・リファクタリング

データベース・リファクタリング

  • 作者: スコット W アンブラー,ピラモド・サダラージ,梅澤真史,越智典子,小黒直樹
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2008/03/26
  • メディア: 単行本
  • 購入: 10人 クリック: 211回
  • この商品を含むブログ (53件) を見る
こんなのあったのか!早速注文……売り切れ。

データベースにデータが入っていることを理由に、データベースのリファクタリングを諦めてはいけません。データベースの構造、データもリファクタリングしなければならない。適切にリファクタリングを行わないとデータベースもレガシー化してしまう…のでしょうか。確かに付け足される新機能に対応するために歪になってしまったデータベースはそこかしこで見てきました。リファクタリング本なので、「リファクタリング」と同様に色々なテクニックに名前がつけられています。デザインパターンにも言える事ですが、名付けは重要ですねー。
驚いたのが、既にデータが入っていて運用されているデータベースに対してもリファクタリングが可能だと言う話。既にデータが入っている故に慎重で、一つ一つのリファクタリングが数ヶ月かかる場合もあったりするらしいです。

テストが脆い、テストが遅い

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series (Fowler))

mockを使うと脆くなる。テストが邪魔でリファクタリングがし辛い。リファクタリングを支援するはずのテストが、リファクタリングの邪魔をする。かと言って仕様寄せていくと、テストが遅くなる。実データだと遅くなる。テスト駆動を続けるとここにぶつかる。それらに対応するための「テスト設計に対するパターン本」との事。他のイベントでも何度か見たことがあって、読んでみたいなーと思っているんですけど、なかなか手が出ず…。何とか近いうちに読みたいもんです。

JavaScriptのテスト

js テスト放浪記のスライドでざっくりとJavaScriptのテストの話。PhantomJS(GUI無しで動くWebkitベースのJavaScript動作環境)を使ったJavaScriptのテストのデモを見せて頂けました。これ見て思ったんですが「今までのテストはテストと呼べない」です。私はWeb系業務システム開発がメインなので、JavaScriptを書くこともままあるわけですよ。コードを書くって事は当然テストが必要。そのテストをどうしてたかと言うと…alertなんですよね。それをテストなんて言っちゃうと失礼もいい所です。驚きでした。