読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

TDDBC横浜 Second Seasonに参加してきた

勉強会

f:id:STAR_ZERO:20120901124056j:image

細かい内容については誰かがまとめてくれるので省略。

感想

個人的にはTDDとは?っていうところから疑問符が取れない状況がずっとありました。
今回参加することによってその疑問符がある程度とれたような気がします。


個人的に一番印象に残った言葉として
時間がないからテストコードが書けないではなく、テストコードを書かないから時間がない
という言葉です。
実際に体感しては無いですが、何故にみんながテストコードを書くかということが詰まった言葉だと感じました。
デメリットしかなければみんなテストコード書いてないし、メリットがあるからテストコード書くわけであって。
それを肌で感じる貴重な経験させていただきました。


まだテストコードも満足に書けていない状態なので、まずは実践が必要かなと。
色んな人が言っていますが、まずは出来るところからテストコードは書いていこうと思います。


ゲットしたグリーンバンドは仕事中は身に着けます!!


感謝

このような場を作っていただいたすべての方々に感謝です!!
恩返しは学んだことを実践していくことだと勝手に思っています。


ありがとうございました!!

おまけ

某TAの方に
「課題についての設計をブログに書いてくれんですよね?」
みたいムチャ振りがあったので軽く触れときます。
(オレ、設計苦手ですが…)

課題として与えられたのが自動販売機でしたので、考えるべきは利用者からの視点かなぁって思います。


まず、ずっと気になってたこととしてはお金を投入するというメソッドは2つ必要なのでは?ってところです。
理由としては普通の自動販売機にコインとお札を投入する箇所は別々だよね?


次に参加者全員が悩んだところではあるのですが、1円や5円などの扱えないお金についてです。
今回のコードレビュー時に自動販売機のお釣りが返ってくる部分を別で管理していましたが、自分もその意見に賛成です。
パッと思いつくのはお金投入時に無効な場合はreturn値として投入された金額を返すという考えが多かったですが、これは違う気がしてます。
理由はお金を投入するとその投入口からお金が返って来ません。お釣りのところから自分で取り出すしか方法はないと考えますので、別のメソッドが必要かと思います。
ここで上記に書いてますがお金を投入する箇所を2つ分けることに意味がでてきます。
お札のところは無効な紙幣はその場で返って来ますよね?ここはreturn値でいいかなぁって思います。


で、議題になってたExceptionはこの紙幣の投入口にコインが入れられた場合や、逆に硬貨の投入口に紙幣を入れられた場合になるのでは無いでしょうか?
(そもそも投入できたら自動販売機こわれちゃうよ…)


お金の扱いについては最初は int で後からオブジェクトにしていくパターンが多いと思います。
これは自分もどちらも優越つけがたいかなぁって思ってます。
お金をモノと捉えるならすべての硬貨、紙幣ごとにオブジェクトが必要な気もしてます。


今回はステップ2くらいまでしか辿りつけなかったので、これくらいしか思いつかないですが…
今回は自動販売機という物理的に明確なので、各装置と操作できる箇所をすべて別々に管理するほうが色々と都合が良い気がしてますし、悩む箇所も減るのでは?というふうに考えました。


これが自分でも正解とは思ってません。
色々な要因等もあるので実装と現実がうまく繋げられないこともあるかとは思います。
自分なりの考えですが、まずは外側を考えてから中身を考えるようにしてます。
こういうのを考えるのは楽しい反面、しくじると後々めんどうなことになるよね…




こんな感じでいいですかね?某TAの方。


あれ?おまけのほうが長い…