2012年6月26日火曜日

『Eloquent Ruby』を読む Chapter 2. Choose the Right Control Structure はてなブックマーク

Eloquent Ruby

Chapter 1

Chapter 2. Choose the Right Control Structure
(正しい制御構造を選ぼう)

この章は簡単に。

if not ~ ではなく unless ~ を使おう


・一行のときは後ろに置こう


for ~ end ではなく、each do ~ end を使おう(Rubyのイディオム的に)

・caseについて…は省略

・Rubyでfalseになるのは、false と nil だけ
→0も 'false' (String) もfalse ではない

・?: (三項演算子)がRubyではよく使われる
→fileの値は、allがtrueなら'specs'、falseならlatest_specs'。


・最後はこれ

→@first_nameがfalse(falseかnil)なら''(空文字)が入る。falseじゃなければ、そのまま。

奇妙な構文に見えるが、
count += 1

count = count + 1
であるように、

@first_name = @first_name || ''
の省略形だと思えばいい、とのこと。

よく出てくるので自然と覚えます。

Chapter 3. はRubyのCollection、配列とハッシュについてです。

Eloquent Rubyを読む(インデックス)


2012年6月20日水曜日

『Eloquent Ruby』を読む Chapter 1. Write Code That Looks Like Ruby はてなブックマーク

Eloquent Rubyを読んでいきます。

Chapter1. Write Code That Looks Like Ruby
(Rubyらしいコードを書こう)

第1章はコーディングスタイル。
一般的なことなので、Rubyを勉強した人は軽く読めばいいかも。

・意図の分り易いコードを書こう(Great code shouts its intent)、
・簡潔に書こう(good code is not just clear, it is also concise)

というようなことがまず書かれていて、あとはコーディングスタイルについて。

最初はインデントの話から。

・インデントは two space
タブは厳禁 (→環境によって崩れるから。)


この本を通してこのDocumentというクラスを使うことになりますので、軽く眺めておきます。

・# でコメント
in-line で置くこともできる
return 0 if divisor == 0  # Avoid division by zero

コメントでは、何をしてるかは基本的には書かない(コード自ら語るようにする)
good code is like a good joke: It needs no explanation.

・クラス名はcamel、その他はsnake(Camels for Classes, Snakes Everywhere Else)
定数はCamelにするか、ANTLERS_PER_MALE_MOOSEのように書くか。(この本では後者)

・かっこ(parentheses)は省略できる
引数がない場合は普通省略する(上記Documentのwordsメソッド)

・ブロックは一行のときは{ } 、複数行のときはdo ~ end

In the Wild

各章のIn the Wildというコーナーでは、実際のRubyコードでは勉強したことがどう使われているかということが書かれています。

この章では、Ruby standard libraryのset.rbで、コメントがどう使われているかなどが紹介されています。

内容もまだまだ基本的なことですので、このあたりで英語にしっかり慣れておきます。
平易な英語なので、英語がまだまだの自分でもなんとか読めました。

Chapter 2はControl Structure(制御構造)です。

Eloquent Rubyを読む(インデックス)

『Eloquent Ruby』を読む はてなブックマーク

Eloquent Ruby
日本語訳が出てないせいか、いまいち読まれてないように思いますが、Rubyらしいコードを書いて、Rubyを使いこなせるようになるために、これはすごくいい本です。
入門書を読んでひと通り理解した人に、次に読んでほしい本(というか自分がそうしたかった)。
英語で読むというのは少し大変ですが、その苦労をする価値があります。

著者は、RubyによるデザインパターンのRuss Olsenさん。
著書はこの2冊だけのようですが、外さないですね。どちらもおすすめです。

31章ありますので、1日1章ずつ読んでいけば、一ヶ月で読めることになります。
復習も兼ねて、1章ずつまとめてみようと思っています。