対象読者
- 非エンジニア、またはエンジニア初心者でWEBサービスを作りたくてRubyOnRailsを選択して、行き詰まっている、開発を加速したい人(Rails編としているのは、私がweb技術としてRailsしかさわったことがないため)
思い
とりあえず何かサービスを作ってみたい!と思ってRails を選択する初学者エンジニアは多いのではないかと思います。
ひとりではつまづくことも多く、くじけそうになります。
今はRailsで仕事をしていますが、数年前から独学でrailsを学びサービスを何個か作ってきて学んだことを共有したいと思います。
スタンス編
書籍の選び方
- 構成として、最後まで読めば一つのアプリケーションができる、というものがおすすめです。もし何作って良いか分からなければ読み進めながら手を動かすことで一通り開発を経験できます。作りたいものがある場合は、自分がやりたいことが書いて有るページを探して自分のアプリケーションに読み替えて実装をすすめるとよいです。
- 環境構築の情報も掲載されているのでこちらにweb上の情報をあてにするより、インストール作業として完結しているので初心者の場合はこちらの方がよいと思います。
- 基礎 Ruby on Rails はよかったです
やりたいことをキーワードに、死ぬほど検索する
- 書籍があるとはいえ、自分がやりたいことがのっていないことがあったり、ハマったり、どうしたらわからない場合があります。
その場合は、自分がやりたいことをキーワードで徹底的にググりましょう。大抵は解決できます。
例 申請(Application)テーブル に対して申請者(User),承認者(User)という同じモデルに対して関連を保持する都いう実装をしたかったがどうすればよいかわからなかったときは
「Rails 外部キー 任意のキー名」
で検索しました。
よいキーワードで選択できるためには技術的バックグラウンドや経験が必要かもしれないですが、ひたすら検索(訓練)することで欲しい情報にたどり着く確率が上がってきます。
もくもく勉強会に参加しよう
- それでも、それでもひとりではどうしようも解決できないこともあります。くじけそうになったら、もくもく勉強会という勉強会イベントに参加してみましょう。初心者歓迎のイベントもあるのでセットアップなども面倒見てくれところもあります。
connpassはおすすめです
webだけの情報では限界があるので、たまにはそういうところに出向くをおすすめします。
私はちなみに東京郊外でイベントを主催しております
技術編
SQL
- データベースにアクセスするための言語っであるSQLは、web技術が初心者の人にとって壁です。しかし安心してください。大抵のことは、ActiveRecordのファインダーメソッドを使うと直感的にデータを取り出すことができます。書籍にもこの辺の情報は載っていますし、検索しても沢山ヒットするのでよく調べられるとよいです。よいコードやSQLへの理解は動くものが書けるようになってからでいいと思います。
CSS フレームワーク BootStrapを使ってみためを整えよう
- それなりに見た目がまともなサービスを作るには、スタイルシートを適用する必要があります。しかし、これもゼロから自分でつくるとなるとハードルが高いものとなります。スタイルシートの知識も必要ですが、少しの苦労で、整理されたUIをつくることができます。
Javascript
- 動的な画面、非同期処理、位置情報を使った処理をやりたい場合にjavascriptは必須です。自分の実装したい機能に応じて習得するかどうか考えましょう。習得される場合は、jqueryから入られるのがよいかと思います。慣れてきたり、高機能、もしくは複雑な振る舞いをさせたい場合には、オープンソースのjavascript(jquery)ライブラリ、プラグインも充実しているので検索するいろいろ出てきます。
便利なGemを知って使おう
- ruby ではGemというパッケージ管理システムがありRailsでも利用することができます。ログイン処理を簡単に実装したい、ぱんくずリストを実装したい場合にも、そのようなライブラリが充実しており、簡単に実装したい機能を実現することができます。
本番環境の構築
- サービスを公開するには、自分でサーバを立てるか、ホスティングサービスを利用する必要が有ります。HerokuやSqaleが手軽でおすすめです。自分でサーバ設定したい場合はさくらVPSで公開してみるとよいでしょう。
ドットインストールによるさくらVPS入門
heroku
sqale
私のサービス開発履歴
2014/11 リリース 自己分析サービス
2015/04 - 2015/09 開発 認知療法サービス
2016/05 リリース エンジニアマッチングポータルサイト