20
id: hondallica ( http://sukuna.net/ ) Hachioji.pm #25

Hachioji.pm #25

Embed Size (px)

Citation preview

Page 1: Hachioji.pm #25

id: hondallica ( http://sukuna.net/ )

Hachioji.pm #25

Page 2: Hachioji.pm #25

じこしょうかい

id:hondallica(ホンダリカ)本田でもホンでもお好きにお呼びください。

職業:Heavymetal Programmer

近況:Web系➡インフラ系にドナドナ

Hachioji.pm参加者 Twitterリストhttps://twitter.com/hondallica/hachiojipm

Page 3: Hachioji.pm #25

テーマテスト

Page 4: Hachioji.pm #25

日常

上司「ツール作って」私「つくりました」

別の日

上司「ツール作って」私「つくりました」

↑これの繰り返し

Page 5: Hachioji.pm #25

問題

・時間がなく、場当たり的なコーディング・似た処理のプログラムが多い・無駄にプログラムファイルが増える・知らぬ間にコードやデータを変更される・テストがない➡テストコードの書き方とかテスト技法が わからなくて、手を付けない自分

Page 6: Hachioji.pm #25

改善案

・時間がなく、場当たり的なコーディング・似た処理のプログラムが多い・無駄にプログラムファイルが増える➡モジュール化

・知らぬ間にコードやデータを変更される・テストがない➡とにかくテストコード書く

Page 7: Hachioji.pm #25

テストとツールのコードを

一緒にすればいいんじゃね?

Page 8: Hachioji.pm #25

モジュールツクール

Page 9: Hachioji.pm #25

テストコードにツールの処理を書く

一気に書かずに1行ずつ進める。

Page 10: Hachioji.pm #25

テストを走らせる

Testament.pmにnewがないので失敗

Page 11: Hachioji.pm #25

Testament.pmを書く

newを実装

Page 12: Hachioji.pm #25

再度テストを走らせる

テストは通る。けど自分でテストは追加してない。

Page 13: Hachioji.pm #25

テストを追加する

$testamentが本当にTestamentなのかテスト

Page 14: Hachioji.pm #25

こんな調子で実装を進めます

Testamentのサイトをgetするための処理を追加

Page 15: Hachioji.pm #25

こんな調子で実装を進めます

Testament.pmも実装

Page 16: Hachioji.pm #25

各テストに名前を付ける

テスト名が各処理のコメントを兼ねる

Page 17: Hachioji.pm #25

proveにvオプションつければ

テスト結果と処理のログになる

Page 18: Hachioji.pm #25

完成後

定期的に動かすツールはバッチファイルを作ってタスクスケジューラに登録します。

▼testament.batcd Testamentprove -Ilib

ツールの実行自体がテスト

Page 19: Hachioji.pm #25

まとめ

➡モジュール化が(ある程度)強制される ➡ツールの乱造が減った➡テストとツールのソースが1つになる

 ➡テストを書きたくなる(これデカイ) ➡okとかisの追加はそんなに手間じゃない

 ➡テスト名がコメント ➡printデバッグが減った

➡ツールの実行=テスト ➡「何もしてないのに壊れた」を見抜ける

Page 20: Hachioji.pm #25

The End