Hatena::Groupsubtech

#生存戦略 、それは

-> 12 { 03 / 09 }

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

16:51 | はてなブックマーク - 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 以前にそのサービス考え直した方が良いんじゃないかなー。

HolyGrailHolyGrail2012/03/09 16:59>Ruby は 1.9.2 の最新を入れる
1.9.3じゃなくていいんですか!?

secondlifesecondlife2012/03/09 17:02はい。Ruby 初心者の場合、1.9.3 入れて無駄にはまったら困りますし、ちょっと枯れてる方が良いのです。
実際の所、Rails も3.0.x 系の方が枯れてて扱いやすさ(はまりにくさ)はあります。

HolyGrailHolyGrail2012/03/09 17:28なるほどー!
そしてグループ日記だからコメントに対してスター付けられなかった……

sora_hsora_h2012/03/09 19:38TextMate も一種の宗教と思われるので OSX なら無難に CotEditor, Linux なら gedit とか

kakutanikakutani2012/03/09 23:57まともなチュートリアルあるよ: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

babiebabie2012/03/12 01:47Heroku は thin なので rack-fiber_pool を使えばアホみたいに速くなります。