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
110
TDD完全に理解した.pdf
TDD完全に理解したと勘違いしながら昔作りました。
ぐんちゃ
June 28, 2019
Tweet
Share
More Decks by ぐんちゃ
See All by ぐんちゃ
BPP行脚_しんすく(け)さん
guncha
0
120
BPP行脚_第4回_よしたけさん
guncha
0
73
BPP行脚_第3回_なそさん
guncha
0
70
BPP行脚_第5回_みずのりさん
guncha
0
85
BPP行脚_第2回_リナさん
guncha
0
140
BPP行脚_第1回_Mayさん
guncha
0
240
JaSST nano vol.25 ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」
guncha
0
250
ぼくたちが考える最強の 「正常系、異常系、 ハッピーパス、ワンパス」分科会ワーク前
guncha
0
360
QAの世界Part1 オープニング
guncha
0
1.5k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
A Modern Web Designer's Workflow
chriscoyier
697
190k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Making Projects Easy
brettharned
119
6.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Become a Pro
speakerdeck
PRO
29
5.5k
RailsConf 2023
tenderlove
30
1.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Mobile First: as difficult as doing things right
swwweet
224
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Typedesign – Prime Four
hannesfritz
42
2.8k
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