kugi's notebook

やったこと、思ったことなどつらつらと書きます

TDDYYχに参加して

はじめに

大学で行われたTDDワイワイ会(TDDYYχ)に参加しました。

昨年参加したenPitの合宿でもTDDのモブプロワークショップをしたので感覚的には2回目でした。(おかわり組と呼ばれているとか...笑)

なお、ワイワイ会(YYχ)のχ(はX(エックス)ではなく、χ(カイ)とのこと。

f:id:kugi_masa:20190604004251j:plain
TDDYYχステッカー

TDD(テスト駆動開発)

スタッフの方の詳しいわかりやすい資料はコチラ↓↓↓

speakerdeck.com

TDD(Test - Driven - Development:テスト駆動開発)はプログラムの開発手法の一種でテストファーストのアプローチをとります。

まずはプログラムがREDになるテストを書く

Ex) 結果が1になって欲しい!!まずはプログラムanswer()に対するテストを書く!

以下のテストコードではRED

//プログラム
int answer(){
    return 2;
}
//テストコード
if(answer() != 1){
    printf("The answer is not 1");
}

次にREDGREEN

どんなにやっつけでもいいから、まずはテストが動くようにする

Ex) answer()は2-1で1が返ってくる。ひとまずGREENにできた...!

このままでもいいがまだ改善の余地はありそう

//プログラム
int answer(){
    return 2-1;
}
//テストコード
if(answer() != 1){
    printf("The answer is not 1");
}

REFACTORINGでコードを綺麗に

テストがパスする状態で重複であったり余分なものを削ぎ落とし簡潔にします。また、コードの可読性についても検討します。

Ex) ここまですればanswer()が1を返すのは容易にわかる

//プログラム
int answer(){
    return 1;
}
//テストコード
if(answer() != 1){
    printf("The answer is not 1");
}

REDGREENREFACTORINGRED → … のサイクルを繰り返し、設計、実装を行っていきます。

Go で FizzBuzz

ドライバー(コードを書く人:1名)とナビゲーター(その他)でモブプロを行いました。REDGREENREFACTORINGREDと一周回ったらドライバーを交代

メンバーの使用言語はPythonC#JavaScriptと割とバラバラで 誰もGOに触れたことがなかったのでGOでFizzBuzzをすることになりました。

ドライバーが逐一する内容を口に出すと言うルールのもとモブプロが行われ、チームでコミュニケーションを取りながらワイワイコードが書けて楽しかった!!

初めてGOに触れるいい機会にもなりました

まとめ

やったこと

  • GOを初めて使った
  • FizzBuzzにモブプロで取り組んだ

わかったこと

  • ワイワイ会は何回やっても楽しい
  • 知識を共有することで知らないことを学べるし、知っている知識を深めることができる
  • ちょっとしたことでも拍手が起きるのでとても居心地がいい

次やりたいこと

またTDDワイワイ会が近くであるなら参加したいです。 次はまたGOで違った問題にも挑戦してみたい‼︎