Shibuyarb20130515ver2

Preview:

Citation preview

ハイパーレガシーコード  クリエイターだって

テストを捨てたい

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 半径 * 半径 / 2end

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日日曜日