『断捨離』
Natsuki Nishino
断捨離
荷物の整理終わるかな…
日頃から掃除しておけばよかったなぁ…
サービスのコードも同じです
こんな経験ありませんか?※刺激に弱い方はご注意ください
何をしているコードなのかわからない
…やってみたら
あぁ… ( 略
心当たりがない方は
おやすみなさい(´ ・ ω ゞ )Zzz
やっと本題
TDDって知ってますか?
TestDriven
Development
テスト駆動開発
TDDは
『動作する、キレイなコード』
を目指す手法のひとつ
動くコードって?
普段書いているコードは
大半が動いているハズ( ・ _・ ;) デスヨネ ?
キレイなコードって?
さっき切なくなった現象が
起きないもの( `・ ω ・ ´)
仲間や明日の自分がなんだこれ… ( ; ´Д
` )って
頭を抱えないコードのこと
動作する、キレイなコードを
目指す道のりは 2 種類•先にキレイにする•先に動くようにする
まずキレイに書いてから動くようにしていく
まず動くようにしてからキレイにお掃除する
キレイに変更していく間に“ 壊していないこと” はテストコードが担保する
どうやってやるの?
1.目標を考える2.その目標を示すテストを書く
3.実行して失敗させる (Red)4.テストを成功させるコードを書く (Green)
5.テストの成功を維持したまま リファクタリングする
6.1 ~ 5 を繰り返す…
@Testpublic void testGetLargeNum () { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5));}
public int getLargeNum () { return 0;} RED…
2 つの整数を渡して、大きい方を返す
書いたテストを成功させる@Testpublic void testGetLargeNum () { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5));}
public int getLargeNum () { return y;}
GREEEEEEEEEN!!!!
次のテストを書く、失敗する@Testpublic void testGetLargeNum2 () { TwoNumber twoNum = new TwoNumber(6, 2); assertThat(twoNum.getLargeNum(), is(6));}
public int getLargeNum () { return y;} RED…
書いたテストを成功させる
public int getLargeNum () { int result = 0; if ( x > y ) { result = x; } else { result = y; } return result;}
GREEEEEEEEEN!!!!
成功を維持したまま、お掃除する
public int getLargeNum() { return x < y ? y : x;}
GREEEEEEEEEN!!!!
作ったその場で
毎日お掃除!毎日断捨離!
テストはコードの命綱
お掃除がこわくない!
実際の開発でやってみたらこんなHappyが
ゴールが明確なので迷走しない!
テスト書きにくいな…
と思ったら設計を疑う
テストを充てやすいコードになる
メソッドが単機能化する
Simple is the best.
コードがキレイだと調査や改修が簡単!
コードがキレイだとあれ…? ( ・ _・ ;)が起きにくい!!
テストコードがあると
バグを生んだら教えてくれる!!
定時に帰れる !!
私物もコードも日常的にキレイにしておきたいです
ねぇ。
特別な環境は不要!おためしあれ~