Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第28章 グリーンバーのパターン #34

Open
at-grandpa opened this issue Jan 10, 2018 · 5 comments
Open

第28章 グリーンバーのパターン #34

at-grandpa opened this issue Jan 10, 2018 · 5 comments

Comments

@at-grandpa
Copy link
Owner

テストを通すためのパターン集。

@at-grandpa
Copy link
Owner Author

仮実装を経て本実装へ

  • まずはべた書きの値を返してグリーンバーへ
  • だんだんと本物の式や変数に変えていく
  • なぜ消すものを書くのか
    • 動いているほうが価値があるから
    • 昔の自分はそうだったなー
    • 今はグリーンバー中毒
    • テストがおかしなことに気づくよ
  • 仮実装の有効性
    • グリーンバーは安心という心理的効果
    • 目の前の問題に集中することができる
  • 三角測量が退屈になってきたら、仮実装や明白な実装を使えば良い

@at-grandpa
Copy link
Owner Author

三角測量

  • 二つ以上の例があるときだけ一般化する
    • こうしないと、一般化が正しいかどうかがわからなくなる
  • 無限ループの可能性もある
    • 三角測量で二つの例を通したら、assertionは二つあったら冗長なので、片方を消せる
    • 片方を消すと、べた書きでもテストが通ってしまう
  • 正しい一般化が本当にわからないときだけ三角測量を使うようにしている

@at-grandpa
Copy link
Owner Author

明白な実装

  • シンプルな実装はそのまま実装してしまおう
    • 見えている時はそのまま進んで良い
    • ちょっと躓いたらあともどりして、次の歩幅を刻もう
    • まずは「動く」を仕留めよう。そのあとに「きれいな」を実践しよう
  • 仮実装や三角測量が刻む中間地点は、特別に重要というわけではない
  • 明白な実装はセカンドギア

@at-grandpa
Copy link
Owner Author

一から多へ

  • コレクションのテストの書き方
    • まずは単数での実装をし、テストが動くことを確認
    • 次にコレクションのテストを書く
  • 変更の分離
    • 引数を足す形で実装することで、他のテストに影響を与えない形で実装できる

@at-grandpa
Copy link
Owner Author

この章で得た知見

  • 「動いている」「グリーンバー」は正義
    • そのためなら仮実装も惜しまない
  • 一般化がわからなくて明白な実装が難しい場合は三角測量
  • 実装がわかるなら、一気に明白な実装に進んで良い
    • 迷ったらギアを1段落とそう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant