Skip to content

Instantly share code, notes, and snippets.

@kentaro-m
Created July 28, 2021 17:26
Show Gist options
  • Save kentaro-m/0999392d0b26d4cd339eace069751dc1 to your computer and use it in GitHub Desktop.
Save kentaro-m/0999392d0b26d4cd339eace069751dc1 to your computer and use it in GitHub Desktop.
TDDハンズオン (Kanazawa.js Meetup)

TDDハンズオン

モブプログラミングでTDDを実践しよう会の進行用スクリプト

事前準備

  • Node.jsのインストール
  • Visual Studio Codeのインストール
  • Visual Studio Live Share 拡張機能のインストール
  • タイマー

※ 実際に実装やテストを作成する際に用いる、JavaScriptのテストフレームワーク「Jest」のセットアップ済みのリポジトリは運営側で準備しています。

進行

  1. 事前説明 10分
  2. ドライバー順序決定
  3. モビング (第1部) 50分
  4. 休憩 10分
  5. モビング (第2部) 50分
  6. 振り返り

役割

  • ナビゲーター
    • ドライバーに実装や操作を指示する人
  • ドライバー
    • ナビゲーターの指示で実装や操作を行う人

ルール

  • ナビゲーター
  • ドライバー
    • ドライバーは10分ごとに交代する
    • ドライバーは全体像や次のステップを考える
    • ドライバーはナビゲーターの指示を理解できるまで質問する

題材

1. FizzBuzz

以下の条件を満たすプログラムを書いてください。

  • 引数で渡される数字を文字列として出力
  • 引数で渡された数字が1~100の範囲でない場合はエラーをスロー
  • 3の倍数が引数のときは「Fizz」と出力
  • 5の倍数が引数のときは「Buzz」と出力
  • 3と5の倍数が引数のときは「FizzBuzz」と出力

2. うるう年

以下の条件を満たすプログラムを書いてください。

  • 引数で渡される年がうるう年であるかを真偽値として出力
  • 引数で渡された年が1900~2021の範囲でない場合はエラーをスロー

3. URLパーサー

以下の条件を満たすプログラムを書いてください。

  • 引数で渡されたURLをパースして、以下の情報を出力
    • 例: http://foo.bar.com/foobar.html
      • Protocol : http
      • Subdomain: foo
      • Domain name: bar.com
      • Port: 80
      • Path: foobar.html
  • Protocolは下記の4種類を取り扱い、Portは対応したものを使用
    • http: 80
    • https: 443
    • ftp: 21
    • sftp: 22
  • Domainは .com.net などのトップレベルドメインのみサポート
  • ローカルネットワークホスト名をサポート
    • http://localhost のような形式

※1 URLの形式は protocol"://"[subdomain]host[top-level-domain][":" port][path]["?" parameters]["#" anchor] とする。

※2 URLオブジェクトのような標準組み込みオブジェクトを使用してはならない。

出典: URL Parts - TddBuddy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment