技術書典4で『Swiftで書いておぼえるTDD』という同人誌を出展します #技術書典 #く-07

はじめに

おばんです、月ノ美兎のプリクラ機の声がツボにハマった田中です。(動画の10分くらいから)

www.youtube.com

さて本題ですが、明日開催の技術書典4で『Swiftで書いておぼえるTDD』という同人誌を出展します。 このブログでは宣伝として、本の魅力と、執筆にあたって込めた想いなどを書いていきます。

dev.classmethod.jp

『Swiftで書いておぼえるTDD』

「Swift でテスト駆動開発に入門する」本です。

f:id:ktanaka117:20180421192742p:plain

みどころ

  • TDDについてわかる
  • TDDでSwiftを解説する、しかもサンプルコード付き
  • テストと型によって駆動するSwiftらしい設計
  • SwiftでTDDをするときの課題とその乗り越え方

世の中にはJavaで解説されたものが多い

TDDってJavaで解説されたものばっかじゃね...? TDD自体は言語にとらわれない開発手法ではあるのですが、実際のところ、言語によって書き方や設計思想、どういうところをテストしなければいけないかは変わってきます。 仮に初歩的な内容の解説だったとしても、早いうちから言語特有の書き方が出てくるはずで、Swiftで書いた場合どうなるか解説したものは世の中に多くありません。 新しいことを学び始めるときは、なるべくわかりやすくハードルが低くあるべきだと思ったので、Swiftを普段書いている人がTDDに入門しやすいようにしたいという想いでこの本を書きました。

TDD ってなんか難しそう...

自分もそう思っていたのですが、コードを書きながら理解していったらわかりやすかったという経験がありました。 『テスト駆動開発』というバイブルも同じような書き方になっているのですが、『Swiftで書いておぼえるTDD』もそれにならって、コードとともにTDDを解説する内容にしました。 ぜひ本を読みながら写経してみてほしいです。

仕様

目次

謝辞
はじめに

第1章 TDDとは
1.1 TDDのメリット
1.2 TDDのデメリット
1.3 レッド/グリーン/リファクタリング
1.4 チームの理解を得よう

第2章 書いておぼえる TDD
2.1 開発環境
2.2 サンプルプロジェクトのリポジトリ
2.3 演習問題
2.4 ポーカーの言葉の整理
2.5 トランプの言葉の整理
2.6 カードの文字列表記(インスタンスの生成)
2.7 カードの文字列表記(文字列表記の取得)
2.8 カードの比較
2.9 ツーカードポーカーの役を判定(ペア、フラッシュ、ハイカード)
2.10 この章のまとめ

第3章 2018 年現在の Swift での TDD 開発
3.1 ビルドが遅い問題
3.2 モック自動生成ツールが不足している問題
3.3 他のIDEにできることがXcodeにできない問題

第4章 参考文献
4.1 『テスト駆動開発』
4.2 『実践テスト駆動開発』
4.3 『Test-Driven iOS Development with Swift 4』

著者紹介

さいごに

TDDについてディスカッションしたい

今回本を書いて、自分が考えるTDDについて大きめにまとめて、整理することができたと思っています。 読んでみて「ここは良い説明だった」とか、「もっとこう説明した方がよい」というところがあれば教えて欲しいです。 「読んでみた」ブログを書いたり、疑問が生まれたりした人は、この本を書いてよかったなと思うので、ぜひTwitterでメンションください。(@ktanaka117) これをきっかけに、すでにTDDに詳しい人や、これからTDDを始めて疑問が生まれた人と意見を交わせると僕としてはすごく嬉しいです。

ディスカッションだけでなく、SwiftでTDDペアプロする活動というのを最近やり始めています。 一回やってみた感じだと、どういう設計思想でコードを書くか、どういう観点でテストを書くかという考え方を共有できるのでとても有意義でした。 僕からもお誘いする人もいると思いますが、逆にお誘いしてもらえたら嬉しいので、声をかけてください。