SlideShare ist ein Scribd-Unternehmen logo
1 von 96
Downloaden Sie, um offline zu lesen
ハイパーレガシーコード
  クリエイターだって
テストを捨てたい
13年5月19日日曜日
あんただれ
13年5月19日日曜日
名前:
瀬宮 新
職業:自宅警備員
 ハイパーレガシーコード
  クリエイター
13年5月19日日曜日
みなさん
13年5月19日日曜日
こんばんは
13年5月19日日曜日
家でコード書いてますか?
13年5月19日日曜日
では
13年5月19日日曜日
家でテストも書いてますか?
13年5月19日日曜日
13年5月19日日曜日
この前アプリ
書いてたんですよ
13年5月19日日曜日
本棚管理アプリ
13年5月19日日曜日
一般公開したい
マルチユーザ対応
13年5月19日日曜日
そうしたらコード
汚いんですよ
13年5月19日日曜日
どうにかしたい
13年5月19日日曜日
リファクタしよう
13年5月19日日曜日
コードをかえたので
13年5月19日日曜日
テストも変更しなきゃ
13年5月19日日曜日
テストがごちゃごちゃ
13年5月19日日曜日
質の低いテストが大量
13年5月19日日曜日
これはひどい
13年5月19日日曜日
しかし量は多い
13年5月19日日曜日
メッシュはバラバラ
13年5月19日日曜日
カバレッジもよくない
13年5月19日日曜日
どれを変更すれば・・・
13年5月19日日曜日
正直 激おこ
13年5月19日日曜日
どげんかせんと
13年5月19日日曜日
13年5月19日日曜日
過去の遺産
13年5月19日日曜日
過去の成果物のレガシー化
13年5月19日日曜日
そうだ
13年5月19日日曜日
ひどいから全部捨てよう
13年5月19日日曜日
実力も上がった
13年5月19日日曜日
今ならもっとうまくやれる
13年5月19日日曜日
変更部はコードを
リファイン
13年5月19日日曜日
テストコードも
ほぼ総入替
13年5月19日日曜日
あれだけ書いた
テストが無駄に
13年5月19日日曜日
MOTTAINAI
13年5月19日日曜日
13年5月19日日曜日
ところで諸君
13年5月19日日曜日
ユニットテストコードは
滅ぼすべきだ
13年5月19日日曜日
!?
13年5月19日日曜日
13年5月19日日曜日
そうじゃないんだ
13年5月19日日曜日
@t_wada も言っている
13年5月19日日曜日
実装が明白な場合は
テストコードは
書かなくてもよい
13年5月19日日曜日
つまり
実装が明白=簡単な実装
13年5月19日日曜日
簡単な実装=テスト書かない
複雑な実装=テスト書く
13年5月19日日曜日
・・・
13年5月19日日曜日
お前が思うのなら
そうなんだろ
お前の中では(ry
13年5月19日日曜日
そうじゃない
13年5月19日日曜日
そもそも
13年5月19日日曜日
簡単な実装=テスト書かない
複雑な実装=テスト書く
13年5月19日日曜日
この話の問題点
13年5月19日日曜日
境界があいまい
13年5月19日日曜日
簡単と複雑の境界って?
13年5月19日日曜日
さらに
13年5月19日日曜日
悪魔のささやき
13年5月19日日曜日
「締め切りが近い」
「最近徹夜続きで」
13年5月19日日曜日
「別にこのコード、
  テスト書かなくても、
いいよね?」
「だって簡単な実装だし」
13年5月19日日曜日
そして、炎上へ
13年5月19日日曜日
13年5月19日日曜日
テストの目的って何か
13年5月19日日曜日
不安をなくすこと
13年5月19日日曜日
(開発者目線)
13年5月19日日曜日
ではテストを書かなくても
不安を感じない実装とは?
13年5月19日日曜日
こんなの
13年5月19日日曜日
# 円の面積を計算する
def compute_area_of_circle(半径)
return 半径 * 半径 / 2
end
13年5月19日日曜日
あるいはこんなの
13年5月19日日曜日
# 宅配便の荷物の高さを計算する
def 荷物の高さを計算する
return 箱の高さ
end
13年5月19日日曜日
このレベルまでは大丈夫
# 宅配便の荷物の3辺の合計を計算する
def 荷物の辺の合計を計算する
return 高さ + 幅 + 奥行
end
13年5月19日日曜日
ここからは必要
def 荷物のサイズを判定する
return compare_サイズ表(3辺の合計)
end
13年5月19日日曜日
13年5月19日日曜日
ユーザのやりたいこと
 ・宅配便のサイズが知りたい
 ・料金が知りたい
 ・料金を払いたい
・
・
・
13年5月19日日曜日
テストは
ミニユーザシナリオ
のレベルで行う
13年5月19日日曜日
ユニットテストコードは
書かない
13年5月19日日曜日
そのためにメソッドは
超シンプルに
13年5月19日日曜日
テストを書く量が減る
13年5月19日日曜日
開発早くなる
13年5月19日日曜日
ウマー
13年5月19日日曜日
13年5月19日日曜日
ミニユーザシナリオの
なにがおいしい?
13年5月19日日曜日
説明タイム
13年5月19日日曜日
ユーザの言葉で
ミニユーザシナリオ
13年5月19日日曜日
その単位で
ミニユーザシナリオテスト
13年5月19日日曜日
ミニユーザシナリオテスト
なにがおいしい?
13年5月19日日曜日
コードの構造と
ドメインの構造の
差異が小さい
13年5月19日日曜日
機能の変更
=
ミニユーザシナリオの変更
13年5月19日日曜日
ミニユーザシナリオに
あわせて変更される
テストが明らか
13年5月19日日曜日
変更負荷の軽減
13年5月19日日曜日
テスト量も低下する
13年5月19日日曜日
スローテストの回避
13年5月19日日曜日
13年5月19日日曜日
なにより
13年5月19日日曜日
変更のコストが下がる
変更の不安もなくなる
13年5月19日日曜日
開発=楽しい
13年5月19日日曜日
楽しい開発で
充実したハッカーライフを
13年5月19日日曜日

Weitere ähnliche Inhalte

Mehr von Shin Semiya

小説ブラウザ作ってみた
小説ブラウザ作ってみた小説ブラウザ作ってみた
小説ブラウザ作ってみたShin Semiya
 
ユーザーの時間軸を含めたプロダクトデザイン
ユーザーの時間軸を含めたプロダクトデザインユーザーの時間軸を含めたプロダクトデザイン
ユーザーの時間軸を含めたプロダクトデザインShin Semiya
 
データ分析しながらゲームの施策打ってみた
データ分析しながらゲームの施策打ってみたデータ分析しながらゲームの施策打ってみた
データ分析しながらゲームの施策打ってみたShin Semiya
 
心理学的に見る体験によるユーザーフェーズの変化
心理学的に見る体験によるユーザーフェーズの変化心理学的に見る体験によるユーザーフェーズの変化
心理学的に見る体験によるユーザーフェーズの変化Shin Semiya
 
サービスを使うユーザーを モデリングしてみた(同人漫画家編)
サービスを使うユーザーを モデリングしてみた(同人漫画家編)サービスを使うユーザーを モデリングしてみた(同人漫画家編)
サービスを使うユーザーを モデリングしてみた(同人漫画家編)Shin Semiya
 
僕たちのゲーム開発戦記in プライベート編
僕たちのゲーム開発戦記in プライベート編僕たちのゲーム開発戦記in プライベート編
僕たちのゲーム開発戦記in プライベート編Shin Semiya
 
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのことShin Semiya
 
たのしいイベントの作り方
たのしいイベントの作り方たのしいイベントの作り方
たのしいイベントの作り方Shin Semiya
 
Exercise Backlog 1
Exercise Backlog 1Exercise Backlog 1
Exercise Backlog 1Shin Semiya
 

Mehr von Shin Semiya (12)

小説ブラウザ作ってみた
小説ブラウザ作ってみた小説ブラウザ作ってみた
小説ブラウザ作ってみた
 
Grave of my_app
Grave of my_appGrave of my_app
Grave of my_app
 
ユーザーの時間軸を含めたプロダクトデザイン
ユーザーの時間軸を含めたプロダクトデザインユーザーの時間軸を含めたプロダクトデザイン
ユーザーの時間軸を含めたプロダクトデザイン
 
データ分析しながらゲームの施策打ってみた
データ分析しながらゲームの施策打ってみたデータ分析しながらゲームの施策打ってみた
データ分析しながらゲームの施策打ってみた
 
心理学的に見る体験によるユーザーフェーズの変化
心理学的に見る体験によるユーザーフェーズの変化心理学的に見る体験によるユーザーフェーズの変化
心理学的に見る体験によるユーザーフェーズの変化
 
サービスを使うユーザーを モデリングしてみた(同人漫画家編)
サービスを使うユーザーを モデリングしてみた(同人漫画家編)サービスを使うユーザーを モデリングしてみた(同人漫画家編)
サービスを使うユーザーを モデリングしてみた(同人漫画家編)
 
僕たちのゲーム開発戦記in プライベート編
僕たちのゲーム開発戦記in プライベート編僕たちのゲーム開発戦記in プライベート編
僕たちのゲーム開発戦記in プライベート編
 
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと
開発効率とゲームの面白さをあげるために、私が同人ゲームのチーム開発でがんばった10個くらいのこと
 
たのしいイベントの作り方
たのしいイベントの作り方たのしいイベントの作り方
たのしいイベントの作り方
 
Narrative
NarrativeNarrative
Narrative
 
Backlog 2
Backlog 2Backlog 2
Backlog 2
 
Exercise Backlog 1
Exercise Backlog 1Exercise Backlog 1
Exercise Backlog 1
 

Shibuyarb20130515