Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TDD完全に理解した.pdf
Search
ぐんちゃ
June 28, 2019
0
100
TDD完全に理解した.pdf
TDD完全に理解したと勘違いしながら昔作りました。
ぐんちゃ
June 28, 2019
Tweet
Share
More Decks by ぐんちゃ
See All by ぐんちゃ
BPP行脚_しんすく(け)さん
guncha
0
98
BPP行脚_第4回_よしたけさん
guncha
0
60
BPP行脚_第3回_なそさん
guncha
0
61
BPP行脚_第5回_みずのりさん
guncha
0
66
BPP行脚_第2回_リナさん
guncha
0
120
BPP行脚_第1回_Mayさん
guncha
0
220
JaSST nano vol.25 ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」
guncha
0
200
ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」分科会ワーク前
guncha
0
300
QAの世界Part1 オープニング
guncha
0
1.4k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
93
13k
Teambox: Starting and Learning
jrom
132
8.7k
Statistics for Hackers
jakevdp
796
220k
For a Future-Friendly Web
brad_frost
175
9.4k
It's Worth the Effort
3n
183
27k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
32
1.8k
Thoughts on Productivity
jonyablonski
67
4.3k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Speed Design
sergeychernyshev
24
580
Fashionably flexible responsive web design (full day workshop)
malarkey
404
65k
Done Done
chrislema
181
16k
Transcript
TDD完全に理解した @akariwtnk
Table of contents Whatʼs TDD? TDDのルール TDDがもたらす影響 勇気や不安の話 参考⽂献 @akariwtnk
Whatʼs TDD? @akariwtnk
Whatʼs TDD? テスト駆動開発(Test-Driven Development) @akariwtnk
Whatʼs TDD? TDDのゴール:「動作するきれいなコード」 - 「動作するきれいなコード」のメリット 1. 開発が予測可能になる。完成したかどうかが分かり、バグが残っているかを⼼配する必要もない。 2. コードが伝えようとしていることを余すところなく受け取れる。 3.
あなたが作るソフトウェアのユーザを快適にする。 4. チームメイトはあなたを信頼し、チームメイトもまたあなたを信頼する。 5. 書いていて気持ちが良い。 @akariwtnk
TDDのルール @akariwtnk
TDDのルール 1. ⾃動化されたテストが失敗したときのみ、新しいコードを書く。 2. 重複を除去する。 @akariwtnk
TDDのルール TDDにおける作業の順序 1. レッド:動作しない。恐らく最初のうちはコンパイルも通らないテストを1 つ書く。 2. グリーン:そのテストを迅速に動作させる。このステップでは罪を犯してもよい。 3. リファクタリング:テストを通すために発⽣した重複をすべて除去する。 @akariwtnk
TDDがもたらす影響 @akariwtnk
TDDがもたらす影響 TDDが個⼈とグループにもたらす技術的影響 - 有機的に設計を進められるようになる。 - ⾃分たちでテストを書くようになる。 - ⼩さな変更に迅速に応答する開発環境を備えなくてはならなくなる。 - 凝集度が⾼く結合度が低いたくさんの部品で構成された設計をおこなうようになる。
@akariwtnk
TDDがもたらす影響 TDDが周囲の⼈びととの関係にもたらす影響 - ⽋陥率を下げられる→ 品質保証担当者は先⼿を打って仕事ができる。 - 悪い知らせを⼗分に減らせる→PM は正確な⾒積もりができる。 - 技術的な議論の対象の明確化→
エンジニアは週や⽇ではなく分単位のコミュニケーションができる。 - ⽋陥率を下げられる→ 新しい機能を伴うソフトウェアを毎⽇リリースできる。→ 顧客との新たな関係が作れる。 @akariwtnk
勇気や不安の話 @akariwtnk
勇気や不安の話 - テスト駆動開発は、プログラミング中の不安をコントロールする⼿法。 - 不安は「気をつけろ」というサイン。 @akariwtnk
勇気や不安の話 - 不安には悪い効果もある。 - 不安はためらいを⽣む。 - 不安はコミュニケーションを減らす。 - 不安はフィードバックから逃げ腰にさせる。 -
不安はいらいらさせる。 - 上記は全て、プログラミングを妨げる要因になる。難しい問題と対峙しているときはなおさら。 @akariwtnk
勇気や不安の話 - 問題は、どのように難しい局⾯と対峙するか、に変わる。 - 躊躇いがちになるのではなく、可能な限り素早く着実に学び始めること。 - 黙り込むのではなく、はっきりとコミュニケーションをとること。 - フィードバックを避けるのではなく、具体的で有⽤なフィードバックを探し出すこと。 -
( ⾃分のイライラは⾃分で対処しなければならない) @akariwtnk
TDDについての本 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 - 訳者の和⽥卓⼈さんは、TDD のスペシャリスト。 - 『SQL アンチパターン』の訳者でもある。 - 「テスト書いてないとかお前それt-
wada の前でも同じこと⾔えんの?」の⼈ - スライドこちら https://www.slideshare.net/t_wada @akariwtnk
TDDについての本 『テスト駆動開発』の構成 1. 他国通貨:TDDで書かれた典型的なモデルのコードを例⽰。 2. xUnit:⾃動テストのフレームワークを実際に開発しながら、 より複雑なロジックを学ぶ。 3. テスト駆動開発のパターン:どのようなテストを書くかの判断についてのパターン、 xUnitを使⽤したテストのパターン、
選りすぐりのデザインパターンとリファクタリング @akariwtnk
参考⽂献 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 @akariwtnk