hachioji.pm #25
TRANSCRIPT
![Page 1: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/1.jpg)
id: hondallica ( http://sukuna.net/ )
Hachioji.pm #25
![Page 2: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/2.jpg)
じこしょうかい
id:hondallica(ホンダリカ)本田でもホンでもお好きにお呼びください。
職業:Heavymetal Programmer
近況:Web系➡インフラ系にドナドナ
Hachioji.pm参加者 Twitterリストhttps://twitter.com/hondallica/hachiojipm
![Page 3: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/3.jpg)
テーマテスト
![Page 4: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/4.jpg)
日常
上司「ツール作って」私「つくりました」
別の日
上司「ツール作って」私「つくりました」
↑これの繰り返し
![Page 5: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/5.jpg)
問題
・時間がなく、場当たり的なコーディング・似た処理のプログラムが多い・無駄にプログラムファイルが増える・知らぬ間にコードやデータを変更される・テストがない➡テストコードの書き方とかテスト技法が わからなくて、手を付けない自分
![Page 6: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/6.jpg)
改善案
・時間がなく、場当たり的なコーディング・似た処理のプログラムが多い・無駄にプログラムファイルが増える➡モジュール化
・知らぬ間にコードやデータを変更される・テストがない➡とにかくテストコード書く
![Page 7: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/7.jpg)
テストとツールのコードを
一緒にすればいいんじゃね?
![Page 8: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/8.jpg)
モジュールツクール
![Page 9: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/9.jpg)
テストコードにツールの処理を書く
一気に書かずに1行ずつ進める。
![Page 10: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/10.jpg)
テストを走らせる
Testament.pmにnewがないので失敗
![Page 11: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/11.jpg)
Testament.pmを書く
newを実装
![Page 12: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/12.jpg)
再度テストを走らせる
テストは通る。けど自分でテストは追加してない。
![Page 13: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/13.jpg)
テストを追加する
$testamentが本当にTestamentなのかテスト
![Page 14: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/14.jpg)
こんな調子で実装を進めます
Testamentのサイトをgetするための処理を追加
![Page 15: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/15.jpg)
こんな調子で実装を進めます
Testament.pmも実装
![Page 16: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/16.jpg)
各テストに名前を付ける
テスト名が各処理のコメントを兼ねる
![Page 17: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/17.jpg)
proveにvオプションつければ
テスト結果と処理のログになる
![Page 18: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/18.jpg)
完成後
定期的に動かすツールはバッチファイルを作ってタスクスケジューラに登録します。
▼testament.batcd Testamentprove -Ilib
ツールの実行自体がテスト
![Page 19: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/19.jpg)
まとめ
➡モジュール化が(ある程度)強制される ➡ツールの乱造が減った➡テストとツールのソースが1つになる
➡テストを書きたくなる(これデカイ) ➡okとかisの追加はそんなに手間じゃない
➡テスト名がコメント ➡printデバッグが減った
➡ツールの実行=テスト ➡「何もしてないのに壊れた」を見抜ける
![Page 20: Hachioji.pm #25](https://reader030.vdocuments.net/reader030/viewer/2022032420/55a503671a28abe3248b46f5/html5/thumbnails/20.jpg)
The End