A Day in the Life

Ruby on Rails が簡単というのはウソ

Ruby on Rails が簡単というのはウソ

綺麗に手順を踏んでやる場合には Ruby 初心者は躓くところが多い && 最初の学習コスト高いというのは納得。なおWebエンジニアの場合、こんな感じなのかな。たぶん。

  • Windows だといろいろうまくいかないので Mac 買う or 仮想マシンに Linux 入れる
  • Mac ならhomebrew とか、一般的な開発ツールを入れる
  • 自分で好きなエディタが無ければうかつに V や E がつくエディタはつかわない。宗教論争を避けるため TextMete にする。Windows は知らない…
  • OS標準の Ruby は使わず rbenv いれてユーザ権限で Ruby をインストールする
  • Ruby は 1.9.2 の最新を入れる
  • ググっておかしなチュートリアル読むより http://guides.rubyonrails.org/ にまとまってるので、最初からやっていく
    • !この辺でつまずいて Rails に愚痴を言うエンジニアは使わない方が良い。別に何使ってもあなたならたいして生産性変わらないと思います。
  • git は知らないと生きていけないので覚える
  • この辺でアプリのコアライブラリの選択
    • TestUnit or RSpec
      • 実装としてはやれることが同じ。考え方の違い。RSpec は現在なら単体でさまざまな機能持ってるのでオススメだけど、学習コスト高い
      • 他に webmock(HTTP stub), FactoryGirl( fixture replacement ), timecop (時刻操作), rr (mock, stub, double, spy ...), capybara (end to end) あたりのキーワード知ってれば適当に調べて書ける
    • ERB or HAML
      • 好みの問題なのでどっちでも。DHH 派なら ERB で。
    • SCSS or CSS
      • SCSS は CSS と文法同じなので別に SCSS の機能使わなくてもふつうに書くだけ
    • Coffee or JavaScript
      • どっちでも書ける。こちらも好みの問題ですしね…。
    • データベースは?
      • NoSQL である必然性がない限りは RDB で。Heroku 公開前提なら PostgreSQL, 他なら MySQL でいいんじゃ
      • ちょっと話しはずれるけど、ふつうのサービスなら Heroku or AWS で公開するのがオススメで、クラウドアーキテクチャにあったミドルウェア選択するのが良いですよ。
  • Ruby / Rails のベストプラクティスを知りたくなってくる
    • GitHub 社のメンバー(https://github.com/about )が作ってるレポジトリを clone してソースよむ。だいたいクオリティ高い。
  • どのライブラリがいけてるの?
  • 継続的インテグレーションないと死んじゃう…
    • http://travis-ci.org/ という便利なサイトがありましてね…
    • travis-ci 上で Rails アプリのテストも実行できる
      • ちなみにわたくしは Jenkins 使ってますが…
  • 何処に deploy すればいいの?
    • まずは Heroku。Heroku 遅い?そんなことないよ。文句があるなら @ayumin に言おう!
      • アプリケーションの処理速度が遅いなら、あなたのコードを疑いましょう
    • Heroku でだめならふつうに AWS(EC2) で。
  • この頃には Rails の新しいバージョンがリリースされてる…
    • テスト書いてる -> upgrade しよう。クソコードでない限りは(だいたい)うまくいきます。
    • テスト書いて無い -> 諦めてそのマイナーバージョンを使い続けよう。テスト書いて無くて技術的負債を積み上げても先にやりたいことがあるんだろうから小さいことは気にしない
  • いろいろ Rails 使ってる人に尋ねたい!教えて君したい!
    • 東京近郊にお住まいなら Rails 勉強会東京(も良いと思うけど) ではなく asakusa.rb というモヒカンが斧持って集まってる集会があるので参加すると良いと思います。あえて。
  • サービスリリース\(^o^)/

Rails は Rails 周りの OSS のエコシステムが発達しているおかげで、巨大だけど様々な物が集約されてるし、そこから学ぶのが楽しい、自分でそこにコミットできるのが楽しい、って人は知識としても色々学べると思います。反面シンプルなアーキテクチャが好きな人はあんまり好きになれないというのも解るけど、いったんは巨大なフレームワーク・ライブラリから知識を吸収して離れると得られる物が多いとも思う。

あとこれはあくまで Webエンジニアに向けの話しで。

サービス作りたくて Rails を選択した人で、全くプログラミングが解らなくても、サービスを公開したい熱意があればがむしゃらに手を動かすと一ヶ月ぐらいで Ruby 覚えて Rails で Heroku にデプロイしてサービス公開できると思います(前例があるので…)。それ以上かかる人はたぶん情熱が足りないので Rails 以前にそのサービス考え直した方が良いんじゃないかなー。

記事の一覧 >

関連するかもエントリー

さいきんの Rails サービスを高速化をしてみた
先日のももクロハッカソンで出会った wantedly を作ってる仲さんがと言ってたので、面白そうなので wantedly を速くしてみました。wantedlyちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそ...
先日のももクロハッカソンで出会った wantedly を作ってる仲さんがと言ってたので、面白そうなので wantedly を速くしてみました...
Rails3レシピブック 190の技を読んだ
Rails3レシピブック 190の技を読んだ読みました。僕は Rails 2.0 世代からいきなり 3.0 をやり始めて、特に routing 周りの変更でだいぶ困ってたんだけど読んですっきり。もっと早く読みたかった!!旧世代(Rails 1,2)から Rails 3 やろうと思...
Rails3レシピブック 190の技を読んだ読みました。僕は Rails 2.0 世代からいきなり 3.0 をやり始めて、特に routin...
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1.8倍速になった
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1.8倍速になった流しのフェローが Ruby 2.0.0 速いって言ってたので、いやいや速いっていっても〜、と思って社内の Ruby 1.9....
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1...