Parser.java
において、処理用の一時変数およびfor
の利用を禁止する
- なし
Stream
処理になれる- 一時変数の排除について考える
as
を使って enum 変換をする
- レガシー感を出すため、ちょっと
bobio
を修正status=ok
をstatus=1
に変更
Status.java
を適当に作成MoreResultTest.groovy
を作成
as
の第2引数は別にコンストラクタのためにあるわけでは無いことを理解するString -> Enum
の変換もハマる事を理解する
String
を受けるとLocalDate
にして返す関数を作成するDateFormatter.java
とする- ヒント: Javaはメソッドは関数合成出来ないので、最初から関数で用意しておく
- ヒント:
andThen
はFunction
のメソッド
as
を使って date-time 変換をする
- 日付の項目を
bobio
に追加start=20170615
StartDate.java
を適当に作成- フィールドは
LocalDate
- フィールドは
MoreResultTest.groovy
を作成
as
の第2引数は別にコンストラクタのためにあるわけでは無いことを理解するString -> LocalDate -> StartDate
の変換もハマる事を理解する- 関数合成を知る
AnotherResult.java
を作成し、別の方法で同じ様な事を実現する- 先にキーを指定し、任意回数の
map
をしたあとに任意の方法で取り出す - ヒント:
Optional
- 先にキーを指定し、任意回数の
- 加工と取り出しを分けるため、加工しつつ取り出す
as
は廃止し、かわりに加工だけを行うmap
を設ける - enum 変換、date-time 変換も行う
AnotherResultTest.groovy
を作成
- 任意回数の変換処理を行う方法を考える
- 内部クラスを扱う
Result.java
およびAnotherResult.java
の様なラッパーを使わずに、Map
を直接扱うテストを書く
MapTest.groovy
を作成- ただしテストに直接
Map
処理のコードを書くことになるので、一部伏せ字とする - 必要なテストが出来れば、必ずしもサンプルと全く同じ行や内容にならなくても良い
- ただしテストに直接
- ラッパーとの違いを考える機会を作る
- ラッパーが手に馴染んだかを知る
- ラッパー無しが楽だと思うか、ラッパーを作るコスト < ラッパーの使いやすさだと思うか
- 個人差や状況差はあるが
- 一時変数の排除について、他実施者と議論する
- ラッパーのメリットデメリット、その他考察を他実施者と議論する
- なし
- 一時変数について考えて欲しい
- 目線移動について考えてみて欲しい
- 改行位置について考えてみて欲しい
- プリミティブの排除について考えてみて欲しい
null
の排除について考えてみて欲しい
from https://gist.github.com/suzuki-hoge/810b75d07bc4854070a264186bc23c4b