読者です 読者をやめる 読者になる 読者になる

tanaka51のブログ

http://blog.tanaka51.jp に移転しました

第1回 The RSpec Book 読書会 をやりました

勉強会

The RSpec Book の 日本語訳が出版されました。
実は、RSpec の本ってあまり無いのでは?
という訳で、タイトルに釣られて買いました。

The RSpec Book (Professional Ruby Series)

The RSpec Book (Professional Ruby Series)

そうしましたら、弊社の笠間さんも同時に買っていました。
それなら、という事で2人で読書会をすることになり、今週の月曜日に、第1回目の読書会を行いました。

読書会の事をかく前に、この本の概要を3行でまとめたいと思います。

  • RSpec の本ではない
  • Cucmber の本でもない
  • BDDを学ぶ為の本

まえがきにはこう書いてあります。

まんまと引っかかりましたね。RSpecの本だと思って手に取ったのでしょう。

これらのページを呼んでいるときに、ミームがこっそりと頭の中に忍び込みます。プログラミング手法に関するすべてのものを変えてしまいそうな可能性を秘めたミームです。

このミームの正体は何でしょうか。(中略)ミームとは、クラフトマンシップです。

このまえがきを読むと、胸が熱くなってきます :)

そしてこの本の注意事項としては、若干情報が古い事があげられます。
例えば、今は webrat より capybara を使う事が多いそうです。(ねずみ繋がりらしい!)
日本語訳になるのを待っていると、なかなか新しい情報を手に入れるのは難しそうです。
英語の本を積極的に読んでいく方が良いですね。
なので、個人的には BDD の心を学ぶ目的で読み進めています。


さて、読書会のスタイルとしては、交互に音読しつつ、必要そうな所で写経しつつ、という形でやってます。
何か良い読書会方法があればご教授いただきたいです :)

今回は、Capter1 「概要」と、 Capter2 「Hello RSpec」 を読みました。
これらは、Part1 「RSpec と Cucumber を使うための準備」の一部となっています。

Chapter1 は、TDD、BDD、RSpec、Cucumber、BDD サイクル について、簡単な説明が書かれていました。
以下、要約です。

  • アジャイル界隈で発展してきた TDD を、より推し進める形で、BDD が出来た
  • BDD とは、振る舞い駆動開発のことで、振る舞いを先に定義し、それに対して実装を行うもの
  • BDD の目的は、"そのソフトウェアが使われる状況を説明するための言語を単純化することで、コミュニケーションを後押しすること"
  • BDD の考え方を Ruby の Test に取り入れ発展させたものが RSpec
  • 誰でも読めるような形でかかれたものを、そのままテストに使えるようにと開発されたものが Cucumber
  • 実際の開発では、Cucumber でユーザーストーリを書いて実装し、実装の細かな部分を RSpec で書いていく
  • 上記の開発では TDD のサイクルである、Red/Green/Refactor で進める

Capter2 は、RSpec と Cucumber のインストール、Hello, World! の実装を、テスト→実装の形で行います。
この章の目的はそれぞれの環境構築と、使い方に触れるだけなので、リファクタリングはしていないです。
実際に写経し、動作確認を行いました。


次回の開催は 3/12(月) に株式会社万葉のオフィスで 20:00 位から行う予定です。
次は第3章。
ここからしばらくは、実際に Cucumber と RSpec を使ってゲームをつくっていきます。
単純な実装がリファクタリング経て綺麗になっていく様はいつ見てもかっこいいですね。
そしてそれを支えるテストが既にあるという安心感は、実際に TDD をやってみると良く分かります。


もしこのエントリーを読んで参加されたい方がいらっしゃったら、@tanaka51 までお願いします。
特に、atend とかで募集をかけて大々的にやる予定はないです:p