decadence

個人のメモ帳

温泉シバソン#1

自称若者達が雑に作業したりしなかったりする概念っぽいのがシバソン*1

癒やしを求めて温泉でシバソンするって感じで有馬温泉に行ってきた

温泉シバソン#1 - シバソンブログ

温泉入って、美味しいご飯食べれたし、こういうの作れたし満足

最寄り駅からバスで1本で行けると信じて当日バス乗り込んだら、道路封鎖されてて遅刻したのはミスった。バスが山越えで異常に酔うし最寄り駅まで戻されるために往復しなきゃだしつらかった。

続きを読む

PlayのNettyServer

PlayのNettyに対するアダプターとなるNettyServer、こいつが何をするのかと、ここでリクエストを受け取って処理するとこを見る。 play.api...で行うリクエスト受け取ってレスポンス返すとこは、Qiitaの以下らへんの記事見れば良いと思うので省略。ContentTypeを決定するあたりにアドホック多相とか使っててScalaっぽくて好き。

簡単にまとめると、Nettyから受け取ってplay.apiまで渡すまでに↓の過程を踏む

  • play.core.server.NettyServerが↓の持ってる
  • play.core.server.netty.PlayDefaultUpstreamHandler.messageReceivedで↓の呼び出す
  • play.core.server.Server.getHandlerForが↓の持ってる
    • play.core.server.Server.sendHandlerで↓の呼び出す
  • play.api.GlobalSettings.onRequestReceived: (RequestHeader, Handler)では↓の3つの処理が行われる
    • onRouteRequest(request)
    • router.handleFor(request)
    • doFilter(rh => handler)(routedRequest)

以下で触れるのは2.3.xブランチのこのcommit上の話、ただコードを読むだけ

続きを読む

Playのsbt-pluginに含まれる様々なtrait

ScalaのWebアプリケーションフレームワークであるPlay2、基板を支えるsbt-pluginに含まれる色々なtraitを見る。なおPlayのPluginとは別物なので注意。

PlayRun, PlaySettingsあたり非常に興味深い。playのsbt設定や、runを実行した時にどのような処理が行われるのかが分かる。

以下で触れるのは2.3.xブランチのこのcommit上の話、ただコードを読むだけ

続きを読む