give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

【書評】入門書は卒業したあなたに!"Polished Ruby Programming"を読みました

はじめに

最近発売されたRubyの洋書「Polished Ruby Programming」を読みました。
f:id:JunichiIto:20210803075809j:plain:w400

このエントリでは本書を読んだ感想を簡単にまとめてみます。

本書の感想

本書の著者はRubyコミッタとして有名なJeremy Evansさんです。

前書きにも明記されていますが、本書はRubyの中級者から上級者をターゲットにした本です。日本ではどうしてもRubyの本は初心者向けの本が多くなりますが(何を隠そう、僕もそういう本の著者の一人😅)、こういう「骨のある技術書」が出てくるのは非常に貴重だな、というのが第一印象です。

表面的なテクニックをなぞるのではなく、プログラムをどう設計すべきか、その設計にどういった良し悪しがあるか、といった点についても深く議論されています。そのため、サンプルコードだけでなく、英文もそれなりに書かれているのですが、使われている英語は比較的平易で、辞書無しでぱーっと読み進めてもだいたい内容がつかめました。ライブラリのREADMEを理解できる英語力があれば、本書を読むのもたぶん難しくないと思います。

各章の見出し

ざっくりどんな本なのかを把握できるように、見出しを簡単に訳してみます。

  • 第1部「基本的なRubyプログラミングの原則」
    • 標準クラス(コアクラス)を最大限に活用する
    • 便利な独自クラスを設計する
    • 変数の適切な使い方について
    • メソッドと引数について
    • エラー処理について
    • 可読性の高いコードフォーマットについて
  • 第2部「Rubyにおけるライブラリプログラミングの原則」
    • ライブラリを設計する
    • 拡張しやすいライブラリを設計する
    • メタプログラミングの使いどころについて
    • 便利なDSLを設計する
    • テストを書いてコードを検証する
    • 適切な変更(リファクタリングや機能の削除)について
    • よく使われるデザインパターンを適用する
    • ライブラリを最適化(高速化)する
  • 第3部「RubyにおけるWebプログラミングの原則」
    • 鍵を握るのはデータベース
    • Webアプリケーションの設計原則
    • セキュリティ的に堅牢なWebアプリケーションについて

この見出しを眺めるだけでも、巷でよく見かけるRubyの入門書とはひと味違うことが伝わるのではないでしょうか。

おまけ:個人的にびっくりしたところ

サンプルコードにalbum_infosという変数名が出てきていました。"information"は不可算名詞なので、"informations"や"infos"のように複数形にはしないもの、と思っていたのですが、こう書いちゃうのもありなのか!へえ〜!と思ったのが個人的なハイライトでした(笑)。

f:id:JunichiIto:20210803082628j:plain

まとめ

というわけで、今回は最近購入したRubyの技術書「Polished Ruby Programming」の簡単な書評を書いてみました。

「Rubyの本って入門書ばかりでつまんないんだよな〜」と思っている中級者・上級者のあなた!本書はもしかすると「そうそう、こういう本が読みたかったんだよ!」と思える一冊かもしれません。読み応えのあるRubyの技術書を探し求めている方はぜひ本書をチェックしてみてください。

と、言いつつ宣伝w

「最近Rubyを始めたばかり」という人や、自分のことを「初心者以上中級者未満かな」と思っている方は、拙著「プロを目指す人のためのRuby入門」(通称チェリー本)もよろしくお願いします🙏