日々是精進。(はてな館)

日々ネットで調べたり、付箋に書き留めたものをアップしています。子育てで中断しながらも、年に数回投稿しています。皆様の恩恵に感謝しつつ。

日々の記録を残しています。皆様の恩恵に感謝しつつ。

「プロを目指す人のためのRuby入門」を読みました!

みなさまこんにちは。はてなで10個目の記事は、読書感想文。 今回取り上げるのは、こちらの書籍です。

gihyo.jp

チェリー本」という呼び名で紹介される事が多い、伊藤淳一さんの書籍です。(以下もチェリー本と略させていただきます)

f:id:akiko-pusu:20180823215432j:plain

はじめに / 読み手のバックグラウンドなど

こちらの本は、昨年晩秋に刊行されて少ししてから購入しました。 基本的に書籍は紙で読むタイプなのと、手にとって実際に眺めてから自信をもって買うタイプなのですが、なかなか仕事帰りに本屋さんに寄って探す...ということができないので、すぐには買えませんでした。

購入した理由は、やはりなんとか現場でちゃんと使える知識を身につけたかったからです...。

特に、伊藤さんはQiitaやブログなどで rspec の記事をたくさん書かれていて、日々お世話になっていましたので、書籍が出るとなったら外せません! *1

私なりの読み方

積ん読」状態が続きましたが、年末年始にかけて、どちらかというと引き篭もる時間が出来てきたので、読み進めを開始。

あわせて、読みながらも、内容をノートに書いていく、という方法を取ってみました。

いくつかはnoteに写真だけ貼っておきましたので、もしご興味があれば覗いてみてくださいね。

note.mu

特に難儀したところ

読んでいて大変、ちょっと時間がかかったところは、「配列」の章でした。

ページ数も他と比べて多目でしたし、配列関連の関数が色々ありましたので、それを紐解くだけで一苦労。 実際に、ノートへの書き出しも割と多くなっています。(みなさんスラスラ読めたのかな?)

実務でコードレビューの担当になると、同僚さんの書いている箇所で「なんですかこれ?」みたいなところがたまにあって、わりと配列やハッシュの操作に関するところが多かったので、「あー、これ見たことあるなあ」というものも出てきました。

あいかわらず、わたし自身はちょっと凝った関数を使うというのが苦手なのですが、この本のおかげで、ある程度「これはなんだろう???」という感覚は減ってきたように思います。

非常によかったところ

プラグイン(個人)で応用できた!

個人的にコツコツとRedmineプラグインを作ってメンテナンスしているのですが、パッチを当てることも多く、そのあたり実は見よう見まねであったり実際に動かして試行錯誤して作っていた状況でした。

今回チェリー本を読んだことで、このあたりがかなり前進したような気がします。 一番は、このあたりでしょうか。

  • 第7章 クラスの作成を理解する
  • 第8章 モジュールを理解する

敬遠してしまうyieldが怖くなくなった!

実務でもRedmineプラグインでも、たまに出てくるyield。 もちろん、gemのソースを読んだりする場合も、今ひとつyieldがわからない....。

こちらについても、有難いことに1章まるごと解説がありました!

  • 第10章 yieldとProcを理解する

このあたりも、うまい具合に、block_given? を使ってブロックある無しの場合分けを使ってメソッドを組み立てようと思えるようになりました。

基本はそこまでの処理はあまりないのですが、少なくとも「読む」ことの苦手意識みたいなものは、和らいだ気がします。「yieldが出てきた、じゃあ呼び出し側を確認しよう」などなど。

テスト関連もよかった!

手にとって中身を拝見したところ、ちゃんとテストについても記載されており、しかも現場で使っているrspecではなくminitestを利用されているところも、大変気に入ったところでした。

また、書籍の中でサンプルコードがたくさん掲載されているものはよくありますが、学びたいものが本当に小さい単位の時。 大掛かりにフレームワークを起動するとかはしたくない...。

そういう中で、テストを使って実際の振る舞いを確認したり調整することが、とてもシンプルに出来きたのがよかったです。 難解な章でも、動かすことで理解が進むことが多くありました。

ちなみに、こちらの書籍と同時に「テスト駆動開発」も購入しています。

双方眺めていると共通することが多く、「ああ、これはテスト駆動開発にも書いてあったなー」ということが時々ありました。

半年以上たってから本の感想を書くことについて

さて、概ね半年月以上、9ヶ月も経ってから、読んだ本の内容を振り返ろうと書いてみたのですが...。 意外とうまい表現が出てこないことに、われながらがっかりしたり。

でも、こうやってメモを掘り起こしたり、付箋をあちこち挟んだ書籍を手に取ると、いろいろ思い出すことはありますね。また、「ああ、ここの理解が甘かった、読み直さなくちゃ」ということも色々と出てきました。

書いてそのままだと忘れてしまいますが、こうやって掘り起こしたので、細かいコードを書くことはできなくても、「この辺りにこんなのが書いてあったはず...」という、なにか道しるべを得た安心感もあります。

わすれたら、また本をひらけばいいじゃないか、とも。

学習の仕方は色々あると思います。 昭和生まれのわたしの場合の、一例として参考になりましたら幸いです。

最後に。 伊藤さん、勝手ながらこんな具合でゆっくりと読んでおりましたが、時折つぶやきにお返事してくださったり、コメントしてくださったりと、ありがとうございました!

 関連リンクなど

著者ご自身による書籍のサポートサイトはこちらです!

ruby-book.jnito.com

*1:rspecは、rubyのテストのフレームワークの1つです