メタプログラミングRuby 第2版 読んだ。
メタプログラミングRuby 第2版 : Paolo Perrotta, 角 征典 : 本 : Amazon.co.jp
この記事を書く前に内容を理解するために3週ぐらい読み直してるので、最初に読み終えたのは半月ほど前になります。
最近、雨が降ってばかりでほとんど家から出ずコードと戯れてばかりいました。
Rubyistとしてレベルアップを図るならこれだよ、と先輩から薦められたので購入。
メタプログラミングは以前から知っていて、アルバイト先でも少しだけ使ったことがあったのですが、
体系立てられた学びを得られていなかったので読んで学ぶにはいい機会でした。
Rubyエンジニアとして中級者レベルの人が読む対象かなと思います。
「そもそもこれって何でこういう動きするんだっけ?」
って疑問になるRubyの動きの部分を超わかりやすく紹介してくれてます。
メタプログラミングの中身
メタプログラミングというものなどは存在しない。すべてはただのプログラミング
このワンフレーズが非常に印象に残りました。
読み終えるまでRubyのメタプログラミングは、
「OSSなどで頻繁に用いられる、高度なプログラミングテクニック」と思っていました。(実際にはそうですが)
しかし、この本を読み終えてからはその印象がだいぶ変わり。「すごく使い勝手の良い自由なもの」という印象になりました。
そしてそれは、特別に何かをすごいことをしているわけではなく「ただのプログラミング」だということもよくわかりました。
使い勝手が良く自由な反面、危険も存在するのは事実です。
Rubyは君を信頼する。Rubyは君を分別のあるプログラマとして扱う。
Rubyはメタプログラミングのような強力な力を与える。
ただし、大いなる力には大いなる責任が伴うこと忘れてはいけない。
RubyのパパであるMatzさんもこのような言葉を残しています。
すごくシンプルかつディープな言葉ですね。
本では一週間の仕事を例に挙げながらメタプログラミングについて解説してくれています。
ちゃんと曜日ごとに内容が区切られているので読みやすかったです。
読み終えてRubyistとしてのレベルを上げた気がしました。
メタプログラミングの詳しい内容については別記事でカンタンにまとめて書こうと思います。
この読書を機に、OSSのコードリーディングを始めたりできたので良かったです。