さわらの技術ブログ

ITに関する勉強の中で学んだことをアウトプットする場です!

「プロを目指す人のためのRuby入門」を読んで

巷でチェリー本と呼ばれている「プロを目指す人のためのRuby入門」を読み終えましたので、その感想を書いていきたいと思います。

良かったところ

単なる文法の説明だけではなく、使用頻度も含めて説明されていたこと

文法の説明の中で実際によく使用するものや滅多に使用しないものなどの頻度も合わせて説明されていたので、文法を覚えるにあたってしっかり覚えないといけないものとそうでないものの切り分けができたので良かったです。 例えば、Rubyにはメソッドの定義をundefキーワードを使用する頃で後から削除することができるのですが、こちらは頻繁に使う機能ではないという説明をされていました。

class User
 # freezeメソッドの定義を削除する
 undef freeze
end
user = User.new
# freezeメソッドを呼び出すとエラーになる
user.freeze #=> undefined method `freeze' for #<User:0x000000013d2e3f40> (NoMethodError)

このように重点的に学習する箇所を絞ることができるのはこの本の良いところだと思いました。

他の言語と比較して説明されていたこと

文法の説明をする際に、JavaScriptJavaなどの他のプログラミング言語を引き合いに出してRuby以外ならどのように書くかが示されていたので、イメージすることができました。 例えば、「定数」の説明だとRubyではメソッドの内部で定数を定義できないのでトップレベルで定義する必要があるということを以下のようにJavaScriptを引き合いに出して説明されていたので、JavaScriptを勉強したことがある身としてはスッと理解することができました。

// JavaScriptの場合
function foo() {
 // 関数内で定数barを定義する
 const bar = 123;

 return bar * 10;
}
def foo
 # メソッドの内部で定数を定義しようとすると構文エラーになる
 BAR = 123

 BAR * 10
end
#=> dynamic constant assignment(SyntaxError)
#  BAR = 123
# ^~~

学んだところ

Rubyの文法が500ページにも渡って丁寧に説明されているので、その全てで学びはありましたが、特に印象に残っているものをピックアップしてみました。

テストを自動化する

テストの自動化というとハードルが高いイメージがあると思うのですが、この本では第3章というかなり序盤にテストを自動化する方法が説明されています。実際にコーディングをしていく上で避けては通れないテストに触れ、自動テストの導入や実行の仕方を学ぶことができるのはこの本ならではの良さだと思いました。

正規表現

正規表現といえば今まで自分自身も曖昧な理解で使用していたものでしたが、この本では1章丸々正規表現に割かれているのでかなり正規表現に対する理解を深めることができました。また、この本だけではなく著者のQiitaの正規表現のハンズオンも一緒に行うことができる点も非常に良かったです。 この章を読むことで以下のような文章から正規表現を使用して「ear」という単語を抜き出すこともできるようになります。

sounds that are pleasing to the ear.
ear is the organ of the sense of hearing.
I can't bear it.
Why on earth would anyone feel sorry for you?

難しかったところ

クラスに関する高度な話題

第7章の「クラスの作成を理解する」の中の「クラス定義やRubyの言語仕様に関する高度な話題」という中級者以上向けの発展的な内容は少し難しかったので、適宜復習をしていきたいと考えています。