Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Rails' Wiki - RailsMeetingTohoku-0003 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!Rails勉強会@東北第3回

:日時:
::2007年8月26日(日) 13:00 〜 17:00(集合12:50)
::参加希望者で、その後懇親会予定

:場所:
::株式会社フライトシステムコンサルティング SIセンター
::仙台市青葉区五橋1-1-10 第二河北ビル8F[[地図|http://www.flight.co.jp/company/products.html]]
::JR仙台駅より徒歩5〜10分。JR病院のとなりで1階にローソンが入っているビルです。

:内容:
*自己紹介(自己紹介とRailsに関してなんでもいいので一つ以上)
1. 簡単な自己紹介
2. Railsについて何か一つ以上
3. Railsについてどういう立場なのか
    * 上記の内容をA4の紙1枚に記入。形式は自由
    * 発表時間は2〜5分間
    * 人数分印刷か、コピーして用意
*Railsのすごいところ(宗形さん) {{attach_anchor(Railsのすごいところhtml.zip)}}
*レガシーとRails(大久保さん) その1:{{attach_anchor(RoR評価_抜粋.pdf)}} ({{attach_anchor(RoR評価ソース.zip)}} ※酷いソースにつき注意) その2:{{attach_anchor(レガシーとRails.pdf)}}
*Rubyビジネスコモンズ説明(杉山さん) {{attach_anchor(Rubyビジネスコモンズ説明資料第一版.ppt)}} {{attach_anchor(ドリコム・ノックちらし.ppt)}}
*RJS(藤岡さん)すみません。次回に持ち越しとなりました。

:当日の準備:
::1.名札(あれば)。名札がない場合はこちらで名札ホルダを用意します。名刺サイズの紙に名前を書いたものか、名刺をご用意ください
::2.ノートPC(必要であれば)

!ネタ募集中
*やりたいネタ、やって欲しいネタがあったらどんどん書き込んでください
*2007-08-11 (土) 03:27:27 Doggie : 大した中身じゃないですが、宿題の「レガシーとRails」やらせてください
*2007-08-13 (月) 23:36:52 yuichi_katahira : Doggieさんよろしくお願いします
{{comment}}

!参加募集
*募集期限:8月25日一杯
*初参加の方はyuichi_katahiraあっとmac.comまでメールをお願いいたします。MLへの追加、携帯番号など連絡させていただくためです。
||!お名前||!勉強会||!懇親会||!コメント
||yuichi_katahira(片平)||○||○||よろしくお願いします。
||Doggie(大久保)||○||○||またよろしくお願いします
||xibbar(ふじおか)||○||○||がんばります。
||fukuda(福田)||○||○||初参加です。よろしくお願いします。
||hmori(森)||○||○||初参加RoR初心者です。宜しくお願いします。
||oikawa(及川)||○||○||初参加、Ruby初心者です。よろしくお願いします。
||sakuma(佐久間)||○||○||初参加となりますが、よろしくお願いします。
||Shindo(進藤)||○||○||初参加です。まだまだRuby on Railに初心者ですが、がんばります。よろしくお願いします。
||宗形 晶子(monya_kata)||○||○||急遽参加です。よろしくお願いいたします。
||安達 敏信||○||○||よろしくお願いします。
!振り返り
わからず書いてるところもあります。誤りご指摘、修正お願いします。
!!Railsのすごいところ(宗形さん)
Railsを実際に使ってみて凄いと思った点、ハマった点。資料を見ていただければ大体伝わるかと思うので、話が弾んだ所など補足的に。
*find_by,find_all_by。ダイナミックファインダ、動的生成。
*データベースの関連づけが簡単。:includeってアウタージョインが投げられてる。
*Railsの規約、複数形に悩む。sheep,deer,equipmentなど複数形も単数形も同じ。datum→data,person→peopleなど特殊な複数形。末尾がesになるとか。確認はpluralizeで。日本語ローマ字表記でやった方が良かったりするかも。社内的にネーミング規約をきっちり決めて設計しよう。
*validation。validates_presence_ofなどの用意されたヘルパーにあてはまらない場合。validateに書く。ヘルパーのvalidates_each(ブロックを使用して、1つまたは複数の属性を検証)なんかを使っても。
*運用環境。次のセッションを参照。
*またRailsで開発したい?作ってて楽しい。規約になれると楽。Rails脳が出来る。作った先から見せて確認。すぐに反応が返ってくるので、作ってると俺ってばすげー感(勘違い?)を感じさせてくれる。
!!Railsの運用と適用範囲(片平)
宗形さんのセッションで運用環境まわりの話が盛り上がったのを受けてのセッション。資料はないのでだーっと書きます。
*まずは、前提となる環境について一通り説明。
**Ruby1.8.6(1.8.2,1.8.4,1.8.5)
**rubygems(perlのcpanやphpのpearのようなパッケージ管理、pluginを楽にインストールするためにもほぼ必須)
***rails
****ActionPack(MVCのVC)
****ActiveRecord(DB。MVCのM)
****ActiveSupport(Time拡張など、Rubyを拡張)
****ActionMailer(メール関係)
****ActionWebService(Webサービス関係)
**MySQL,PostgreSQL,SQLite等のDB
**webアプリケーションサーバ(次で詳しく)

*本番運用環境(JavaでいえばTomcatとか)
**Apache-fcgi。この組み合わせやるならApache1.3系で。Apache2系とfcgiの組み合わせはいまいち。mod_fcgidだといいらしい(藤岡さん)。
**Apache+mod_proxy+lighttpd-fcgi。設定めんどい。Railsアプリだけで静的HTMLがないならいっそlighttpd-fcgiだけで。
**Apache+?+mongrel。Apache2.2系なら?部分はmod_proxy_balancer。Apache2.0系は無理なのでPound。mongrelはクラスター化出来る。運用した事ある人のレポート求む。
**lighttpd-fcgi。Railsアプリだけの構成ならありです。
**nginx。使ってる人いるの?昔はロシア語のドキュメントだけ。今は英語のドキュメントも用意されているらしい。
**etc..
**レンタルサーバ。絶望的。ほとんどの所で使えない。国内ならワイズノット一択(Apache-fcgi?)。海外なら、textdrive、BlueHost、RailsPlayGroundなどあるがお客さんに勧めるのは難しい。英語というだけで拒絶反応が・・。
**専用サーバ。高い。自力でRailsを(場合によってはRubyも)入れなければいけない。

*運用について雑感。組み合わせが色々と多いのが問題。一応今はmongrelがデファクトスタンダード?ちなみに片平が運用した事がある組み合わせはapache1.3-fcgi,Apache2+mod_proxy+lighttpd-fcgi,lighttpd-fcgi単体。安定性の面でも疑問符がつく。また、Railsは初回起動が遅く、cgi運用は速度が遅くやってられない。fastcgiやmongrelが必須であり、phpやperlのようにお手軽に設置とはいかない。現実的な選択肢として、ハードを用意して下さい又は用意するとなるかと思うが、お客さんにサーバ管理者置いてくださいというのは厳しい。保守の問題が・・。

*適用範囲
**Railsの得意範囲
***身も蓋もないが内製。サーバも融通聞くだろうし。
***win-winの関係を築いた顧客。5年とか長期のスパンで、提案しながら改善を繰り返していくような案件。上顧客を掴め!
***Webサービスの案件。
***期間限定の案件。3ヶ月限定サイトとか。
**Railsの適用範囲外
***エンタープライズ。大規模案件は向かない。今の段階でRailsのステージではない。
***Rails以外の既存案件の拡張。規約など色々と引っかかる。他言語でやった方がいい。

*適用範囲の雑感。Railsは上流工程から下流工程まで通してやるような開発スタイルとなる。自分の手が届く感というか、コンサルからコーディングまでやる感じ。エンドユーザ直結のスタイル。大人数による分業開発は向かない。せいぜい数人規模。進め方も作ってその場で見せて、フィードバックを受けるといった繰り返しになる。開発スタイルも使っていると必然的にそうなっていく。これもRails脳といえるというかDHHの設計思想だと思う。Railsの強みは仕様変更への強さ。設定が少ないという事は、変更箇所が少なくなる。またDBスキームの変更にもmigrationのような仕組みが用意されているため、強い(簡単にmigrationの説明を行った)。そういう意味では、スピーディーに開発して手離れよくというよりは、実はwin-winな顧客と改善を・・、というのが現時点ではお勧めではないかと考える。規模としては中小、または大きい所でもサブシステムとか粒度の小さい案件か?

*その他、質問など
**Scaffoldでちょいちょいと作ったアプリからステップアップするためには、Railsは広範な知識を必要とする(藤岡さんによるscaffoldの簡単なデモ)。Rubyの知識、オブジェクト指向の知識、httpの知識、SQLの知識等々。途中からいきなり敷居が高くなる。そういう意味では初心者にやさしいとかすぐにWebアプリがという代物ではない。
**複合キーで設計しているような場面、例えば年度とコードの組み合わせなど、Railsでどう設計すべきか→正規化する。例えばhas_many :throughを使い、多対多のスキームに落とし込む。RailsでDB設計をしていると、正規化が増えて、必然的にテーブルは増えていく傾向になる。これも一種のRails脳といえる。正規化を崩して1テーブルに100カラム(極端)でパフォーマンスを出すといったような構成はRails的にはあまりないと思う。
!!レガシーとRails(大久保さん)
レガシーなDBをRailsで扱う場合の問題。idを持っていないテーブル、複合キーをActiveRecordでどう扱うか。アドオンと言う事で、いかに実際のDBには手を入れずに頑張るかもポイント。Railsの評価も。資料が詳細なので、資料なぞってるだけになってしまいました。
*idではない単一主キーを持っているケース。modelで主キーを定義。Viewを経由してAS句を使ってid定義。
*複合キーのケース。view用のモデル作成。id,アソシエーション参照用の~_id列をすべてviewの中でAS句を使って別名で作成。
*コンペアの為の複数DB参照。接続を再定義。
*でも...。複合キーの更新は?Oracleならマテリアライズド・ビュー(知りませんでした)やってみるとか?他はテーブル定義変えるしか?ARが対応してないDBは?結構対応してるけど、対応レベルにばらつきも。
*Railsの評価。PDF見ていただければ。
!TrackBack

* trackback : [[[Rails勉強会@東北]開発合宿in盛岡なんてなったりして (仙台RailsゴールデンIT社長2.0)|http://d.hatena.ne.jp/yuichi_katahira/20070828/1188281616]] (2007-08-28 (Tue) 15:14:05)
"" Rails勉強会@東北第3回、今回はフライトシステムコンサルティングさんの会議室をお借りしました。 最初はid:monyakataさんのセッション、Railsのすごいところ。詳細は後で勉強会Wikiに書くとして、つかみばっちりだったと思います。いい内容でした。自分が横からちょっと差

* trackback : [[仙台にて (Fly to the...)|http://onbandiary.cocolog-nifty.com/taka/2007/08/post_c003.html]] (2007-08-28 (Tue) 09:34:03)
""以前話していた、かたひらさんの紹介で、Rails勉強会@東北第三回に参加させてい

* trackback : [[[Rails勉強会]Rails勉強会@東北第3回 (At 40-yard line)|http://d.hatena.ne.jp/Doggie/20070827/1188225699]] (2007-08-27 (Mon) 23:43:58)
"" 今回も面白かった。技術深耕ネタというより基盤充実型で、ノウハウ吸収。 スタートはid:monyakataさん。「Railsのすごいところ」で、実際に使ってみて凄いと思ったところ、ハマったところのお話。今回は、Railsはビギナーという方が結構いたので、とてもいい皮切りのセッシ

* trackback : [[[Ruby][Rails]Rails勉強会@東北 (福島でRailsを使って仕事を頑張る計画)|http://d.hatena.ne.jp/xibbar/20070826#1188137214]] (2007-08-27 (Mon) 11:59:13)
"" 今日は初心者が多いということで、初心者向けのセッションを中心としました。 Railsのすごいところ Railsの運用 レガシー環境とRails フライトの杉山さんによるRuby Business Commonsについて 以上のセッションとなりました。 xibbarのセッションは急遽カットして、次回のネ

* trackback : [[[Web Application]Rails勉強会@東北第3回行ってきました。 (仙台市でWeb制作とWebアプリとワーキングマザーな日々。)|http://d.hatena.ne.jp/monyakata/20070827/1188177500]] (2007-08-27 (Mon) 10:18:52)
"" 私はプレゼンのようなものを一応しましたが、プロジェクタ使えず。情けない…使えるようにしとかなきゃ。 あと、mgpのようなマイナーなソフトではなく素直にOOoのImpressで作ればよかった。 今回は技術に踏み込んだ内容というよりRails全般についての話が中心で、私もついて

* trackback : [[[Rails]阻止したいRoRバズワード化 (digiDrive雑記帳 Ver2.01)|http://www.free-drive.net/web/?p=213]] (2007-08-22 (Wed) 21:58:00)
""今週末、Rails勉強会@東北第3回が催されます。
""ワタシは残念ながら、都合が悪くて参加できないんですが、新たに参加表明された方々もいらっしゃる(予定?)ようなので、前回のワタ...

* trackback : [[[Rails勉強会]そろそろ勉強会の準備 (At 40-yard line)|http://d.hatena.ne.jp/Doggie/20070821/1187713931]] (2007-08-22 (Wed) 01:44:25)
"" ずーっと遊んでしまったので、そろそろ宿題がピンチ。うーん、昔から変わらない夏休みのパターンなり。 お題は「レガシーとRails」、私がやってみた古いレガシー系からのデータ抽出や、Java-RDBシステムへのRails外付けの話をまとめようと思う。あくまで外付けなんで、Java