コモディティ化するエンジニア

組み込み系のSI屋から、Railsを扱うWeb系のベンチャーに転職した筆者が、日々ミジンコなりに情報を綴るブログ。

Rubyで写経:テスト駆動開発 第5章「原則をあえて破るとき」

テスト駆動開発という本を題材に、dodosoft のメンバーでもくもく写経会をやっています。
各々が違う言語で取り組んでいるので、言語ならではの悩み、言語共通のコンテキストを共有できて、なかなか学びがあります。

テスト駆動開発

テスト駆動開発

会場は ラクスル株式会社 の会議室です。いつも弊社ありがとうございます!


第5章 原則をあえて破るとき

TODOリスト

  • $5 + CHF = $10
  • $5 * 2 = $10
  • amount を privateにする
  • Dollarの副作用どうする?
  • Moneyの丸め処理どうする?
  • equals()
  • hashCode()
  • null との等値性比較
  • 他のオブジェクトとの等価性比較
  • 5 CHF * 2 = 10 CHF
  • Dollar と Franc の重複
  • equals の一般化
  • times の一般化

自分の気付き・感想

  • コピペのメンタルコスト

みんなで話した気付き・感想

  • 「Kent Beck が設計なんてどうでもいいって書いてたよ」
  • コードの重複排除は3つ目が出てきた時かなー
  • 今回のケースは、実際の実装を考えると、コピペじゃなくて、いきなり共通化しちゃう気がする
  • 実際のプロダクトコードを考えると、こんなクソコミット残したくないかも。。。
    • チームの理解が大切?
    • 恥ずかしさを捨てる?
    • squash marging を使えば、恥ずかしいのはコミットコメントだけになるので便利
      • ブランチの切り方統一すれば、featureごとにコミットがまとまるので、いいぞ!
      • ラクスルのハコベルプロジェクトではこのやり方をしている
  • t_wada さんの「クソコード」についての和訳バリエーションがすごい

実装面でのひっかかり

  • なし

以上です!
この章については何も言うことないですね。。。とりあえずコピペしたので、ここから重複を排除しつつテストも書いていくという話になるかと。
このクソコードがどう洗練されていくのか楽しみです!

次回は第6章です。