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
2.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TDDワイワイ会inXP祭り2018
2018.9.8 XP祭り2018でのワークショップで使用した資料です。
Shuhei TAKASUGI
September 08, 2018
More Decks by Shuhei TAKASUGI
See All by Shuhei TAKASUGI
TDDワイワイ会
shuyuhey
1
5.2k
Other Decks in Programming
See All in Programming
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
1
370
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
370
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
120
My Marp Sample
sinoue0108
0
110
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
460
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
410
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
330
初めての模倣学習とVLA
natsutan
0
220
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
470
React本体のコードリーディング
high_g_engineer
1
150
Cloudflare is Agents
chimame
0
180
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Prompt Engineering for Job Search
mfonobong
0
420
Visualization
eitanlees
152
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Rails Girls Zürich Keynote
gr2m
96
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
How to train your dragon (web standard)
notwaldorf
97
6.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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