Your SlideShare is downloading. ×
0
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
20150703 『断捨離』TDDとは
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20150703 『断捨離』TDDとは

449

Published on

部署内プレゼンの社外向け検閲版。 …

部署内プレゼンの社外向け検閲版。
内輪ネタをカットしたら10ページ減ったw

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
449
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 「断捨離」
    聞いたことある言葉だと思いますが
    こんな意味でした。
  • 既存のコードを読んでみたけど、複雑すぎてよくわからない
    よくわからないから、変えるのが危険
  • 色んなことしてて、結局なにしてくれる人なのかよくわからない
  • 本番での経験はないと祈りますが (つぎへ
  • 具体的には・・・・・(つぎへ
  • つまりは!(つぎへ
  • 動く、キレイ という2つの要素があるので、2つを達成するまでの道のりは2つあります
  • こだわり出したらキリがないです
  • 作ってみたら他とあわないってことが起きやすいです
  • いくらおしゃれでも、ドアが開かなくなる場所に家具は置けないですよね
  • 「この引数を渡したら、こんな戻り値がほしい」といった目標をひとつ考えて、それをテストコードに落とします
    当然、未実装なのでこのテストは失敗します
    その後、テストが成功するように目的のコードを書きます
    テストが成功したら、成功を維持したまま、中身をきれいにしていきます
  • Javaでサンプルを書いてみました
    2つの整数を引数に渡したら、値が大きい方を返すメソッドを作るとします
    1と5を渡したら、5を返してほしいので期待値は5になります
    当然、このとき目的のコードは未実装なので、0が返されて失敗します
  • テストが成功するように、コードを直します
    第一引数からx, yだったとすると、とりあえずyを返せば成功しますよね
    これ以上お掃除できなそうなので、次のテストを考えます
  • 同じメソッドに、次のパターンのテストを書きます
    今度は6と2を渡したら、期待値は6です
    先ほどのコードだと、第2引数を固定で返すので、このテストは失敗します
  • 1つめと2つめ、両方のテストが成功するようにコードを修正します
    テストは成功したけど、なんかもっと簡単に書けそうですよね
  • というわけで、テストの成功を維持したまま、中身をお掃除します
    こんなに短くなったw
  • というふうに
    テストを書く 失敗する
    成功させる
    お掃除する
    というサイクルを繰り返していきます
  • Transcript

    • 1. 『断捨 離』 Natsuki Nishino
    • 2. 断捨離
    • 3. の荷物 整理 わるかな終 …
    • 4. から日頃 しておけば掃除 よかったなぁ…
    • 5. サービスの コードも じです同
    • 6. こんな経験 ありませんか? ※ に い はご ください刺激 弱 方 注意
    • 7. をしている何 コードなのか わからない
    • 8. … やってみた ら
    • 9. あぁ… ( 略
    • 10. たりが心当 ない は方
    • 11. おやすみなさい ( ´ ・ ωゞ ) Zzz
    • 12. やっと本題
    • 13. TDDって ってますか知 ?
    • 14. Test Dri ven Devel opment
    • 15. テスト駆動開 発
    • 16. TDDは する、キレイな『動作 コード』 を す のひとつ目指 手法
    • 17. くコードって動 ?
    • 18. いているコード普段書 は が いているハズ大半 動 ( ・ _ ・ ; ) デスヨネ ?
    • 19. キレイなコードって?
    • 20. さっき なくなった切 現 が象 きないもの起 ( `・ ω・ ´ )
    • 21. や の が仲間 明日 自分 なんだこれ… ( ; ´ Д ` ) って を えないコードの頭 抱 こと
    • 22. する、キレイなコード動作 を す のりは目指 道 2 種類 • にキレイにする先 • に くようにする先 動
    • 23. まずキレイに いてから書 くようにしていく動
    • 24. まず くようにしてから動 キレイにお する掃除 キレイに していく変更 間 に していないこと は“壊 ” テストコードが する担保
    • 25. どうやってやるの?
    • 26. 1.目標を考える 2.その目標を示すテストを書 く 3.実行して失敗させる ( Red) 4.テストを成功させるコード を書く ( Gr een) 5.テストの成功を維持したま ま
    • 27. @Test public void testGetLargeNum () { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5)); } public int getLargeNum () { return 0; } RED… 2つの を して、 きい を す整数 渡 大 方 返
    • 28. いたテストを させる書 成功 @Test public void testGetLargeNum () { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5)); } public int getLargeNum () { return y; } GREEEEEEEEEN!!!!
    • 29. のテストを く、 する次 書 失敗 @Test public void testGetLargeNum2 () { TwoNumber twoNum = new TwoNumber(6, 2); assertThat(twoNum.getLargeNum(), is(6)); } public int getLargeNum () { return y; } RED…
    • 30. いたテストを させる書 成功 public int getLargeNum () { int result = 0; if ( x > y ) { result = x; } else { result = y; } return result; } GREEEEEEEEEN!!!!
    • 31. を したまま、お する成功 維持 掃除 public int getLargeNum() { return x < y ? y : x; } GREEEEEEEEEN!!!!
    • 32. ったその作 場 で お毎日 掃除! 毎日断捨離!
    • 33. テストはコードの命綱
    • 34. お が掃除 こわくな い!
    • 35. の で実際 開発 やってみたら こんな Happy が
    • 36. ゴールが なので明確 しない迷走 !
    • 37. テスト きにくいな書 … と ったら を思 設計 疑 う
    • 38. テストを てやすい充 コードになる
    • 39. メソッドが単機能化 する Si mpl e i s t he best .
    • 40. コードがキレイだと や が調査 改修 簡単!
    • 41. コードがキレイだと あれ…? ( ・ _ ・ ; ) が きにくい起 !!
    • 42. テストコードがあると バグを んだら生 えてくれる教 !!
    • 43. に定時 れる帰 ! !
    • 44. もコードも私物 にキレイに日常的 しておきたいですねぇ 。
    • 45. な は特別 環境 不要! おためしあれ~

    ×