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
テスト駆動開発 輪読会 vol.2 / TDD Reading Session
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
makasn
July 15, 2020
Programming
0
150
テスト駆動開発 輪読会 vol.2 / TDD Reading Session
makasn
July 15, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.3k
Architectural Extensions
denyspoltorak
0
280
AtCoder Conference 2025
shindannin
0
1.1k
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.4k
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
560
組織で育むオブザーバビリティ
ryota_hnk
0
170
AgentCoreとHuman in the Loop
har1101
5
230
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
710
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
600
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
120
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
680
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
A designer walks into a library…
pauljervisheath
210
24k
From π to Pie charts
rasagy
0
120
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
We Have a Design System, Now What?
morganepeng
54
8k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
Transcript
テスト駆動開発 輪読会 vol.2 6章〜11章 2020年07月15日 by makasn
前回のおさらい • TDDにおけるシンプルなルール ◦ 自動化されたテストが失敗したときのみ、新しいコードを書く ◦ 重複を除去する • 仮実装と明白な実装を行き来しながら進めていくのが良い •
コードを一般化できるのは2つ以上の実例があるときだけ • 意図を語るテストを書こう • 動かしてから正しくしていくために、原則を一度破る
第6章 テスト不足に気づいたら • 素早く先に進むために多くのコードをコピー&ペーストしてきたため、コード をきれいにする段階にやってきた • テストが十分に書かれていないコードを相手にTDDを行う場合、あればよ かったと思うテストを書こう
第7章 疑念をテストに翻訳する • 頭の中にある疑念をテストとして表現する • 完璧ではないもののまずまずのやり方でテストを通す • さらなる設計は本当に必要になるときまで先延ばしにする
第8章 実装を隠す • 我々は型に弱い... • 重複を除去できる状態に一歩近づけた • メソッド宣言だけは親クラスに移動 • Factory
Methodパターンでテストコードから2つのサブクラスの存在を隠し た
第9章 歩幅の調整 • TDDを行う際には歩幅を微調整する ◦ 非常に細かなステップを窮屈に感じるなら歩幅を大きくする ◦ 不安を感じるならば歩幅を小さくする • 完全に同じ内容になったメソッドを親クラスへ引き上げていく
第10章 テストに聞いてみる • レッドバーが出ている時に新しくテストを加えるのは避けたい ◦ 手堅い方法は、レッドバーの原因になった変更を巻き戻し、グリーン バーに復帰すること • しかし我々PHPerは最終的にdollarメソッドとfrancメソッドでMoneyにキャ ストできてないからエラー出てますよね。。
第11章 不要になったら消す • コンストラクタだけになったDollarとFrancを消す • ここでようやくテストが通るようになる • 冗長になってしまうテストたちを消す
まとめ • 一貫して小さなステップで進めるのがTDDの醍醐味なんだなと感じた。 • 頭の中にある疑念をテストとして表現することや、レッドバーの原因になっ た変更を巻き戻し、グリーンバーに復帰することが大事。 • PHPではここまで型の恩恵を受けていない分、どうしてもステップが少し大 きめになってしまうのかもしれないと思った