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ワイワイ会inXP祭り2018
Search
Shuhei TAKASUGI
September 08, 2018
Programming
1
2.3k
TDDワイワイ会inXP祭り2018
2018.9.8 XP祭り2018でのワークショップで使用した資料です。
Shuhei TAKASUGI
September 08, 2018
Tweet
Share
More Decks by Shuhei TAKASUGI
See All by Shuhei TAKASUGI
TDDワイワイ会
shuyuhey
1
4.9k
Other Decks in Programming
See All in Programming
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
570
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
130
1から理解するWeb Push
dora1998
7
1.9k
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
4.3k
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
140
Improving my own Ruby thereafter
sisshiki1969
1
160
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
Swift Updates - Learn Languages 2025
koher
2
510
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.5k
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
250
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Producing Creativity
orderedlist
PRO
347
40k
Code Review Best Practice
trishagee
71
19k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
The Language of Interfaces
destraynor
161
25k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
930
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Balancing Empowerment & Direction
lara
3
620
Transcript
!1 TDDワイワイ会
TDDワイワイ会とは !2 https://tddyyx.connpass.com/
確認事項 ※モブプログラミングの様子を撮影することがあり ます。写りたくない方、不都合のある方は 予めお伝え下さい。 !3
SNS •SNSへの投稿問題ありません! !4 #tddyyχ #xpjug これはエックスではなくカイです
タイムライン •13:00 ~ 13:15 TDDとモブプログラミングの説明 •13:15 ~ 13:30 自己紹介/チーム分け •13:30
~ 14:30 ゆるゆるとモブプログラミング •14:30 ~ 14:50 ふりかえり !5
TDDと モブプログラミング !6
テスト駆動開発 • 「動作するきれいなコード」(Ron Jeffries) がゴール !7 ケント・ベック著 (新訳) オーム社, 2017
原著は2002 きれい 汚い 動作しない 動作する
テスト駆動開発 • ソフトウェア開発における不安を緩和したい • ”開発”にはもちろん”設計”も含んでいる • “設計”はコーディングによってなされる • 少しずつ設計しながら作り込む !8
ケント・ベック著 (新訳) オーム社, 2017 原著は2002
テスト駆動開発 •テストファーストのアプローチ • テストを書く • 実装する • リファクタリングする •3ステップの繰り返し •
Specification(仕様) • Generalization(一般化) • Design(設計) !9 ケント・ベック著 (新訳) オーム社, 2017 原著は2002
テスト駆動開発 • レッド:動作しない、おそらく最初のうちは コンパイルも通らないテストを1つ書く • グリーン:そのテストを迅速に動作させる。 ときにインチキでもやっつけでもいい • リファクタリング:テストがパスしたままの 状態で重複を除去したりコードをきれいに
する !10 ケント・ベック著 (新訳) オーム社, 2017 原著は2002
テスト駆動開発 • レッド・グリーン・リファクタリングを繰り返し インクリメンタルに設計・実装していく !11 きれい 汚い 動作しない 動作する レッド
グリーン リファクタリング ケント・ベック著 (新訳) オーム社, 2017 原著は2002
TDDワイワイ会でのTDD • Uncle Bob (Robert Martin) による3つのルールに従う。 1. 失敗するユニットテストをパスするためだけにしか プロダクションコードを書いてはならない。
2. 失敗させるのに十分なユニットテストが書けたら それ以上テストコードを書いてはならない。 コンパイルエラーも失敗とみなす。 3. 1つのユニットテストをパスさせるのに十分なコードが書けた らそれ以上プロダクションコードを書いてはならない。 !12 “The Three Laws of TDD” http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
TDDワイワイ会でのテストの進め方 • ふるまいの具体例によって仕様を定めていく(Test First) • 実装から考えない • Step by step(一足飛びに考えない)
• レッド(テストが失敗している状態)は早く抜ける • グリーン(テストが動作を保証している状態)は安心 !13
モブプログラミングとは !14 https://speakerdeck.com/takaking22/mob-programming-startup-manual-number-mobprogramming- number-mobupuro !5",",*/( .0#130(3"..*/( 45"3561."/6"- Ϟϒϓϩάϥϛϯά ελʔτΞοϓϚχϡΞϧ !5",",*/(
モブプログラミング •複数名で1台のコンピュータを使い、寄ってたかって 1つのお題に挑戦するプラクティス • ドライバー(1人):考えを表明しながら手を動かしてコードを書 く。 • ナビゲーター(複数):手を動かさないが一緒にコードを書く。 バグを仕込まないように注意したり、躓きを助けたり、先回りし て調べたりする。
•2人1組でやるものはペアプログラミングと言う !15
TDDワイワイ会でのお約束 •ドライバー • やってること、これからやることを声に出す。 •ナビゲーター • これからやることを決定する。ドライバのやることの方向性が 間違っていそうな場合は修正を、あっていそうな場合は同意 をする。 !16
TDDワイワイ会でのモブ交代方式 •TDDのサイクルでレッドに なったら交代する 1. テストを通すための実装をす る(=“グリーンにする”) 2. (グリーンのまま)リファクタリ ングをする 3.
次に実装する仕様をテストで 表現する(=”レッドにする”) !17 きれい 汚い 動作しない 動作する ③ ① ②
TDDワイワイ会の必勝パターン •cyber-dojo.orgを使う • 無料のWeb REPL • いろんな言語環境がある • テストフレームワークがデフォルトで存在 •迷ったらFizzBuzz
• 仕様が理解容易 • 2時間ぐらいでじっくりやるのにちょうどいい •背伸びするオススメの組み合わせ • 知ってるお題 × 知らない言語 • 知らないお題 × 知ってる言語 !18 http://www.cyber-dojo.org/
ワイワイ会の流れ •チームに分かれて自己紹介 •使う言語・取り組む問題を決める •TODOリストを作る •コーディングをする !19
体験してほしいこと •心理的安全性 • 初めてあった人と一緒にコードを書くのに • 知らない言語なのに • プログラミング得意じゃないのに •楽しさ !20
自己紹介とチーム分け !21
自己紹介のやり方 1. みんなで輪になります 2. 「今日呼ばれたい名前、 普段使っているプログラミング言語、 今の気持ち」を1人ずつ話します !22
再掲)TDDワイワイ会とは !23 https://tddyyx.connpass.com/
次回 •9/23 TDDワイワイ会その16 in 第67回琉大祭 • 沖縄でバカンスがてらワイワイいかがですか? •10/21 TDDワイワイ会その17 •
秋葉原ダイビル12F !24