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.8k
Other Decks in Programming
See All in Programming
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
120
MCP連携で加速するAI駆動開発/mcp integration accelerates ai-driven-development
bpstudy
0
290
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
iOS開発スターターキットの作り方
akidon0000
0
240
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
7
1.9k
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
300
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
250
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
250
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
0
530
Understanding Kotlin Multiplatform
l2hyunwoo
0
250
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
7
2.3k
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
180
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
Adopting Sorbet at Scale
ufuk
77
9.5k
The World Runs on Bad Software
bkeepers
PRO
70
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Agile that works and the tools we love
rasmusluckow
329
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
750
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
Documentation Writing (for coders)
carmenintech
73
5k
Music & Morning Musume
bryan
46
6.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
4 Signs Your Business is Dying
shpigford
184
22k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
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