Entries from 2018-01-01 to 1 year

例外をcase classとして定義してはいけない

Scalaで独自の例外を定義する場合 class MyException(message: String) extends RuntimeException(message) と case class MyException(message: String) extends RuntimeException(message) のどちらが良いでしょうか。タイトルで言っちゃってますが、まず…

AirframeでPlayを動かそうとした

taroleoさんが開発しているAirframeが最近Twitterのタイムラインで話題になっていることが多いので、そろそろ触ってみようかと思い、とりあえずPlay frameworkのDIコンテナをGuiceからAirframeに置き換えるというのをやって見ました。結果は失敗に終わったん…

Homebrewを使うのをやめた

プログラムのお仕事してるといろんな言語やツールをインストールするのが大変ですが、パッケージ管理ツールとかを使うと今度はそのパッケージ管理ツール由来のトラブルに巻き込まれたりするんですよね。それが面倒でHomebrewとかなんとかenvとか使わなくなっ…

play-jsonでReads/Writes/Formatを定義しなくてもよくする

play-jsonはReads/Writes/Formatを定義するのが面倒とよく言われるので、shapelessの練習も兼ねて作ってみました。 https://github.com/tototoshi/play-json-generic scala> import play.api.libs.json._ import play.api.libs.json._ scala> case class Per…

Akka Streamをいい感じに停止させる

Akka Streamを使ったサーバーを書いていて、サーバーの終了処理を行う時にstreamを停止させる必要が出てきました。どうしたら良いでしょうか。 いきなり ActorSystem#terminate とりあえずAkka Stream自体の終了のさせ方。これは無理やり ActorSystem#termin…