www.tmotooka.com


PHPerのためのRuby(Rails)入門

間違いとかあれば About the Author & Contact から連絡をお願いします。

最終更新 2021/02/28

公式ドキュメント集

ruby関係の公式ドキュメントは、揃いも揃ってSEOが激しく弱い(公式が弱いと言うより公式でないものが強いと言う方が正しい?)ので、普通にググっても公式ドキュメントに辿り着くのが難しい。その結果として、信頼できるかどうかわからない情報を参照して開発することになり、精神的に安定せず、rubyを使おうという気持ちが消える。ここのリンクから辿って公式を見て、理解できない時はググって非公式の情報にあたると良い。こうやって信頼できる情報に辿り着けるならば、rubyは(型の取り扱いに目を瞑れば)最高の言語の一つだと言える!!

信頼できるドメインたち

上記の情報を言い換えると、 ruby / rails の情報をググった結果としてこれらのドメイン(またはそのサブドメイン)のページが出てきたら勝利。 site: 入れて検索しろよって話はあるかもしれないが…。(公式サイト以外の情報からrubyに入門すると、どれが公式サイトなのかわからんようになる。)

ローカル開発環境構築

基本文法

あとで書く。リファレンスマニュアル見とけ。

使うコマンドたち。

以下は、既存のRailsアプリの中での話。

RDocとYARD

RDocは標準のドキュメントツール。JavaDoc的な。 なぜか知らないけどもRDocでは引数や返り値の型情報を書けないっぽい。YARDだとそれができて良い意味で PHP Doc っぽい type hinting ができる。YARDのドキュメントとしてビルドしなくてもRubyMineはYARDの指示を読み取ってコーディングを助けてくれるらしい(未確認)。 YARD Features のページにある @param@return を書けるだけでも、rubyが最高の言語に化ける。

# Reverses the contents of a String or IO object. 
# 
# @param [String, #read] contents the contents to reverse 
# @return [String] the contents reversed lexically 
def reverse(contents) 
  contents = contents.read if respond_to? :read 
  contents.reverse 
end

このコード例は上記の YARD Features からの引用。

erbテンプレートエンジン

erb = Embedded Ruby の略。 HTMLの中にrubyのコードを埋め込む感じ、つまり古来のPHPみたいな感じで書ける。Railsのデフォルト(執筆時点)。PHPerにとって直感的。

slimテンプレートエンジン

タイプ数が少なくなるのは確かだが、覚えるべきことが多い。採用されていることは多いようなので頑張らないといけない。 HTMLを直接書くことができるので、理論上、表現できないものというものは無い。 公式リファレンスを見て慣れろ!!

よく使うもの

XSS対策(PHPで言うところの htmlspecialchars に相当)がいつ動いて、いつ動かないのか?は、注意。開発時に真っ先にテストすると良いだろう。

unit test

(まだ書いてない)