Play2のroutesやscala templateを拡張する際の設定が微妙に使いづらい件 #play_ja

Yes you can also do a clean !
0
Kenji Yoshida @xuwei_k

https://t.co/fofsHMAm Play2 の QueryStringBindable や PathBindable 、独自に拡張できることはわかったけど、メリットとかデメリットとか、どういうとき独自に拡張して使うべきかがイマイチよくわかってない

2013-02-16 00:51:37
Toshiyuki Takahashi @tototoshi

Play 2.x の QueryStringBindable, PathBindable について http://t.co/AukSuBGq 書いた

2013-02-16 12:37:11
Kenji Yoshida @xuwei_k

コメントした。それと、もっと細かい疑問というか反論(?)というかイマイチまだ懐疑的なところがあるので、あとでblogに書くか・・・ http://t.co/8FFxQrD6 "Play 2.x の QueryStringBindable, PathBindable について"

2013-02-16 13:35:02
Toshiyuki Takahashi @tototoshi

templateとかroutesのimportとかをBuild.scalaで設定する仕組みダサすぎるのでなんとかしてほしい。

2013-02-16 14:33:49
Kenji Yoshida @xuwei_k

@tototoshi TaskKeyならまだ自分で仕組み作れるのに、SettingKeyになっていて、なおかつhashの計算が適当 https://t.co/vu9oCk45 なあたりが。(そして"Yes you can also do a clean"にイラッ☆としていた)

2013-02-16 14:38:18
Toshiyuki Takahashi @tototoshi

@xuwei_k あwこれさっき自分もはまったw

2013-02-16 14:40:00
Kenji Yoshida @xuwei_k

@tototoshi 「PathBindableの仕組み知る=>試す=>importsのハッシュが計算されないことにハマる=>(PathBindableの仕組みを知った数時間後)pull reqする」という流れ。ちゃんと見てないけど、もしかしたらtemplateも同じ問題あるかも

2013-02-16 14:42:26
Nakamura Masato @Masahito

v1系では自分で定義しなくてもいろいろできたんだけどなぁ / Play 2.x の QueryStringBindable, PathBindable について http://t.co/QC4PHptF

2013-02-16 14:55:17
Kazuhiro Sera (瀬良) @seratch_ja

Play2 の routes とか templates で「コンパイル」と読んでいるものは実際には Java の Annotation Processing と同じようなもの、というのは意外と初心者向けに説明されることが少ないのかなとふと思った。

2013-02-16 15:06:32
Nakamura Masato @Masahito

@seratch その辺のはなし興味あります。(Javaよくわかってないので

2013-02-16 15:09:15
Kenji Yoshida @xuwei_k

まとまってない文章だが、書いた http://t.co/EMok5JUC "Play2 の QueryStringBindable, PathBindable を使うべきとき" #play_ja

2013-02-16 15:12:13
Kazuhiro Sera (瀬良) @seratch_ja

@Masahito 厳密には同じではないんですが Java で apt 使った事ある人なら「ああ、中間成果物としてソースコード吐かれるのね」とピンとくるかなと。Slim3 や Doma で interface から実装クラスを生成してるのとかが apt の活用例ですね。

2013-02-16 15:15:23
Kazuhiro Sera (瀬良) @seratch_ja

ああ、さっきの tweet、typo してた。s/読んでる/呼んでる/

2013-02-16 15:16:23
Nakamura Masato @Masahito

@seratch 説明ありがとうございます。APTって初めて聴いたので資料探して読んでみますです.Domaでも使ってるんですね

2013-02-16 15:18:59
Toshiyuki Takahashi @tototoshi

自分は routes や ScalaTemplate で「コンパイル」と言ってるけど、あれが DSL -> Scala への言語間の変換だからそう呼んでて、Annotation processingとかとは違う気分。

2013-02-16 15:25:40
Kenji Yoshida @xuwei_k

sbtで「ユーザーは結局plugin作者の想定外に動的にSettingを変更したくなる場合が多いので(再計算する処理がとても重たいなどのデメリットがないなら)とりあえずSettingKeyではなくTaskKeyを使っておけ」と個人的に思ってるんだがその辺りの議論をそれほど聞かない

2013-02-16 15:29:25
Kazuhiro Sera (瀬良) @seratch_ja

@tototoshi ああ、用語の妥当性を問うつもりはないです。もちろん厳密には違うんだけど、メカニズムとして似てるので apt 知ってる人はピンとくるかなと。「中間成果物としてソースコード吐かれるよ」を一言で説明できて便利。まあ apt を知らない人も多いですが。

2013-02-16 15:34:28
Toshiyuki Takahashi @tototoshi

まあQueryStringBindable[Date]くらいデフォ用意しておいて欲しいな。実はあったりしないかな。

2013-02-16 15:34:33
Nakamura Masato @Masahito

@xuwei_k Routeで受けたものをコントローラに渡すのってPlay!1.X時代からありまして、その辺の機能を実装しようとしてるんだと思われます。ドキュメント化されてないのは、方針が決まってないとか手が足りてないとかが原因かと http://t.co/uSGoLtRd

2013-02-16 15:37:39
Kazuhiro Sera (瀬良) @seratch_ja

確かに Java -> Java じゃないので、言い方微妙だったかな。直接編集しない(意識しない)ソースコードが吐かれてるんですよ、apt 知ってたら何となくわかりますよね、くらいかな。

2013-02-16 15:41:52