なんの記事?
- TDDについてなんとなく本読んだりで知ってはいたが、実際にやるところなどをみて肌感を知りたく以下のイベントにオンライン参加してみたレポートです。
- アーカイブ:TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング
イベント内容
※Twitterで#tddbcで検索すると参加された方のツイートが見れますので、内容について覗いてみることをおすすめします。
学んだこと
TODOをテスト容易性が高い&重要度が高いで並べられるよう分解して整理すること
-
TDDのサイクルについては知っていたが、最初のステップでTODOをつくるっていうのがかなり重要で、いかにテストしやすく分割していくかのを、解説と一緒に考えを追えたのが非常によきでした。
-
このTODOに落とし込む、分割する部分は@t_wadaさんいわく、「スキル」だそうで、練習すれば身に付けられるものとのこと。
-
じゃあ、どうやって練習すればいいんだろう?とYouTube Liveで質問してみたら以下回答がありました
- 実際にTDDを実践してFBをもらう(ワークショップに参加するとか)
- Mikadoメソッドを読む
-
経験を積むのと、設計の本などを読んで理論を学ぶルート両方が有効とのこと
- 設計に関する本としてRobert C.MartinのClean Architecture 達人に学ぶソフトウェアの構造と設計も挙げておられました。
-
Twitterにもまとめてみたのでよろしければいいね!とかRTしてもらえると喜びます。Mikadoメソッドはこのあと読む読む。
- やっぱり、フィードバックもらえるの大事だよねということで今度はワークショップにも参加したい。タスクの分解・整理について運営の方より回答いただいたのでこちらにも書いておきます。
— Captain Blue (@captain_blue210) August 1, 2020
・ワークショップに参加してFBもらう
・Mikadoメソッドhttps://t.co/1xWZduAT1f#tddbc
「テストは動作するドキュメント」とはどういうことかの実例を知ることができた
- 「テストは動作するドキュメント」みたいなのって本とかにも書いてあるけど、具体的にどういうテストが動作するドキュメントなのかはっきりとしたイメージは持てていなかったのがわかりました。
- 以下、アーカイブのスクショなんですが、仕様のツリー構造とテストのツリー構造が一致しており何をしたいのかが明確にわかります。しかもテストはコードなのでどう使うのか、どういうケースだと何を返すのかを動かして確かめることができると。確かにこれは「動作するドキュメント」ですね。
- アーカイブだとこの辺の前後で触れている部分
- 現場でここまでできるのか、テストフレームワークによっては階層構造を表現できないなどはあるものの、これは非常にインパクトありました。
これからやること
- 適切にTODOを分割してテスト&実装を進められるように数をこなす
- TDD Boot Campに参加してフィードバックもらうようにする
- 教えていただいたMikadoメソッドを読んでQiitaにあげる
- クリーンアーキテクチャ読む
TDD、最初はこんな理由で勉強始めたのですが、私の会社ではテストコードがなく個人開発で試していたのですが書いたり書かなかったりだったので、もっとちゃんとテスト書こうと思いました・・・
TDDに興味もったのが、この細かくアップデートを繰り返しつつ実装を進めるところで、物事を複雑に考えすぎてしまう傾向があるのを矯正するのによさげだったからなんだよな#tddbc
— Captain Blue (@captain_blue210) August 1, 2020