Effective Ruby―あなたのRubyをより輝かせる48の特別な方法

電子版価格
¥3,520
  • 電書あり
  • ポイントキャンペーン

Effective Ruby―あなたのRubyをより輝かせる48の特別な方法

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ B5判/ページ数 203p/高さ 24cm
  • 商品コード 9784798139821
  • NDC分類 007.64
  • Cコード C3055

出版社内容情報

一線級のプログラマが座右の一冊としているシリーズの最新刊。骨太のRubyプログラミング技法を解説。

C++やJavaで開発している一線級のプログラマたちが座右の一冊としている「Effective」シリーズ。そのシリーズの最新刊となる本書は言語にRubyをとりあげ、小手先の対処法ではない骨太のRubyプログラミング技法を解説します。
ごくカンタンに実装できるがゆえに、無駄なオブジェクトを配置して見通しの悪いプログラムになっていたり、アクセスしにくいコレクションを作っていたり、機能的ではない例外処理を施していたり、知らず知らずのうちに実行速度を犠牲にしていたりなどなど、自己流では解決しない問題に正しい道筋を示してくれます。
とくに、誰か他のプログラマーに利用されるコードを、どう書くことで堅牢さや使い易さを確保するかという観点が多いことが、本書の特徴といえるでしょう。
Rubyの良さを殺しているプログラミングを撲滅し、より美しくRubyを輝かせるためのノウハウを、各種サンプルを交えてわかりやすく提示する、中級~上級者向けの一冊です。

第1章 Rubyに身体を慣らす
項目1 Rubyは何を真と考えているかを正確に理解しよう
項目2 オブジェクトを扱うときにはnilかもしれないということを忘れないようにしよう
項目3 Rubyの暗号めいたPerl風機能を避けよう
項目4 定数がミュータブルなことに注意しよう
項目5 実行時の警告に注意しよう

