半空洞男女関係

思ったこととかプログラミングしてるときのメモとか色々かいてます。メールはidそのままgmail

Factory, Service, Repository

読書会をしながら、皆でちまちまとDDD本を読み進めている。

FactoryはServiceみたいなものだけれど、Serviceはもっとドメインに近い部分で、Factoryはどちらかと言うとコードのメンテナンスせいであったり、ドメインの思考を支援するものであるかなと思った。

Serviceはもっと重要なものであるけど、エンティティとしても、値オブジェクトとしても表現しにくいものを表現するものなのかなと思う。

Repositoryはまだ読んでいないのだけれど、FactoryとRepositoryはやってくれることとしては同じことかなと思っていて、Factoryはルートにあって、Repositoryはそれ以外なのかなと想像している。

新しく日記を作った

ブログの枠1つ研究ノートとして使ってて、Privateにしてたんだけど、特にいらないので、MT形式でエクスポートして記事全削除した。

どうでも良いこととか普段の日記を書き留める場所として使う予定。 こっちはテクノロジーの記事とかに絞ることにする。

mactkg.hatenablog.jp

よろしくおねがいします。

DataGrip w/Presto JDBC DriverがTreasureDataと相性悪い問題

tl;dr

最近IntelliJからTD使おうとしてうまくいかないな、というときは 0.179のPresto JDBC Driverを使う(最新は0.181)

https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.179/presto-jdbc-0.179.jar

Treasure Dataのかたにworkaroundを教えてもらった。

  • パスワードにダミーの文字列を入れる。
  • SSLを有効にする。jdbc:presto//api-presto.treasuredata.com:443/td-presto?SSL=true

問題

IntelliJからTreasure DataのPrestoアクセス出来る機能があるんだけれど、その通信のためにはPrestoが提供しているJDBC Driverを使う。ただ良い感じに設定してもうまく行かなかったので軽く調べたところ、とりあえずバージョン下げて使えば良いことがわかった。

どうやら0.180から入ったこのコミットが原因っぽい。 https://github.com/prestodb/presto/commit/defabcba4e1b89d5df536da51258cfdbfea906cb

TreasureDataの認証はUsernameにAPI Keyを入れて、Passwordは空欄でやり取りするという方式なのだけど、0.180からValidationをきちんとするようになってPasswordが空欄だと怒られるので、うまく接続できなかったという感じ。

TD側でPasswordは無視されるんで、適当に入れとけばいいじゃんと思いきや、それはSSLで通信しなくてはならず、うまくいかなかった。

というわけで、ひとまず0.179のバージョンを使えば良さそうです。

https://repo1.maven.org/maven2/com/facebook/presto/presto-jdbc/0.179/presto-jdbc-0.179.jar

元気があったらレポートする。