万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    2011年は、Rails3を使おう!〜masuidriveに学ぶ

    http://atnd.org/events/11360

    2011/01/12 19:30 to 22:00

    ■Rails3情報源の歩き方(西村賢@IT編集部)
    ・ゾンビ 学習コンテンツ
     @ITのリンク集で紹介する
    JRubyの記事を書いている
     月間、週間アスキーの編集をしていた。
     最近はPC雑誌を讀人は少ない。
     今は、Matzの追っかけ
     「ソフトウェアは工業製品ではない!」
     「すべてのソフトはRISCになる。」
    Googleの取材もしている。
    Ruby on Railsの情報は英語だと豊富!
    TOEICは良いペースメーカー
     →860点 DHHの公園を聞いて、なんとなくは言ってることが分かる。
     →970点 英語のRSSは苦にならない。
     →990点 今

    RoRの公式サイト
     スクリーンキャスト
     Rails0.5で動いている。
     DocumentationのGuidsがおすすめ。読み応えがある。
     「API.」を付ければ全部見られる
     Residence.int
     railsのユーザ名でgitで公式の
     git log -p
     バグトラッキングシステム
     Rubyはテストが無いライブラリは公開しない文化
     →自分でやった成果を共有
    ・そもそもどうやってプラグイン探すの?
     解答例:Asakusa.rb
     →コミュニティを探すのが良い
     RubyToolBox
     ActiveRecordの暗号化でいいものはあるか?
    ・Railscasts
     話題のトピックを10〜15分で
    ・ASCIIcasts
    ・ScalingRails
     作者:ウェックポーラック、ゾンビのサイトにも関係。
    ・envylabs
     チートシート
    Ruby on Rails Tutorial
    Rails Wiki時々英語、ボランティア部速
    ・Conireaks
    ●カンファレンス系
    ・RubyConf(最大)
    ・RailsConf(もっと最大)

    OSSは人が作る
     何に関心あるか発表すること。
    Rubyのコミッタ
    ・ビジネスとソフト開発を語るDHHはめちゃめちゃ面白い
     地元の街で愛されるイタリア料理屋を
     Fortune500よりFortunemil
     制約こそアートを生む
    ・Yehuda Katz
    ・海外の専門オンライン媒体
     Rails InsideをRSSをとっておけばいい
     Engine Yardブログは要注目
     これからお勉強の人は、はてダの「Ruby」「Rails」をRSS登録
     息抜きにRuby Quicktips
     コアなRubyの話なら、るびま
     ML:Rubyon Rails Talk
     →ノイズがおおいので拾い読み
    ・検索でやたらとひっかかるStackOverflow
    ・RailsBridge
     関東在住でしたら!
     →Rails勉強会
     関西にすんでるんやっったら!
     →〜関西
    Rails専門コーナーはじめました @IT
     対談や新連載
     ついでにブログも
     
    ■「2011年は、Rails3を使おう!」
     Yuichiro MASUI
     →JavaScriptAndroid開発の会社
    Railsのおさらい
    2004/07-最初のバージョン
    05/12 1.0
    07/12 2.0.3
    10/08 3.0
    10/11 3.0.3
    →3.0からソフトは安定するというジンクス

    ・Rails1の特徴
    DRY
    CoC
    Full stack
    Generator/Scaffold
    Write less code 各コードをできるだけ少なくする バグの量は工数に依存する
    →速く書けるし、バグが減る

    ・Rails1の問題
    不安定
    遅い/メモリ食い過ぎ
    実行環境が少ない
    実績が少ない
    Rubyプログラマが少ない

    ・Rails2の特徴
    RESTful
    XML->JSON
    →ブラウザとのやりとりがしやすい
    セキュリティの強化(CSRF対策など)
    多言語対応
    パフォーマンス(クエリキャッシュなど)

    ・Rails2の問題
    Rails本体が複雑すぎる
    遅い
    プラグイン非互換
    →内部インターフェイスがきちんと規定していないため、0.0.1くらいの少しバージョン変更で動かなくなる
    環境構築(RubyGems)
    →標準でレンタルサーバに入っていない
     依存関係がたくさんある
     構築が大変

    Rails2リリース後

    ・新しいフレームワーク
    Sinatra しなとら
    極めてシンプルなフレームワーク
    →O/Rマッパ含まない
    routing、フィルタ処理やテンプレート


    ■Merb+DataMapper まーぶ
    ・モジュール構造のフレームワーク
     テンプレートエンジンやORMを選択
    ■ORM=DataMapper
    ・DataMpperパターンを提供
     モデル=デーブルではない

    実際は流行らない、実用にならない

    Merb gets
    merged into Rails3!
    →ある種ライバルがくっついた

    Merbから得た物
    モジュール構造
    PluginAPI
    MatzRuby(CRuby)以外の環境(JRuby)での動作

    Passenger
    よくある質問=Railsってどうやって
    Production環境で動かせばいいの?
    Apacheに組み込めるmodule
    一つのサーバで複数

    Heroku
    Rails appをホスティングしてくれる会社はないの?
    Jeroku
    Engine YoedApp Cloud
    New Eelic アプリ管理サービス

    Rails 3で何が変わったのか?
    Sexyになった 綺麗にかけるようになった
    →具体的に
    AcriveRecordでHash指定が多い
    メソッドベース
    可読性が上がる

    Rails 3の特徴
    フルスタックだがモジューラブル
    ActiveRecordの新クエリエンジン(Arel)
    SQLベースに基本になったが、SQLでないのも別エンジンで。切り替えも楽になった。
    新しいRouting engine
    Plugin API
    Bundler ばんどらー
    →gem

    ●大きな問題
    すでにあるRails 2のプロジェクトを
    Rails 3にUpgradeする?

    ●Upgrade問題
    なぜUpgradeするのか?
    新しいバージョンは安定しているか
    コードの書き換えはどの程度なのか

    最新のRailsが一番いいRails
    ある程度の安定性が保てる
    マイナーバージョンを一つ飛ばしてUpgradeするのは大変

    ●バージョン追従
    Rails3.0.xはRails2.3.xとの後方互換のためのメソッドが定義されているが

    ・Rails3の安定度
    クラッシュしない (レアケースのみクラッシュ)
    →Rails1はクラッシュよくしたが、プロセスkillすればいいじゃんだが、そうはいかない
    APIの変更がない
    パフォーマンス

    ・アーロンパッターソン(シアトル在住)
     のこぎり

    ・パフォーマンス
    モジュール構造になるとメソッド呼び出しが増え、どうしても遅くなる
    特にRails3.0.0のActiveRecordが遅かった

    2.5.3の5倍遅い!?
    きれいなコードを書く傾向はあるが、パフォーマンスは気にしない人が多い

    3.0.2で大きく改善
    →2.3より速くなった

    ActiveRecordの構造
    ActiveRecord
    ActiveModel
    Arel
    SQLAdapter

    ●コードの書き換え
    テストが書かれていないなら諦める
    まずは、Rails 2.3.8にアップグレード
    ここではつまずく様なら諦める
    使っているプラグインRails 3に対応しているか確認する

    自分でプラグインを書き換えられるなら問題ない

    「rake roots」コマンドで どのコントローラを呼び出しているかのリストが見られる
    config/*
    config/routes.rb
    app/modules/*

    RAILS_ROOTなどの設定部分を書き換える


    Rails 2->3 Case Study Deltacloud
    http://mo.mors.org/blog/node/31

    Rails 3 Upgrade Handbook
    おいやっくすの黒田さん

    結論
    新規アプリはRails 3で
    テスト書いてないならUpgradeは諦める
    PluginのRails 3対応度次第
    ActiveRecord後方互換を生かしつつ

    Rails 3の特徴
    find allがwhereに
    →すっきりメソッド

    fin(:all)などもしばらくは使える

    New routing
    ハッシュをメソッドなどにしてすっきり

    Bundler
    依存するGemsのインストール
    →コマンドひとつでインストール
    バージョン管理
    Gemfile


    And more..
    Erb、デフォルトエスケープ
    ActionMailer
    ActionController /

    Rails3への期待
    Plugin APIによって、バージョアップ
    時のPluginの互換問題が少なくなる
    モジュール化によって最適化が行いやすくなる

    Javascriptスマホアプリオを作れる
    Titanium Mobile

    テストを書けば苦労をしない

    @appcelerator_ja
    今日の資料 http://bit.ly/co-rails3

    ●質問
    1.8.7と1.9.7のどっちがいい?
    →1.8を一応使ってる、1.9でも一応動く

    Rails1のままのプロジェクトは弊害は?
    →もう変えてない、工数をかけられないからほっといている

    ■Rails3の試験
    吉田

    取得率RoR 2.8%
    取りたい人24.2%

    1/19, 1/21