Rails を使うようになった。
まだまだ使いこなせている感が出ていないけど、Rails に関しては全くの白紙の状態から今の段階まで早く到達する方法を自分なりにメモって置きます。
大きく分けると以下の 3 つ
- 大量に情報を詰め込む
- Ruby 自体を理解する
- 利用できる gem を知っておく
1. 大量に情報を詰め込む
Rails ぐらいになると、Web には山のように情報がある。
当然これを活用しても良いが、まずは書籍を数冊購入し読み漁る(この手の本は無駄に高いので会社で購入か持っている人に借りるかをした方がよい)。
なぜ書籍なのかというのは、書籍の場合は使用している Ruby や Rails のバージョンが固定されているので、少々分からなくても次々とすすめることが出来る点が良い。
悪い点は、最新の情報に対応していない場合や、もっと言えば使用している API 側でバージョンが変わってしまって本の通りにプログラミングしても動かなくなってしまう可能性がある点。
話が若干それたが、書籍である程度の知識を得る。
その後、動画や Web 記事などを見るとそこに書かれてある内容が把握しし易い。
結局、出てくる語彙をいくら知っているかが肝で、Web の記事などを読んでいて、? マークが出た時に調べていたら本筋に戻れなくなってしまうのでそれをやらないためにも事前知識を蓄えておこうと言うことです。
自分なりに良かった媒体を下記に記します。
- 改訂3版 基礎 Ruby on Rails 基礎シリーズ
http://book.impress.co.jp/books/1114101096
入門書として。
これだけでは厳しいけどきっかけには良いかと。 - Ruby on Rails 4アプリケーションプログラミング
http://gihyo.jp/book/2014/978-4-7741-6410-6
やや辞書的な使い方として。
上記の基礎シリーズに比べるとやや難しい内容かと。 - パーフェクト Ruby on Rails
- Everyday Rails
https://leanpub.com/everydayrailsrspec-jp
電子書籍にはなりますが、RSpec 使うなら読んで損はないかと - ドットインストール
- Ruby on Rails チュートリアル
http://railstutorial.jp/ - youtute
- stackoverflow
- Qiita
2. Ruby 自体を理解する
Rails は結局 Ruby を使っているので(なんか言い方悪い気がする)、本体の Ruby を理解しないとデバックの時に困るし、そもそもロジックが記述できないので本質的な部分を抑えましょうという話。
上記の書籍類には大体 Ruby の説明箇所がとられているので、本を読む時にはそれほど Ruby を感じる事はないけど、実際に自分で製品を作る段階に牙を剥いてくるので知識を得ときましょうという話。
Rails のエラーが出た時にも知識の有無でデバッグのスピードが異なる。
- たのしいRuby 第x版
http://www.sbcr.jp/products/4797386295.html
言わずと知れた入門書。 - パーフェクト Ruby
- Effective Ruby
- メタプログラミング Ruby
- ドットインストール
- Ruby Warrior
ゲームで Ruby を学習できる。
↓ 音が出るので注意
https://www.bloc.io/ruby-warrior#/
3. 利用できる gem を知っておく
Ruby の原則(?)として車輪の再発明はしないというものがある。
ちょっと小慣れてくるとどうしてもロジックを書きたくなるものだが、実はその時間が無駄だったり(頭ごなしに無駄とは思っていませんよ)、より良い物が世の中にはあったりする。
これらは、gem というもので提供されているので、まずは gem を探してからなければ実装とすればグッと開発時間が短縮できる可能性があるという話。
欠点としては、gem 自体に問題が有った場合。
知識がないと採用/不採用の判定や、修正ができる/できないが判断できない点。
まわりに、聞ける人がいれば良いんだけどね。
- The Ruby Toolbox
https://www.ruby-toolbox.com/ - Find, install, and publish RubyGems.
https://rubygems.org/ - BestGems
http://bestgems.org/
以上がざっと Rails の習得の時に過去の自分に会えるなら伝えたい内容です。
あとこれ以外なら開発環境は IDE を使ったほうが良いというぐらいかな。
ただ、Rails と言わず Web サービスを作るにあたっては、サーバーサイドだけでなく、HTML や CSS、JavaScript などのクライアントサイドや、サービスAPI に関する事や、サーバー自体の環境に関することなどもあるので一筋縄には行かない。
ちょっとした内容を読むには、英語も必要だし、込み入ったサービスなら仕様自体の理解も必要と考えるだけで、ちょっとしんどかったりもする。
とはいえ、チームで開発すると思うのでその部分は助け合いながら開発できれば良いかな。。。
(コミュ障気味な自分には厳しいなぁw)
Written with StackEdit.
0 件のコメント:
コメントを投稿