ことゆうのOUTPUT

アウトプット成果物の置き場

Rubyの学習(入門書) 1日目(本日2H。累計2H) 学習メモ

ブログ開始記念として、新たなミッションを始めたくなりました。
書き溜めている「やりたいことリスト」から今回選んだのは、

「Ruby on Rails の学習」です。
ドットインストールの講座で手際よくサイトが作られていくのを観て、
「実際どんなものなのか?」を知りたくなったんです。

 

とりあえずの予定としては、以下手順。
①Rubyの学習(入門書レベル)
②Ruby on Rilsの勉強(入門書レベル)
③ドットインストールの講座で作っているサンプルサイトを自力で作成
④自力で簡易な投稿サイトを設計して、その通りに作ってみる

期間は全然見積もれないので、一か月くらいでできたらなあとなんとなく思っています。

 

Rubyは勉強したことはなく、動的型付きオブジェクト指向言語であるってぐらいしか知りません。あ、大昔に参考書を買ったことがあったかも(積読でした)。

 

今日は①のために、Rubyの参考書を購入してきました。Amazonの星とコメントを基に選択。 

パラパラと見たら、テスト実施を本筋で導入しているみたいで、ひとひねりあって良いように感じました。


本日の進捗:読書 1章~3章(2時間) 

コーディング無しの読書のみ+α(関連事項をググったり)。テスト手法が書いてある3章とかは実際やってみないとイメージがわきません。後日サンプルコードを動作させてみる予定。

 

以下に読書中のメモを。

 

●最初に全体をパラパラ見る
・うん、オブジェクト指向です。とってもオブジェクト指向です。
・10章のProcオブジェクトってのが、ラムダっぽいなと思ったら、"10.3.4 Proc.newとラムダの違い"っていう中見出しが。ちょっと楽しみ。
・付録としてRailsについて10ページくらいありますが、Railsの学習は別の本でやることにします。

●最初から読み始め

・入門レベルにおいてもWindowsとLinuxで微妙な違いがあるみたい。私はVagrant+VirtualBoxを使ってLinux上で勉強します。


・P19 メソッドの引数のカッコを書かない記法あり。Haskellを連想させてくれます。

 

・P23

「慣習として、変数名は小文字のスネークケース」

 ...まじか。。Javaに慣れている私には、違和感すごそう。


・P26

「文字列比較が同じかどうか調べるのには==を」

 ...同値比較は==でいけるの?とおもってたら、

 P61によると、文字列クラスのequal?メソッドでは同ー性比較となるらしい。Javaとは逆ですね。
文字列比較に関しては、以下サイトで別途確認しました。

Ruby の文字列比較 [eql?, equal?, ==, ===] の使い分けを汗臭く説明 #ruby - Qiita

 

・P31

「falseまたはnilであれば偽。それ以外は真」

 ...短絡論理演算子で処理つなぎにつかえそう、と思ってたら、実際にそれってテンプレな使い方だそうで。


・P33

「elsif」

 ...予約語にまた新たな字面が。。Bashのelifの時は歴史を感じましたが。この単語の語源を知りたいかもと思ってググってみたら、perlもelsifなんですね。

とほほのperl入門(概要編)

perlが由来なのかまではわかりませんでしたが。


・P42

「%記法で文字列をつくる」

  ...これ、便利そう。「%〇 〇」の形式って、文字列だけでなく、いろいろと応用のききそうな形をしてますね。

 

・P43

「ヒアドキュメント(行志向文字列リテラル)」

 ...バリエーション多いですねえ。<<とか<<-とか<<~とか、式展開の有無指定とか。


・P45

「<<識別子は一つの式とみなされます」

 ...これ、いいね!HTMLとか、まるまる簡単に操作できそう。

 

・P45

「フォーマットを指定して文字列を作る "フォーマット文字列 % 表示したいオブジェクト"」

...この処理に専用の構文を用意しているって、すごいですね。いろいろなところでいろいろともりだくさんで。。


・P51

 「構文エラーが発生します。

 user.valid? && send_mail_to user  

 (中略) は次のように解釈されてしまったためです 

 (user.valid? && send_mail_to) user 」

...Haskellの関数適用の優先順位はどんな演算子の優先順位よりも高い

関数適用の優先順位は高い - 結城浩のHaskell日記 - haskell
ので、見た瞬間違和感がありましたが、メソッドと引数が並んでいる姿にHaskellの面影を見てしまう私が悪いですね。

P67

「Rubyでは現在(中略)公式のコーディングルールは存在しません。」

本日時点でもそうでした。

Rubyアソシエーション: コーディング規約

ざっくりググってみましたが、引数付きのメソッドでは引数リストのカッコはつけるところが多いようです(参照例:Rubyコーディング規約)

 

今後もこの参考書で勉強していきたいと思います。