SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Hachioji.pm #25




id: hondallica ( http://sukuna.net/ )
じこしょうかい

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




職業:Heavymetal Programmer

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

Hachioji.pm参加者 Twitterリストhttps://twitter.
com/hondallica/hachiojipm
テーマ
テスト
日常

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

別の日

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

↑これの繰り返し
問題

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

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

・知らぬ間にコードやデータを変更される
・テストがない
➡とにかくテストコード書く
テストとツールのコードを
一緒にすればいいんじゃね?
モジュールツクール
テストコードにツールの処理を書く




一気に書かずに1行ずつ進める。
テストを走らせる




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


newを実装
再度テストを走らせる




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




$testamentが本当にTestamentなのかテスト
こんな調子で実装を進めます

Testamentのサイトをgetするための処理を追加
こんな調子で実装を進めます

Testament.pmも実装
各テストに名前を付ける

テスト名が各処理のコメントを兼ねる
proveにvオプションつければ

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

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

▼testament.bat
cd Testament
prove -Ilib

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

➡モジュール化が(ある程度)強制される
 ➡ツールの乱造が減った
➡テストとツールのソースが1つになる
 ➡テストを書きたくなる(これデカイ)
 ➡okとかisの追加はそんなに手間じゃない
 ➡テスト名がコメント
 ➡printデバッグが減った
➡ツールの実行=テスト
 ➡「何もしてないのに壊れた」を見抜ける
The End

Contenu connexe

Similaire à Hachioji.pm #25

Dev tools introduction
Dev tools introductionDev tools introduction
Dev tools introductionRyu Shindo
 
西区勉強会用スライド
西区勉強会用スライド西区勉強会用スライド
西区勉強会用スライドHiromi Kai
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものbasicinc_dev
 
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Taku Unno
 

Similaire à Hachioji.pm #25 (6)

Dev tools introduction
Dev tools introductionDev tools introduction
Dev tools introduction
 
西区勉強会用スライド
西区勉強会用スライド西区勉強会用スライド
西区勉強会用スライド
 
Chirp hackday
Chirp hackdayChirp hackday
Chirp hackday
 
E zuka-teck2019-7-11 LT
E zuka-teck2019-7-11 LTE zuka-teck2019-7-11 LT
E zuka-teck2019-7-11 LT
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たもの
 
Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2Aizu.LT::Tokyo #2
Aizu.LT::Tokyo #2
 

Hachioji.pm #25