パルカワ2

最近はFlutterをやっています

YAPC::Asia 2014のアプリをざっくり読む

モズニオンが公開していると言っていたので1:30まで読む。
https://github.com/jpa-perl/yapcasia2014-app


どういうアプリかは、ヤップシーに行ったので大体知っている。
アプリを読むときは、まずapp.psgiから見てみる。今回の場合アプリの直下にapp.psgiがないので、scriptにあるのかなーと探してみたら、serverという名前の怪しいヤツがいた。

script/server

shell scriptでcartonを使ってetc/app.psgiをplackupしている ビンゴ〜

etc/app.psgi

アクセスログ、セッション、フレームワークとかがわかる。
エラーの出し方も、HTTPExceptionsを使うのだなあというのが分かる。

YAPCAppを見れば良さそうというのがわかったので読む。

lib/YAPCApp.pm

startup, setup_* あたりが最初に読み込まれるのだろうと予想して読む。

startup

まずstartupから。Mojoliciousの中で使われている。
https://github.com/kraih/mojo/blob/master/lib/Mojolicious.pm#L179

setup_*を呼び出してもろもろセットアップしている。
setup_*でパッと見よくわからないのは、とくにないのであとで見る。

helperをセットして、フックを追加している。
around_dispatchで、Localizerやcontainerの準備をしてるっぽい

setup_routes

URL一覧みたいな感じか

setup_xslate

Xslateの準備
functionがめっちゃ多い

setup_container

etc/container.plを読み込んでる。
DEPLOY_ENVによって読み込むファイルが増えたりする。
そのファイル自体がないので、とりあえず無視して進める。
あとhelperにgetを追加している
YAPCApp::Containerを使ってるみたいだったので軽く読んだら、Scope::ContainerとかObject::Containerとか使ってない独自実装だった。

まとめ

1:30になってしまった。もう寝る時間だ!
大体どういう風になっているかというのはわかった気がする。
次はsetup_routesからControllerとactionを読んでいく。
(次があれば…)