Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDDワイワイ会inXP祭り2018

27c733e034ae411aef2d0ecd2629af6b?s=47 Shuhei TAKASUGI
September 08, 2018

 TDDワイワイ会inXP祭り2018

2018.9.8 XP祭り2018でのワークショップで使用した資料です。

27c733e034ae411aef2d0ecd2629af6b?s=128

Shuhei TAKASUGI

September 08, 2018
Tweet

Transcript

  1. !1 TDDワイワイ会

  2. TDDワイワイ会とは !2 https://tddyyx.connpass.com/

  3. 確認事項 ※モブプログラミングの様子を撮影することがあり ます。写りたくない方、不都合のある方は
 予めお伝え下さい。 !3

  4. SNS •SNSへの投稿問題ありません! !4 #tddyyχ #xpjug これはエックスではなくカイです

  5. タイムライン •13:00 ~ 13:15 TDDとモブプログラミングの説明 •13:15 ~ 13:30 自己紹介/チーム分け •13:30

    ~ 14:30 ゆるゆるとモブプログラミング •14:30 ~ 14:50 ふりかえり !5
  6. TDDと モブプログラミング !6

  7. テスト駆動開発 • 「動作するきれいなコード」(Ron Jeffries) がゴール !7 ケント・ベック著 (新訳) オーム社, 2017

    原著は2002 きれい 汚い 動作しない 動作する
  8. テスト駆動開発 • ソフトウェア開発における不安を緩和したい • ”開発”にはもちろん”設計”も含んでいる • “設計”はコーディングによってなされる • 少しずつ設計しながら作り込む !8

    ケント・ベック著 (新訳) オーム社, 2017 原著は2002
  9. テスト駆動開発 •テストファーストのアプローチ • テストを書く • 実装する • リファクタリングする •3ステップの繰り返し •

    Specification(仕様) • Generalization(一般化) • Design(設計) !9 ケント・ベック著 (新訳) オーム社, 2017 原著は2002
  10. テスト駆動開発 • レッド:動作しない、おそらく最初のうちは
 コンパイルも通らないテストを1つ書く • グリーン:そのテストを迅速に動作させる。 ときにインチキでもやっつけでもいい • リファクタリング:テストがパスしたままの
 状態で重複を除去したりコードをきれいに

    する !10 ケント・ベック著 (新訳) オーム社, 2017 原著は2002
  11. テスト駆動開発 • レッド・グリーン・リファクタリングを繰り返し インクリメンタルに設計・実装していく !11 きれい 汚い 動作しない 動作する レッド

    グリーン リファクタリング ケント・ベック著 (新訳) オーム社, 2017 原著は2002
  12. TDDワイワイ会でのTDD • Uncle Bob (Robert Martin) による3つのルールに従う。 1. 失敗するユニットテストをパスするためだけにしか
 プロダクションコードを書いてはならない。

    2. 失敗させるのに十分なユニットテストが書けたら
 それ以上テストコードを書いてはならない。
 コンパイルエラーも失敗とみなす。 3. 1つのユニットテストをパスさせるのに十分なコードが書けた らそれ以上プロダクションコードを書いてはならない。 !12 “The Three Laws of TDD” http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
  13. TDDワイワイ会でのテストの進め方 • ふるまいの具体例によって仕様を定めていく(Test First) • 実装から考えない • Step by step(一足飛びに考えない)

    • レッド(テストが失敗している状態)は早く抜ける • グリーン(テストが動作を保証している状態)は安心 !13
  14. モブプログラミングとは !14 https://speakerdeck.com/takaking22/mob-programming-startup-manual-number-mobprogramming- number-mobupuro !5",",*/( .0#130(3"..*/( 45"3561."/6"- Ϟϒϓϩάϥϛϯά ελʔτΞοϓϚχϡΞϧ !5",",*/(

  15. モブプログラミング •複数名で1台のコンピュータを使い、寄ってたかって 1つのお題に挑戦するプラクティス • ドライバー(1人):考えを表明しながら手を動かしてコードを書 く。 • ナビゲーター(複数):手を動かさないが一緒にコードを書く。 バグを仕込まないように注意したり、躓きを助けたり、先回りし て調べたりする。

    •2人1組でやるものはペアプログラミングと言う !15
  16. TDDワイワイ会でのお約束 •ドライバー • やってること、これからやることを声に出す。 •ナビゲーター • これからやることを決定する。ドライバのやることの方向性が 間違っていそうな場合は修正を、あっていそうな場合は同意 をする。 !16

  17. TDDワイワイ会でのモブ交代方式 •TDDのサイクルでレッドに なったら交代する 1. テストを通すための実装をす る(=“グリーンにする”) 2. (グリーンのまま)リファクタリ ングをする 3.

    次に実装する仕様をテストで 表現する(=”レッドにする”) !17 きれい 汚い 動作しない 動作する ③ ① ②
  18. TDDワイワイ会の必勝パターン •cyber-dojo.orgを使う • 無料のWeb REPL • いろんな言語環境がある • テストフレームワークがデフォルトで存在 •迷ったらFizzBuzz

    • 仕様が理解容易 • 2時間ぐらいでじっくりやるのにちょうどいい •背伸びするオススメの組み合わせ • 知ってるお題 × 知らない言語 • 知らないお題 × 知ってる言語 !18 http://www.cyber-dojo.org/
  19. ワイワイ会の流れ •チームに分かれて自己紹介 •使う言語・取り組む問題を決める •TODOリストを作る •コーディングをする !19

  20. 体験してほしいこと •心理的安全性 • 初めてあった人と一緒にコードを書くのに • 知らない言語なのに • プログラミング得意じゃないのに •楽しさ !20

  21. 自己紹介とチーム分け !21

  22. 自己紹介のやり方 1. みんなで輪になります 2. 「今日呼ばれたい名前、
 普段使っているプログラミング言語、
 今の気持ち」を1人ずつ話します !22

  23. 再掲)TDDワイワイ会とは !23 https://tddyyx.connpass.com/

  24. 次回 •9/23 TDDワイワイ会その16 in 第67回琉大祭 • 沖縄でバカンスがてらワイワイいかがですか? •10/21 TDDワイワイ会その17 •

    秋葉原ダイビル12F !24