These are chat archives for scalikejdbc/ja

28th
Oct 2014
Manabu Nakamura
@gakuzzzz
Oct 28 2014 04:40
Eitherデフォルト提供しない、Future/Try はデフォルト提供が使い勝手的に良さそうな気がします。 互換性崩しちゃいますが。
Kazuhiro Sera
@seratch
Oct 28 2014 05:04

Future をデフォルトにして既存のコードに悪影響を与えるとしたら、こういうケースかな。

DB.localTx { implicit s =>
  // メインの DB 処理とは別で Future を返すようなケース
  Future { 
    // 外部 API 呼び出しなど connection 使ってないところで時間かかっている
    // 本当は localTx の外の方がよいが Future は connection つかまないから大丈夫という前提でここにあるかもしれない
  }
}

こういうケースで Future が transaction に参加すると、ムダに connection をつかんでしまう。
こんなコードを書く方が悪いと考えるか、意識的にやってもらった方がハマりにくいと考えるか。

Kazuhiro Sera
@seratch
Oct 28 2014 05:10
そう考えると Future のデフォルト適用には否定的になってくる。で Try だけデフォルトにするかというとだったらもう全部 import で、という気がします。
Manabu Nakamura
@gakuzzzz
Oct 28 2014 05:14
なるほど、可能性としては上記ケースもありそうですね
全部 import で、なら互換性維持できるし、それはそれで良さそう