第2章 クラス、オブジェクト、モジュール
項目6 Rubyが継承階層をどのように組み立てるかを頭に入れよう
項目7 superのふるまいがひと通りではないことに注意しよう
項目8 サブクラスを初期化するときにはsuperを呼び出そう
項目9 Rubyの最悪に紛らわしい構文に注意しよう
項目10 構造化データの表現にはHashではなくStructを使おう
項目11 モジュールにコードをネストして名前空間を作ろう
項目12 さまざまな等値の違いを理解しよう
項目13 """"とComparableモジュールで比較を実装しよう
項目14 protectedメソッドを使ってプライベートな状態を共有しよう
項目15 クラス変数よりもクラスインスタンス変数を使うようにしよう

第3章 コレクション
項目16 コレクションを書き換える前に引数として渡すコレクションのコピーを作っておこう
項目17 nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう
項目18 要素が含まれているかどうかの処理を効率よく行うために集合を使うことを検討しよう
項目19 reduceを使ってコレクションを畳み込む方法を身に付けよう
項目20 ハッシュのデフォルト値を利用することを検討しよう
項目21 コレクションクラスからの継承よりも委譲を使うようにしよう。

第4章 例外
項目22 raiseにはただの文字列ではなくカスタム例外を渡そう
項目23 できる限りもっとも対象の狭い例外を処理するようにしよう
項目24 リソースはブロックとensureで管理しよう
項目25 ensure節は最後まで実行して抜けるように作ろう
項目26 retryでは回数の上限を設け、頻度を変化させ、オーディットトレイルを残そう
項目27 スコープから飛び出したいときにはraiseではなくthrowを使おう

第5章 メタプログラミング
項目28 モジュール、クラスフックを使いこなそう
項目29 クラスフックからはsuperを呼び出そう
項目30 method_missingではなくdefine_methodを使うようにしよう
項目31 evalのさまざまなバリアントの間の違いを把握しよう
項目32 モンキーパッチの代わりとなるものを検討しよう
項目33 エイリアスチェイニングで書き換えたメソッドを呼び出そう
項目34 Procの項数の違いに対応できるようにすることを検討しよう
項目35 モジュールのprependを使うときには慎重に考えよう

第6章 テスト
項目36 MiniTest単体テストに慣れよう
項目37 MiniTest仕様テストに慣れよう
項目38 モックオブジェクトで決定論をシミュレートしよう
項目39 効果的なテストを追求しよう

第7章 ツールとライブラリ
項目40 Rubyドキュメントの扱い方を覚えよう
項目41 irbの高度な機能を使えるようになろう
項目42 Bundlerでgemの依存関係を管理しよう
項目43 依存gemのバージョンの上限を指定しよう

第8章 メモリ管理とパフォーマンス
項目44 Rubyのガベージコレクタの動作に慣れよう
項目45 Finalizerでリソースリークを防ぐセーフティネットを作ろう
項目46 Rubyプロファイリングツールを使おう
項目47 ループ内ではオブジェクトリテラルを避けよう
項目48 コストの高い計算をメモ化することを検討しよう

目次

第1章 Rubyに身体を慣らす
第2章 クラス、オブジェクト、モジュール
第3章 コレクション
第4章 例外
第5章 メタプログラミング
第6章 テスティング
第7章 ツールとライブラリ
第8章 メモリ管理とパフォーマンス

著者等紹介

ジョーンズ,ピーター・J.[ジョーンズ,ピーターJ.] [Jones,Peter J.]
2005年からプロとしてRubyの仕事に取り組んでいる。現在はフリーのソフトウェアエンジニアでありDevalot.comのプログラミング関連ワークショップのシニアインストラクタである

arton[ARTON]
30年近くにわたって業界特化型垂直統合企業で主にプログラムを書き続けているエンジニア

長尾高弘[ナガオタカヒロ]
1960年生まれ。東京大学教育学部卒。就職した会社でPCやメインフレームと出会い、当時始まったばかりのパソコン通信で多くの人と出会う。1987年頃からアルバイトで技術翻訳を始め、1997年に株式会社ロングテールを設立(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。

感想・レビュー

※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。

baboocon

4
Ruby中級者向けの様々なTipsを紹介している本。いまの自分には少々難易度が高めだったかも。「構造化データの表現にはHashではなくStructを使おう」、「method_missingではなくdefine_methodを使うようにしよう」など。あと著者のポリシーとしてメソッド呼び出し時の引数の括弧を省略しないというのが特徴的といえば特徴的かな。また折にふれて読み返してみたい。2015/01/15

miwarin

2
すいません、メタプログラミングruby読んでも分からなかった点が若干分かった。。。ような気がします。修行します。2015/05/19

river125

1
全48項目の半分以上が、rubyのトリッキーな仕様の解説や落とし穴からの回避術だった気がする。これは残念なことだ。rubyはもっとストレスの少ない楽しい言語のはず。たしかに書いてることは正しいし大事なことなんだけど……。読み終わって、やっぱrubyっていいな、もっと使おう、という気にはならなかった。2016/03/20

アキオ

1
コードが曖昧になるからと、やたら括弧を付けるこだわってはいけないこだわりに、不安になってしまったが、内容はしっかりしていて勉強になった。とくに、一言で説明しずらかった実装に「オーディットトレイル」という名前があったことがわかったのがよかった。また、ループ内で文字列リテラルをfreezeすると定数になることには驚いた。2015/05/06

joe-re

1
Ruby中級者以上を対象にした本。分かってるつもりだったけど、実はよく知らなかったんだなー、みたいな気付きが多くありました。本書で得た知識は、ライブラリを読んだり書いたりするのに特に役立ちそうです。この実装Effective Rubyに出てきたやり方で書き直すと綺麗になるなー、みたいなことを思える部分がけっこう目につくようになりそうな予感。2015/02/11

外部のウェブサイトに移動します

よろしければ下記URLをクリックしてください。

https://bookmeter.com/books/8991748
  • ご注意事項