Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.9k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
dotfiles 式年遷宮 令和最新版
masawada
1
680
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
110
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
140
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
490
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
340
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
310
sbt 2
xuwei_k
0
190
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
210
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.4k
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
130
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Think Like a Performance Engineer
csswizardry
28
2.3k
BBQ
matthewcrist
89
9.9k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Agile that works and the tools we love
rasmusluckow
331
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Writing Fast Ruby
sferik
630
62k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
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