コードリーディング部(Rack編)へ参加した

今日はTama.rbから派生した部活のコードリーディング部へ参加してきました!

今回のテーマはRackでした。

github.com

 

 

主催の@coe401_さんが準備や資料を用意してくださり、Rackがサーバーを起動する仕組みを読み解いていきました!

 

 

ruckupコマンドでRackを立ち上げるところから、どんな順番でRackミドルウェアをラップしていくのか、そしてPumaが立ち上がるところまでの処理を追っていきました!

 

そのほか、Puma以外にもいろんなサーバーに対応できるようにしている処理や、TOPLEVEL_BINDINGはどこのことなのかなどをコードを動かしながら確認していきました!

 

Rack側からPumaへ処理が移っている部分や、色んなオプション対応できるようにしている部分、処理の流れなど、難しい内容が多く理解が追いつかない部分がたくさんあったので、またリベンジしようと思います!!

 

そしてやはりライブラリを読んでいるとメタプロが出てきます。。。!!

Rackを読んでいく中でもeval、instance_evalなどが出てきました。

ライブラリを読んでいくためにはメタプロを理解している必要があるなと改めて思いました。

 

 

再来週から始まるTamarb平日版では「メタプログラミングRuby」を読んでいく予定なので、これを機にメタプロを理解して、コードリーディングももっとスムーズに出来るようになりたいと思います!!