コードリーディング部(Rack編)へ参加した
今日はTama.rbから派生した部活のコードリーディング部へ参加してきました!
今回のテーマはRackでした。
主催の@coe401_さんが準備や資料を用意してくださり、Rackがサーバーを起動する仕組みを読み解いていきました!
明日開催のコードリーディング部の資料、あまりに殴り書きすぎたのでもう少し注釈を入れつつ整理したところ、ご覧くださいこのボリューム(終わらないのでは…)
— しおい🍪Web開発2年目🎂 (@coe401_) August 9, 2019
※書き終えてshipしていますので、明日ご参加の方は先に予習して下さっても大丈夫🙆♀️ pic.twitter.com/xybuc91QaH
ruckupコマンドでRackを立ち上げるところから、どんな順番でRackミドルウェアをラップしていくのか、そしてPumaが立ち上がるところまでの処理を追っていきました!
そのほか、Puma以外にもいろんなサーバーに対応できるようにしている処理や、TOPLEVEL_BINDINGはどこのことなのかなどをコードを動かしながら確認していきました!
Rack側からPumaへ処理が移っている部分や、色んなオプション対応できるようにしている部分、処理の流れなど、難しい内容が多く理解が追いつかない部分がたくさんあったので、またリベンジしようと思います!!
そしてやはりライブラリを読んでいるとメタプロが出てきます。。。!!
Rackを読んでいく中でもeval、instance_evalなどが出てきました。
ライブラリを読んでいくためにはメタプロを理解している必要があるなと改めて思いました。
再来週から始まるTamarb平日版では「メタプログラミングRuby」を読んでいく予定なので、これを機にメタプロを理解して、コードリーディングももっとスムーズに出来るようになりたいと思います!!