MixiのTDD Challengeに行ってきたよ #TDD_3

Terfno
Terfno
Oct 7, 2018 · 3 min read

1.はじめに

始発チャレンジに成功して東京に到着したTerfnoです。
9月7日に開催されたTDD Challenge #3に参加できたのでその報告です。

2.目次

  1. はじめに
  2. 目次
  3. TDDとは…?
  4. やってみた
  5. おわりに

3.TDDとは…?

Test Driven Developmentのことです。
テスト駆動開発とかって言いますね(知らんかった)。

開発中の仕様変更(アジャイル開発とかするとあるのかな?)やメンバー変更が頻繁にあるそうです。また,コードは作成される速度が優先され,使い捨てコードになるらしいです。

やっぱり保守性が重要になってくるらしい。
保守性の無いコードだとそれを書いた人しか分からなかったりする秘伝のソースができてしまうwwwwwwwwwwwwwwwwwwwwwww

スピード優先でメンバー変わるけど保守性はほしいお→どうするのか

明確な失敗(テスト)を繰り返したコードをリファクタリングするらしい。

テストパターンはたくさん必要だが,保守性の高い良い設計(経営的要求・条件を満たす設計)には価値があるのでおk

という感じのお話だった気がします。

4.やってみた

やってみると分かるんですが大域変数がぶっ壊れ

全部引数じゃーーーーーい

引数多スギィ!=超依存

依存がスーパー爆発する

リファクタリングじゃあああああああああああああああああああああああああ

という恐怖があるよという話を途中に聞きました。

当日はPythonを使っていくつかの問題をペアプロ形式でTDD体験という感じでした。

まずはテストしたい関数を実装する前にその関数がどういう挙動をすると理想的なのかというテストを書きます。
すると当然その関数が無いとErrorが出ます。
関数を宣言します。
すると今度は宣言されただけなので返り値が理想的でないとError(?)が出ます。
理想的な返り値を”return 生値”という感じで実装します←当然NGなのは分かっているがそのテストを満たす最小限の実装を繰り返すのがTDDらしい
今度はテストが通ってしまいます。
テストパターンを増やすと次のテストは当然返り値が違うのでError(?)が出ます。
という感じに実装する流れです。

ペアプロは非常に有意義だったのでシス研でも導入してほしいなぁ→ @yato
いろいろ調べてるとペアプロ以外にもモブプロがあったり,そもそも向かない人が全体の2割くらいいるという話も聞いたので難しいようです。

5.おわりに

このTDD Challengeをやってると”てすとさいこう!”てなるんですよね…

こうだったのが…

こうですよ!

楽しかったです!
夏休み開けにでも部活でTDDを車窓からのTDDを参考にやってみたいと思います。

    Written by

    Terfno

    てるふのです。

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade