テックアカデミー第3回メンタリングの体験レポート:Rails APIリファレンスの読み方

テックアカデミー

さて、木曜日にメンタリング(師匠とのビデオ通話面談)をしてから、日曜日に再度メンタリングです。中3日なのでけっこう早いです。

こちらもレッスンを進めて質問できることを増やしておかないとメンタリングが無駄に終わってしまいます。

今日は今までずっと疑問に思っていた事を解消するべく1点だけ重要な質問してみました。とは言っても30分しかないので質問を絞らないと。

それは

APIリファレンスの読み方です。

Rails APIリファレンスはこちら
http://api.rubyonrails.org/

APIリファレンスの何が嫌かって、それは「英語で書いてあること」ですよ!!

英語を読んで理解できる人ならいいけど、わかりませんから!

でもこれを見て理解するしかないと思ってて。

しかし理解度が曖昧なままプログラミングなんかしてよいのだろうか。。

会社で共同でプログラミングなんかやってると「ここに書いてあるでしょ!」とか言われるわけですよ。それで「英語なんでわかりませーん」て言っても通用しないってわけ。まぁそれが僕がプログラミングを諦める事になった理由の1つなんですけど。

まぁいまは1人で自分のためにプログラミングしてるので、英語が嫌いっていうかむしろ集団が嫌いなんだろうな‥と思うんだけど。(´・ω・`)

取り敢えずAPIリファレンスの読み方は知っておかないといかんな、と思って先生に聞いてみました。

APIリファレンスの使い方・検索の仕方

例えばredirect_toメソッドを調べようと思うと、ズラッと4つぐらい出てくるのですが。どれを見ればよいのでしょう?

redirect_toはコントローラーで使うメソッドなのでActionControllerというところをみていきましょう。

と、思ったら全部ActionControllerて書いてありますね‥

とりあえず1個1個クリックして見ていきましょう。そうすると詳しく1個だけ書いてあるのが見つかりました。なのでコレを見ればよいでしょう。

なるほど。redirect_to(options = {}, response_status = {}) ですね。
しかし引数は2つあるんですけど、こんな指定のしかたしてなかったと思うんですけど。。

これは引数を2つとれるよ、という意味なんです。

optionsというのは仮引数の名前なんです。

redirect_toを実装している、ソースコードの中でoptionsで定義していますよ。1つ目の引数に値を渡すと、optionsという変数で内部で処理されますよ、という意味ですね。

で、引数に何が入れられるかはここに書いてありますね。

なるほど。そのように読み取ればよいわけですね。

あと検索窓ですけど、2語でも検索できます。これで絞りができるんで便利ですよ。例えばこんな感じで「select form」とやれば。

なるほど。メソッド名を入れるだけじゃなくて、Googleみたいに検索ができるんですね。了解しました。

1人開発と共同開発の違い

実は以前から言われているのですが、Railsは自動的に解釈してやってくれる部分があるので、詳しく知りたくなったり躓いたらリファレンスの細部まで見ていったりする場合があるけど、「そういうものなんだ」と思って次のレッスンに進んでいく事もお勧めされています。

たぶん僕は細かい所が気になるタチで、レッスン外の部分まで入って行っちゃったりするので、そこは本流に戻らないとな‥とは思っています。

それから1人開発と共同開発でも取り組みは違って

先生は現役エンジニアなんですけど、共同で開発してるし、メソッドの仕様をわからずに、サービスで障害起こすのはマズイのでちゃんと動くものをコミットする、というのはやってるそうです。

ただ1人開発だとリファレンスは見ないでやってもいいんじゃないか、とのことでした。これから自分のオリジナルWEBアプリを作っていくわけですが、メソッド調べて、その中のメソッド調べて‥なんてやってたらきりがないもんね。

で、どうするかというと‥

リファレンスより動くコード、同じコードを使え

という事で1人開発のお勧めとしては既に動いている実績のあるコードをコピペして使うのが良いとのこと。

なんでこのコードで動くのか?

自分はこれが気になって止まっちゃう性格なんだけど、もう既に動いている他の部分のソースコードを使いまわししたり、ネットで「日本語」で調べて答えが書いてあったりするので、そういうのを拾ってきてコピペして動きを確かめてみる。

こういう取り組みがよさそうです!

では、プログラミング一緒に頑張っていきましょう!

テックアカデミーはこちら↓

タイトルとURLをコピーしました