完全に放置状態でした。
あ、でも勉強はしてました。
・vim(gvim)
・PHP
・xFrameworkPX
の。
本当はExtJs4に行きたいんだけど、 PHP初心者な自分にとってはまぁ、新しい言語なわけですし。
ひとまず、オライリーのカッコウ本をかってヨミヨミふむふむと。
せっかくなのでPHPUnitでの開発リズムってものも ためしてみるかーー。
っことで、TDDの本もかってヨミヨミふむふむと。
コレばかりは訓練になるのでコードをかかんとイカンですね。
ということを最近やってたのでブログを放置してたら 更新しねぇのかよ。
というツッコミが入ったので更新したまでです。はい。
ちっこいツールを試しに作って(PHP版のDataTierGeneratorもどき)
少しだけTDDの本見ながら体験した時のリズムでも載せておきます。
■テスト駆動開発のリズム
設計:
責務(そのクラスは何をしなくてはならないか)に
視点を置いて機能を切り出しクラスの切り分けをしてみました。
実装:
1:テスト環境にテストクラスを作ります。
一番小さい例だと、Writerクラスです。
Writerはファイルへの書き込みができなくてはならないので
テストクラスにはまず、
Writerをインスタンス化し、
writeし、
writeできたことを確認するコードを書きます。
(Readerクラスを作っておいてtestWriteAndReadとかにしてもいいのかもね)
評価する際の評価値で肝要なのはより具体的であるということです。
2:テストを実行します。
3:エラーが発生します。クラスが無いと言われます。
4:クラスを作成します。
5:テストを実行します。
6:エラーが発生します。メソッドが無いと言われます。
7:メソッドをひとまず、評価値がTrueに成るような値を返す実装で作成します。
8:テストが通ります。
9:複数の視点から評価します。(トライアンギュレーションというらしいです)
テストデータを変更して評価します。
10:エラーが発生します。
11:テストが通る実装を行います。
12:実装の重複を排除します。
13:類似パターンが2つ以上発生しそうなとき、抽象化できないかを考えます。
このサイクルを繰り返す。 です。
慣れてくると小さなテスト例えば2-6あたりをジャンプしたりして
疲れてると小さく刻んで安心してみたりと。
できるだけ本に書いてるように進めたかったんですが
なかなか難しく、でも、このリズムはやってみるとホント気持ちがいい。
と。 こんな感じでした。
■PHPUnit
PHPUnitはXAMPPにももともと??入ってるみたいだったんですが、
そのフォルダをリネームしておいて新規にインストールして使いました。
phpunit自体はphpunit.batというバッチファイルを実行して稼働させています。
パラメタでカバレッジ情報をHTMLファイル出力する設定にしています。
まだ使いこなせてませんが。
■Vimの設定
あと、vimのftpluginのphpに下記二行を追加して、テスト作っては
:w,mで実行してみたりとか、
クラス作っては
:w,lでLintで構文チェックさせてみたりとやってみてます。
nmap ,l :!C:\xampp\php\php.exe -l "%"
nmap ,m :!C:\xampp\php\phpunit.bat --coverage-html report "%"
ああ、はやくExtJs4に行きたい。
が、そのまえにDirectがグレイトなPXを勉強します、そもそもPXがメインに必要になるしね!!
あと、Vim体験でもかくかな。。。
あ、すげえ大切なこと書いてないじゃんか。
我らがcode:xの小堤さんがとうとう本をお出しになりましたよ。
#ExtJS4実践開発ガイド
これについはよみとちゅうだからまた今度。
ねむ。。
あ、でも勉強はしてました。
・vim(gvim)
・PHP
・xFrameworkPX
の。
本当はExtJs4に行きたいんだけど、 PHP初心者な自分にとってはまぁ、新しい言語なわけですし。
ひとまず、オライリーのカッコウ本をかってヨミヨミふむふむと。
せっかくなのでPHPUnitでの開発リズムってものも ためしてみるかーー。
っことで、TDDの本もかってヨミヨミふむふむと。
コレばかりは訓練になるのでコードをかかんとイカンですね。
ということを最近やってたのでブログを放置してたら 更新しねぇのかよ。
というツッコミが入ったので更新したまでです。はい。
ちっこいツールを試しに作って(PHP版のDataTierGeneratorもどき)
少しだけTDDの本見ながら体験した時のリズムでも載せておきます。
■テスト駆動開発のリズム
設計:
責務(そのクラスは何をしなくてはならないか)に
視点を置いて機能を切り出しクラスの切り分けをしてみました。
実装:
1:テスト環境にテストクラスを作ります。
一番小さい例だと、Writerクラスです。
Writerはファイルへの書き込みができなくてはならないので
テストクラスにはまず、
Writerをインスタンス化し、
writeし、
writeできたことを確認するコードを書きます。
(Readerクラスを作っておいてtestWriteAndReadとかにしてもいいのかもね)
評価する際の評価値で肝要なのはより具体的であるということです。
2:テストを実行します。
3:エラーが発生します。クラスが無いと言われます。
4:クラスを作成します。
5:テストを実行します。
6:エラーが発生します。メソッドが無いと言われます。
7:メソッドをひとまず、評価値がTrueに成るような値を返す実装で作成します。
8:テストが通ります。
9:複数の視点から評価します。(トライアンギュレーションというらしいです)
テストデータを変更して評価します。
10:エラーが発生します。
11:テストが通る実装を行います。
12:実装の重複を排除します。
13:類似パターンが2つ以上発生しそうなとき、抽象化できないかを考えます。
このサイクルを繰り返す。 です。
慣れてくると小さなテスト例えば2-6あたりをジャンプしたりして
疲れてると小さく刻んで安心してみたりと。
できるだけ本に書いてるように進めたかったんですが
なかなか難しく、でも、このリズムはやってみるとホント気持ちがいい。
と。 こんな感じでした。
■PHPUnit
PHPUnitはXAMPPにももともと??入ってるみたいだったんですが、
そのフォルダをリネームしておいて新規にインストールして使いました。
phpunit自体はphpunit.batというバッチファイルを実行して稼働させています。
パラメタでカバレッジ情報をHTMLファイル出力する設定にしています。
まだ使いこなせてませんが。
■Vimの設定
あと、vimのftpluginのphpに下記二行を追加して、テスト作っては
:w,mで実行してみたりとか、
クラス作っては
:w,lでLintで構文チェックさせてみたりとやってみてます。
nmap ,l :!C:\xampp\php\php.exe -l "%"