Suche senden
Hochladen
20150703 『断捨離』TDDとは
•
Als PPT, PDF herunterladen
•
14 gefällt mir
•
2,231 views
nackypon
Folgen
部署内プレゼンの社外向け検閲版。 内輪ネタをカットしたら10ページ減ったw
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 60
Jetzt herunterladen
Empfohlen
XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?
Masanori Kado
resume
resume
Herbert Mejia
TEA.PDF
TEA.PDF
Atul Apte
Branson vacation rentals
Branson vacation rentals
rentbranson71
Dynamic DSM Features - Reporting
Dynamic DSM Features - Reporting
Dynamic DSM
Ramayanaya
Ramayanaya
RANDUNU123
Dynamic DSM Features - Marketing
Dynamic DSM Features - Marketing
Dynamic DSM
Dynamic DSM Features - Measures
Dynamic DSM Features - Measures
Dynamic DSM
Empfohlen
XPは何を伝えたかったんだと思う?
XPは何を伝えたかったんだと思う?
Masanori Kado
resume
resume
Herbert Mejia
TEA.PDF
TEA.PDF
Atul Apte
Branson vacation rentals
Branson vacation rentals
rentbranson71
Dynamic DSM Features - Reporting
Dynamic DSM Features - Reporting
Dynamic DSM
Ramayanaya
Ramayanaya
RANDUNU123
Dynamic DSM Features - Marketing
Dynamic DSM Features - Marketing
Dynamic DSM
Dynamic DSM Features - Measures
Dynamic DSM Features - Measures
Dynamic DSM
F.NarcisiHandDrawingPortfolio
F.NarcisiHandDrawingPortfolio
Federica Narcisi
Dynamic DSM - General Usage
Dynamic DSM - General Usage
Dynamic DSM
懶人版慕立達
懶人版慕立達
千蘊 沈
RAE
RAE
Sanjaykumar Patel
Elionetwork Brochure LR
Elionetwork Brochure LR
May Chiang
Airbag Clock Spring Catalogue
Airbag Clock Spring Catalogue
China Seat Belt Far Europe Inc.
Business Card Design
Business Card Design
Ariful Nirob
BusinessONE PPT for Sustain
BusinessONE PPT for Sustain
Kevin Jiang
Transformative Enterprise Architecture
Transformative Enterprise Architecture
Atul Apte
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM
Dynamic DSM Tracking Software Features
Dynamic DSM Tracking Software Features
Dynamic DSM
Licensing specialist
Licensing specialist
ChristianIngebrigtsen012
F.NarcisiPortfolio
F.NarcisiPortfolio
Federica Narcisi
Fonterra_TreatmentSample
Fonterra_TreatmentSample
Jo Rittey
VoicesAfrica Panel Book
VoicesAfrica Panel Book
Voices Africa
Autism Spectrum Disorder
Autism Spectrum Disorder
Amanda Lozano
Weitere ähnliche Inhalte
Andere mochten auch
F.NarcisiHandDrawingPortfolio
F.NarcisiHandDrawingPortfolio
Federica Narcisi
Dynamic DSM - General Usage
Dynamic DSM - General Usage
Dynamic DSM
懶人版慕立達
懶人版慕立達
千蘊 沈
RAE
RAE
Sanjaykumar Patel
Elionetwork Brochure LR
Elionetwork Brochure LR
May Chiang
Airbag Clock Spring Catalogue
Airbag Clock Spring Catalogue
China Seat Belt Far Europe Inc.
Business Card Design
Business Card Design
Ariful Nirob
BusinessONE PPT for Sustain
BusinessONE PPT for Sustain
Kevin Jiang
Transformative Enterprise Architecture
Transformative Enterprise Architecture
Atul Apte
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM
Dynamic DSM Tracking Software Features
Dynamic DSM Tracking Software Features
Dynamic DSM
Licensing specialist
Licensing specialist
ChristianIngebrigtsen012
F.NarcisiPortfolio
F.NarcisiPortfolio
Federica Narcisi
Fonterra_TreatmentSample
Fonterra_TreatmentSample
Jo Rittey
VoicesAfrica Panel Book
VoicesAfrica Panel Book
Voices Africa
Autism Spectrum Disorder
Autism Spectrum Disorder
Amanda Lozano
Andere mochten auch
(16)
F.NarcisiHandDrawingPortfolio
F.NarcisiHandDrawingPortfolio
Dynamic DSM - General Usage
Dynamic DSM - General Usage
懶人版慕立達
懶人版慕立達
RAE
RAE
Elionetwork Brochure LR
Elionetwork Brochure LR
Airbag Clock Spring Catalogue
Airbag Clock Spring Catalogue
Business Card Design
Business Card Design
BusinessONE PPT for Sustain
BusinessONE PPT for Sustain
Transformative Enterprise Architecture
Transformative Enterprise Architecture
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM Features - Reports & Dashboards
Dynamic DSM Tracking Software Features
Dynamic DSM Tracking Software Features
Licensing specialist
Licensing specialist
F.NarcisiPortfolio
F.NarcisiPortfolio
Fonterra_TreatmentSample
Fonterra_TreatmentSample
VoicesAfrica Panel Book
VoicesAfrica Panel Book
Autism Spectrum Disorder
Autism Spectrum Disorder
20150703 『断捨離』TDDとは
1.
『断捨 離』 Natsuki Nishino
2.
断捨離
3.
4.
の荷物 整理 わるかな終 …
5.
から日頃 しておけば掃除 よかったなぁ…
6.
サービスの コードも じです同
7.
こんな経験 ありませんか? ※ に い
はご ください刺激 弱 方 注意
8.
をしている何 コードなのか わからない
9.
10.
11.
12.
13.
… やってみた ら
14.
あぁ… ( 略
15.
たりが心当 ない は方
16.
おやすみなさい ( ´ ・
ωゞ ) Zzz
17.
やっと本題
18.
TDDって ってますか知 ?
19.
Test Dri ven Devel opment
20.
テスト駆動開 発
21.
TDDは する、キレイな『動作 コード』 を す のひとつ目指
手法
22.
23.
くコードって動 ?
24.
いているコード普段書 は が いているハズ大半 動 (
・ _ ・ ; ) デスヨネ ?
25.
キレイなコードって?
26.
さっき なくなった切 現 が象 きないもの起 (
`・ ω・ ´ )
27.
28.
29.
30.
や の が仲間
明日 自分 なんだこれ… ( ; ´ Д ` ) って を えないコードの頭 抱 こと
31.
する、キレイなコード動作 を す のりは目指 道
2 種類 • にキレイにする先 • に くようにする先 動
32.
まずキレイに いてから書 くようにしていく動
33.
34.
35.
36.
まず くようにしてから動 キレイにお する掃除 キレイに
していく変更 間 に していないこと は“壊 ” テストコードが する担保
37.
どうやってやるの?
38.
1.目標を考える 2.その目標を示すテストを書 く 3.実行して失敗させる ( Red) 4.テストを成功させるコード を書く
( Gr een) 5.テストの成功を維持したま ま
39.
@Test public void testGetLargeNum
() { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5)); } public int getLargeNum () { return 0; } RED… 2つの を して、 きい を す整数 渡 大 方 返
40.
いたテストを させる書 成功 @Test public
void testGetLargeNum () { TwoNumber twoNum = new TwoNumber(1, 5); assertThat(twoNum.getLargeNum(), is(5)); } public int getLargeNum () { return y; } GREEEEEEEEEN!!!!
41.
のテストを く、 する次
書 失敗 @Test public void testGetLargeNum2 () { TwoNumber twoNum = new TwoNumber(6, 2); assertThat(twoNum.getLargeNum(), is(6)); } public int getLargeNum () { return y; } RED…
42.
いたテストを させる書 成功 public
int getLargeNum () { int result = 0; if ( x > y ) { result = x; } else { result = y; } return result; } GREEEEEEEEEN!!!!
43.
を したまま、お する成功
維持 掃除 public int getLargeNum() { return x < y ? y : x; } GREEEEEEEEEN!!!!
44.
45.
ったその作 場 で お毎日 掃除! 毎日断捨離!
46.
47.
テストはコードの命綱
48.
お が掃除 こわくな い!
49.
の で実際 開発 やってみたら こんな
Happy が
50.
ゴールが なので明確 しない迷走 !
51.
テスト きにくいな書 … と ったら
を思 設計 疑 う
52.
テストを てやすい充 コードになる
53.
メソッドが単機能化 する Si mpl e
i s t he best .
54.
コードがキレイだと や が調査 改修
簡単!
55.
コードがキレイだと あれ…? ( ・
_ ・ ; ) が きにくい起 !!
56.
テストコードがあると バグを んだら生 えてくれる教 !!
57.
に定時 れる帰 ! !
58.
もコードも私物 にキレイに日常的 しておきたいですねぇ 。
59.
な は特別 環境
不要! おためしあれ~
Hinweis der Redaktion
「断捨離」 聞いたことある言葉だと思いますが こんな意味でした。
既存のコードを読んでみたけど、複雑すぎてよくわからない よくわからないから、変えるのが危険
色んなことしてて、結局なにしてくれる人なのかよくわからない
本番での経験はないと祈りますが (つぎへ
具体的には・・・・・(つぎへ
つまりは!(つぎへ
動く、キレイ という2つの要素があるので、2つを達成するまでの道のりは2つあります
こだわり出したらキリがないです
作ってみたら他とあわないってことが起きやすいです
いくらおしゃれでも、ドアが開かなくなる場所に家具は置けないですよね
「この引数を渡したら、こんな戻り値がほしい」といった目標をひとつ考えて、それをテストコードに落とします 当然、未実装なのでこのテストは失敗します その後、テストが成功するように目的のコードを書きます テストが成功したら、成功を維持したまま、中身をきれいにしていきます
Javaでサンプルを書いてみました 2つの整数を引数に渡したら、値が大きい方を返すメソッドを作るとします 1と5を渡したら、5を返してほしいので期待値は5になります 当然、このとき目的のコードは未実装なので、0が返されて失敗します
テストが成功するように、コードを直します 第一引数からx, yだったとすると、とりあえずyを返せば成功しますよね これ以上お掃除できなそうなので、次のテストを考えます
同じメソッドに、次のパターンのテストを書きます 今度は6と2を渡したら、期待値は6です 先ほどのコードだと、第2引数を固定で返すので、このテストは失敗します
1つめと2つめ、両方のテストが成功するようにコードを修正します テストは成功したけど、なんかもっと簡単に書けそうですよね
というわけで、テストの成功を維持したまま、中身をお掃除します こんなに短くなったw
というふうに テストを書く 失敗する 成功させる お掃除する というサイクルを繰り返していきます
Jetzt herunterladen