TDD Boot Camp 2020 Online #1 基調講演/ライブコーディングをもっと楽しむための副読リンク集
はじめに
これは Recruit Engineers Advent Calendar 2020 - Adventar および テスト駆動開発 Advent Calendar 2020 - Qiita の10日のエントリーです。
コミュニティでの活動としてTDDBCのお手伝いをしてるのですが、twadaさんの基調講演&ライブコーディングはすごいですよね。何度聞いても日々バージョンアップがあって新鮮。
で、先日 TDD Boot Camp 2020 Online #1 - connpass が実施された時1に、YoutubeLiveで公開された基調講演&ライブコーディングのコメントでの質問回答を YASUI Tsutomu (@yattom) | Twitter さんとさせていただいたのですが、その時に、これまで何度も基調講演聞かせてもらったおかげか、twadaさんが喋ってる内容がある程度予知できることがわかり適宜関連リンクとかを投下していました。
今回はそれをベースに、基調講演&ライブコーディングを聞きつつ、それをもっと楽しむために役立ちそうなリンクを集めてみました。[]内の数字はだいたいの時間です。リンク貼ろうと思ったのですが力尽きたので挫折しました(許して><)。
このリソースも有意義!とか、ここ間違ってる!とかこれはいらないでしょ!みたいなご意見があればどしどしいただけると。 ある程度手直ししたところで本家コミュニティの皆さんにも相談して本家サイトのどこかにお引越ししてもいいかな、とも思ってたりしてます。
それではどうぞ。
https://www.youtube.com/watch?v=Q-FJ3XmFlT8
TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング
副読リンク集
- [24:13] 書籍『テスト駆動開発』の話 https://www.amazon.co.jp/dp/B077D2L69C
- [24:54] 絶版になってしまった『テスト駆動開発入門』 https://www.amazon.co.jp/gp/product/4894717115
- [25:18] 絶版になってしまった本たちは https://www.slideshare.net/t_wada/osh2014-sprit-of-tdd のスライドのP69見るとインパクトがわかりやすいと思います。
- [25:28] 再販された本たち
- 達人プログラマー:https://www.amazon.co.jp/dp/B06W567M44
- [27:10] Clean code that worksはSelenium Conf 2019の基調講演も参考になります https://t-wada.hatenablog.jp/entry/clean-code-that-works
- 脱線ネタ:ここに出てくるウォード・カニンガムさん、技術的負債の生みの親でもあります。 https://t-wa
- da.hatenablog.jp/entry/ward-explains-debt-metaphor
- [31:30] TODOリストについてはTDDBCのイベントの方の懇親会LTもありました。https://speakerdeck.com/nihonbuson/tddbc-2020-online-lt
- [38:14] 細かい単位のリファクタリングは、まさにこの後のデモで出てきます。[1:49:06]あたり。
- [39:19] リファクタリングのやめ時については、https://gihyo.jp/dev/serial/01/tdd/0017 でも同様の議論がされています。
- [42:02] FizzBuzzお題についてはこちら
- [46:15] プログラマの三大美徳についてはこの辺りが参考になります。 https://xtech.nikkei.com/it/article/Watcher/20061005/250057/?rt=nocnt
- [47:45] しれっと出てきたモッキングとかスパイについてはこの辺。
- [50:26] GFM: https://sugarnaoming.github.io/markdown_manual/chapter4.html#gfmgithub-flavored-markdown
- [52:26] まだテストコードになってませんが、やってることはExtract Testable Componentってリファクタリングに近いです。http://xunitpatterns.com/Extract%20Testable%20Component.html
- [1:01:20]ペアプロについてはこちらの本が参考になります。絶版だけど。。。https://www.amazon.co.jp/dp/4894716992
- [1:04:23]テストメソッド名を母語で書くことについてはこちらも参考になります。https://t-wada.hatenablog.jp/entry/design-for-testability#%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88-%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%86%E3%82%B9%E3%83%88%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89 https://togetter.com/li/514903
- [1:04:58]テストのドキュメントとしての性質は、「Tests as Documentation」とかとも言われてて、下記に記載があります。http://xunitpatterns.com/Goals%20of%20Test%20Automation.html
- [1:05:42]4フェーズテストについてはこちら http://xunitpatterns.com/Four%20Phase%20Test.html
- [1:06:08]3Aパターンはこちら。 https://xp123.com/articles/3a-arrange-act-assert/
- [1:06:24]Given-When-Thenはこのあたりがよくまとまってます。 https://www.atmarkit.co.jp/ait/articles/1403/25/news033.html#022
- [1:08:09]AssertThat使わないの?と言う話が出ていましたが、JUnit5でのアサーションメソッド群についてはここにドキュメントがあります。 https://junit.org/junit5/docs/current/user-guide/#writing-tests-assertions-third-party
- [1:13:46]コンパイルエラーはREDに数えます。というのは Robert C MartinのTDD三原則にも出てきます。日本語だとこちら。 http://www.tdd-net.jp/2009/08/tdd-9534.html
- [1:20:15]仮実装(茶番については)この辺も参考になります。https://blog.fieldnotes.jp/entry/tdd-for-confidence
- [1:21:15]「他人よりまず自分を疑う」ですね。https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E4%BB%96%E4%BA%BA%E3%82%88%E3%82%8A%E3%81%BE%E3%81%9A%E8%87%AA%E5%88%86%E3%82%92%E7%96%91%E3%81%86/
- [1:23:13]Mutation Testingについてはこの辺が参考になるかと。 https://www.school.ctc-g.co.jp/columns/nakai2/nakai286.html
- [1:31:20]アサーションルーレットはこちら。http://xunitpatterns.com/Assertion%20Roulette.html
- [1:32:29]Verify One Condition per Testとかとも言ったりします。http://xunitpatterns.com/Principles%20of%20Test%20Automation.html
- [1:38:27]Clean Architecture https://www.amazon.co.jp/dp/B07FSBHS2V/
- [1:39:56]アサートの内容が密結合していて、一緒にアサートした方がいい場合はカスタムアサーションを利用してアサートをまとめちゃう、って手もあります。http://poohsunny.hatenablog.com/entry/2016/12/27/130910
- [1:46:56]JUnit5での実行順序についてはこちら。https://junit.org/junit5/docs/current/user-guide/#writing-tests-test-execution-order
- [1:49:06]このあたりのリファクタリングの範囲を小さく小さくするテクニック絶妙だと思ってます。
- [1:56:13]実践テスト駆動開発 https://www.amazon.co.jp/dp/4798124583/ メーリングリストもあります。https://groups.google.com/g/growing-object-oriented-software
- [1:56:16]ロンドンを中心とした流派についてはこの辺がとっかかりになるかと。https://speakerdeck.com/twada/history-of-tdd-xpjug-2018-keynote?slide=33
- [2:06:03]@nestedは個人的にJUnit5のハイライトの一つだと思ってます。 https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested 他のテスティングフレームワークにもあって、例えば mochaはこんな感じ https://mochajs.org/#exclusive-tests
-
先日といっても半年以上前ですが、、、、↩