![初心者が躓くのはどこ](https://assets.st-note.com/production/uploads/images/9544498/rectangle_large_type_2_1b01c55ed0e42d629585e6e7e3c4d97f.jpeg?width=1200)
「Swiftで書いて覚えるTDD」を写経した話と技術系コミュニティのありがたさ
技術書典4で販売されていたSwiftで書いて覚えるTDDだいぶ前に読了&写経しました。
noteに感想を書こう書こうと思って半年が経ってしまい、ようやく筆をとった次第です・・
紹介する本はこちら↓
どうやって出会ったの?
kuniwakさんがiOSDCリジェクトコンかで、Swiftで書いて覚えるTDDを紹介していたからだったかと思う。このスライドの参考図書として最後の方に紹介されている。
あと田中さんとiOSDCで直接話したのも大きい。
この本の楽しみ方
読んで一緒に手を動かすのにちょうどいい濃さだった。
テストが気になるけど、どうすればいいのかわからない。
テスト興味があるけど、まず何から勉強すればいいのかわからないという人間にはちょうどよかった。
レッド/グリーン/リファクタリングというのはTDDの開発ステップのことです
1. レッド:これから作るもののゴールを定める
2. グリーン:期待する結果を満たす足場を作る
3. リファクタリング:作った足場を保ちながら改良を行う
上記の過程を手を動かしながら、学べる本だった。
課題はTDDBC仙台07課題:ポーカー
これを見て最初はちょっと尻込みしちゃうのだけど、この本とともに進めていくと、そんなに気負わなくてもいいんだってなる。
↓こんな感じで楽しんでいた
参考にしたのは下記リンクです。
このリンク先の著者もこちらの本と同じ著者様でした。
(ありがとうございます)
なんで、こういう設定をしようかと思ったのかというとiOSDC2018リジェクトコンか俺コンかで、田中さんがライブコーディング中にビルドした時に音声が流れたという出来事があったのがきっかけです。
好きなキャラクターが励ましてくれたら、楽しく出来るなと思いました。
私はサーバルちゃんに成功時には
「すごーーーい」
といってもらい、失敗時には
「へーきへーきフレンズによって得意なことは違うから」
と再生するようにしています。
ビルド失敗しても、ふふってなるのでオススメ。
おすすめポイント
●サイクルを回しやすい
クラスのプロパティをどうやって設定するかなど、段階を追って出来るのが良かった。
本で課題を見る
↓
自分で回答を考えてみる
↓
本を見て写経する
↓
自分の足りてない知識や知らなかったことが明確になるし
引き出しが増える
特に自分で回答を考えてみるというやり方が自分とあっていたようです。
例えば本の中で何を実装するのかというtodoリストを見て、
- [ ] Cardを定義して、インスタンスを作成する
- [ ] CardはSuitを持つ
- [ ] CardはRankを持つ
- [ ] Cardのインスタンスから文字列表記(notation)を取得する
このtodoリストを見て、まずは自分でテストを書いてみる
↓
実装をしてみる
という流れになりました。
まず、はじめての人はtodoリストを作れないというところに問題点があると思うのでいい感じにアシストされているなと思いました。
●段階的にリファクタリングしていく手法を見れたのが良かった
誰しも最初からカンペキに作れるわけではなくて、徐々に徐々に整えていっているんだということがわかった。
まとめ
●本について
出会ってよかったし写経してよかったと思ったいい本でした。
著者様のポーカーのコード全部みたいなぁと思いました。
(お願いします)
どうしても自分で書いてみると、これでいいのかよくわからないままふわふわしてしまうのでお手本がほしいなと思った。
書いてみて、比較してみて、どうしてそういうふうに書けるのかな?
もっと自分の書き方改善できることあるなぁ・・・
引き出し増やしたなぁ
というのをやりたい。
●コミュニティについて
iOSDCやtry!Swiftや技術書典というエンジニアが交流する機会があると、こういう素敵な本が生まれていいなと思った。
こうやって、iOSエンジニア界隈で技術の学び合いがおきて、界隈全体が活性化するんじゃないかなとおもったり。
また、同人誌の技術書は、ここまで技術を高めるのに知識がわかりやすくまとまっている本がなかったから俺たちが書く!!という熱い想いが感じられる。そう、私の欲しかった本はこれだったんだという出会いは多数あった。
こういう機会が生まれるのも、エンジニア同士が交流するイベントがあるからですね。カンファレンスや技術書典を運営していただいている皆様に感謝だなと思いました。
いいなと思ったら応援しよう!
![まりーな/エンジニア](https://assets.st-note.com/production/uploads/images/5374796/profile_79e16f63058afbcd1872fb70bec48d21.jpg?width=600&crop=1:1,smart)