【Ruby】Ruby on Rails Part6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/10/24(金) 17:46:53ID:???http://pc11.2ch.net/test/read.cgi/php/1207425569/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ
Rubyについて Part 33
http://pc11.2ch.net/test/read.cgi/tech/1223709050/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
0389nobodyさん
2009/02/16(月) 07:44:54ID:???与えるのか、って問題も大きいぞ。必要性がないだろ。
0391nobodyさん
2009/02/16(月) 09:05:10ID:CKJsSrXLおかしい事言ってるのはお前のほうだぞ。
migrationで直接SQL実行する事はよくある。
0392nobodyさん
2009/02/16(月) 09:36:28ID:???いちいち語るに値しないと言うことですね
0393nobodyさん
2009/02/16(月) 10:35:10ID:???DBはオブジェクトの永続化目的でしかなく(=ActiveRecord)、
スキーマ操作はフレームワークの管理下においてアプリの一部として扱え(=migration)、
という割り切りが重要。
0394nobodyさん
2009/02/16(月) 20:34:58ID:???基本的なところは同じ。
でも、2.0の本読んだ後に1系の本読むのは時間がもったいない。
最新の2.2系を使ってアプリ組むほうがいい。
0395nobodyさん
2009/02/17(火) 21:52:00ID:???0396nobodyさん
2009/02/17(火) 23:32:32ID:???ありがとうございます。
今日電車の中で何章か読みました。Simply RailsではAutomagicalな
こと(って表現は使ってませんが)ばかりだったけど、舞台裏が分かると
とても理解しやすい。
で、自分自身はアプリを作るわけじゃなくて、十年以上熟成したPerl+PHP
スパゲッティ(初期の責任は私にあります)を、来年度どうするか検討する
ための指示をする立場なので、まずはもうちょっと掘り下げたいと思います。
0397nobodyさん
2009/02/19(木) 06:55:17ID:???なんだかんだでruby使ってもおいしい
スパゲッティを作ることが出来る。
0398nobodyさん
2009/02/19(木) 11:20:22ID:???のべ数百人が1000を超えるモジュールを作っていて、
ドキュメンテーションもろくにしてない上に、
当時の担当者はほとんど異動や退職でいなくなってるわけですよ。
そろそろ全体をリファクタリングしないといけないよね、と
思ってるんだけど、ならば共通のプラットフォーム整備して
やらないといけないよなー、なんてたまには悠長な仕事の
仕方をしようかと企んでるわけです。
0399nobodyさん
2009/02/20(金) 08:11:16ID:???今までも同じように誰かがリファクトしようとするんだけど
結局他の仕事やらで一部を改修したに過ぎず
その実スパゲティに一味加えただけであり
それが繰り返されるスパイラルに陥ってる可能性高いなあ
本当に時間と(力のある)人を投入できて
且つその案件がそれ相応の対価に本当になるモノなのか、
自ら貧乏クジ引こうとしてないかよく考えた方がいいかもね、
とか余計なお世話してみる
この世界で悠長なんて幻想だぜ
なぜならそこに、あんたの目の前に美味しそうなスパゲティがあるからだ
みんな俺こそ全部食ってやると思うんだ
そして今、おまえの番だ
0400nobodyさん
2009/02/20(金) 13:32:32ID:???RDドキュメント
自動テストのカバレージ100%必須
ペアプロ
コードレビュー
うーん、どれもやったことのない人にはブーイング必至。
人望がためされますな。
0401nobodyさん
2009/02/20(金) 15:32:38ID:???というか無駄。
0402nobodyさん
2009/02/20(金) 15:37:21ID:???個々のプログラムよりも全体を見ることが重要だと思うが
ひとつひとつは問題なくても実はたくさん重複してたり、
ルールを決めればうまくいく部分がたくさんあるなんてよくある
>>400は単体レベルしかサポートしてないな
0403nobodyさん
2009/02/20(金) 18:00:18ID:???のべ数百人で、同時に何十人かが同じプロジェクトで仕事してるとすると、
ペアプロよりもうちょっと大きい集団で意志統一が必要じゃないか?
0404nobodyさん
2009/02/21(土) 01:58:12ID:???0405松江の鉄オタ厨房キハ187
2009/02/22(日) 00:01:46ID:U5nWJJ8Http://www.scribd.com/doc/12709376/Microsoft-WindowsRuby-on-RailsRuby-on-Rails-for-Microsoft-Windows-installation-procedures
※ページ数が63ページにわたるので要注意
ハードコピーを多用したので、ページ数が多くなっていますが、インストールする手順はイメージしやすいと思います。
これで、Ruby on Railsの環境構築のハードルが低くなると嬉しいです。
0406nobodyさん
2009/02/22(日) 00:40:55ID:LXvjeYZAどういう利点があってpache以外のサーバを使うんでしょうか?
0407nobodyさん
2009/02/22(日) 01:42:57ID:???お前は何を言っているんだ。
Apache … Webサーバ
Pound … リバースプロキシ&ロードバランサ
Mongrel … Rails用(だけじゃないけど)アプリケーションサーバ
それぞれ役割というか種類が別のものなんだが。
ただしApacheはmod_proxy_balancerを組み込むことでリバースプロキシ&ロードバランサ
にもなるし、Passenger(mod_rails)を組み込むことでRails用アプリケーションサーバにもなる。
それにPoundとかMongrelとか、誰に聞いたんだよそれ。情報が古すぎる。
リバースプロキシはApache2+mod_proxy_balancerかNginx、アプリケーションサーバは
ThinかEbb、それもめんどくさいからたいていはApache2+Passengerってのが主流。
0408nobodyさん
2009/02/22(日) 01:52:04ID:???Apache2+Passengerも一台で足りないなら、
ハードウェアのロードバランサか、
PoundやApache+mod_proxy_blancerやLVS
といったソフトウェアロードバランサを使う。
0409nobodyさん
2009/02/22(日) 04:45:32ID:???先に画面サクサク作って客に動かしてもらうと、リリースギリギリの仕様変更が比較的少ない
触ることでイメージしやすいから、要件が短期間で固まるって感じ
画面作ってひたすらカバレッジの流れもrailsはすんなりできるからいいね
0410nobodyさん
2009/02/22(日) 12:00:59ID:???0411nobodyさん
2009/02/22(日) 13:45:57ID:???0412nobodyさん
2009/02/22(日) 14:40:19ID:???開発のサイクルがめまぐるしく早いのと、DHHが後方互換性を全く気にしない
せいで、1年前に作ったアプリが最新版のRailsじゃ動かないとかザラだしね。
RackのRuby1.9対応が終わり次第2.3の正式版がリリースされるそうだけど、
5月にはmerbと融合した3.0が出るらしいし、ここでもこれまで以上に後方
互換性がないがしろにされそう。
ただしmerbの中の人たちはその辺りのことをDHHよりは気にしてるという話
なので、3.0以降は少しはマシになると思いたいが。
0413407
2009/02/22(日) 14:57:27ID:LXvjeYZAすいません、もう一つ・・
Webrick っていうのは簡易なウェブサービス用で、外部に公開する目的で作るのならば、使う必要がない感じでしょうか?
普通にApacheで開発でいいのかな。。
0415nobodyさん
2009/02/22(日) 16:07:11ID:???WEBrickはアプリの動作確認用にオマケでついてくるサーバであって、これを
公開する物好きはあまりいないと思う。
最初の質問を補正しながら答えると、MongrelやThin単体であってもインター
ネットに公開されているサーバで80番ポートで起動すればサービスの運用は
可能だし、その点はWEBrickも同様。
しかし実際にそれをやるのは間違いなく素人で、普通はその上にリバース
プロキシをかぶせる。
これが>>407で言ったApache2+mod_proxy_balancer等のこと。
なぜこうするかという理由は2つある。
1つは公開サービスには複雑な運用が求められること。
同じサーバで別ドメインのサービスを運用したり、特定のアドレスからのアクセス
を制限したり、任意のURLへのアクセスをリダイレクトさせたりといった必要が
出てくる。
ApacheやNginxは、デフォルトもしくはモジュールを組み込むことでこのような
機能に対応している。
0416nobodyさん
2009/02/22(日) 16:08:02ID:???もう1つの理由は負荷分散にある。1台の物理的サーバに1つのMongrelしか
立てないのは、ハードウェアリソースの多大なる無駄遣い。
1プロセスのMongrelが秒間にさばけるリクエストは限りがあるが、Mongrelの
プロセスを増やすことでその上限を増やすことができる。
ただしMongrelは1プロセスにつき1つのポートを使用するわけで、全部の
Mongrelを80番ポートであげるわけにはいかない。
よって複数のMongrelを別々のポートで立ち上げ、80番にはApacheを立ててそこ
に来るアクセスをバランスよく複数のMongrelが使用するポートに振り分けて
やるといったことを行うわけだが、それを可能にするのがmod_proxy_balancer
というモジュールだ。
0417nobodyさん
2009/02/22(日) 16:17:51ID:???今言ったような情報はネットで検索すれば出てくる程度の話だが、これら
の情報を自力で集められない人にとってはRailsで開発することは勧められ
ない。
なぜならRails界隈の動向というのは>>412のような状況なので、技術トレンド
についていけない人が作ったシステムは、あっというまにout of dateになって
誰もメンテできなくなってしまう可能性が高いから。
Railsの開発コストが低いというのは、それ相応のスキルと周辺知識を持った
人が開発した場合の話であって、プログラミングの素人が初めてアプリを作る
環境としてはどうかと思うし、後々のメンテナンスコストを考えると自分なら
止めるだろう。
なら現時点では何がいいのかと聞かれると答えに困るが。
0418nobodyさん
2009/02/22(日) 16:23:03ID:???0419nobodyさん
2009/02/22(日) 16:26:38ID:???そんなことは先刻承知の上での意見なんですが。
開発チームがすでにメンテを放棄したバージョンのフレームワークで、自社
の大事なサービスを動かしておきたいと考える経営者がいると思う?
そのアプリを開発したエンジニアがずっと会社にいてくれるわけでもなく、
またトラブルが起きた場合にWebやコミュニティで情報収集しようと思って
も、誰も使ってないバージョンだと誰も答えてくれない、情報もないという
事態が起きることは十分あり得るし。
0420nobodyさん
2009/02/22(日) 17:04:10ID:???今までPHP等でやってた人?Railsはアプリを動かすのにサーバー側の知識がいるからちょっと大変かも
お勧めは本番環境がapache&passenger、開発環境はwebrick
多分これが今は一番お手軽。とにかく最初これでアプリを動かしてみる。慣れてきて不満点が見えてきたら他の環境にも目を向けよう
0421nobodyさん
2009/02/22(日) 17:10:56ID:DRBsxH8GJavaやPHPで作られたシステムが、Railsで作られたシステムよりも明らかに陳腐化しにくいとは思えないが
その辺りの話が書かれているので、読んでいないなら一読をおすすめします
「JavaからRubyへ――マネージャのための実践移行ガイド」
0422nobodyさん
2009/02/22(日) 17:33:37ID:???あくまで程度の話で、All or Nothingで言っているわけじゃない。
だからこそ、3.0以降なら手を出してもいいんじゃないかと言ってるわけだし。
JavaよりもRubyのほうが使い勝手がいいというのは同感だが、自分が言って
いるのはあくまでRailsの話。
DHHはMatzを見習って、もうちょっと温和になってほしい。
0423413
2009/02/22(日) 17:37:09ID:LXvjeYZA>>420
そうです。あとperlとか。
自宅サーバ立てて遊んだりしているのでapacheいじったことはあるのですが、他のサーバいじったことはなかったのもので・・
>>415
とても詳しくありがとうございます。勉強になります。
railsは難しくても使い続けようと思っているのでがんばって勉強してみます。
ありがとうございましたm(_ _)m
0424nobodyさん
2009/02/22(日) 18:54:59ID:???0425nobodyさん
2009/02/22(日) 22:45:21ID:???5つの世界がある。
その5つとは:
1.パッケージ
2.インターナル
3.組み込み
4.ゲーム
5.使い捨て
スクリプト言語の得意分野は、5.
0426nobodyさん
2009/02/22(日) 23:15:15ID:???0427nobodyさん
2009/02/22(日) 23:21:03ID:???Railsなら作り直し楽だけど
そういう意味では使い捨てか
0428nobodyさん
2009/02/23(月) 01:21:50ID:???サービス」という意味で使うエンジニアとは仕事したくないなあ。
「Wikipedia」を「Wiki」、「シェルスクリプト」を「シェル」と略す輩も同様。
0429nobodyさん
2009/02/23(月) 01:22:47ID:???0430nobodyさん
2009/02/23(月) 01:33:27ID:???シェルとシェルスクリプトは全くの別物で、意図して使い分けられてないと
聞くほうが混乱する。
両者を混同するプログラマは、自分にシェルそのものを作れる技術がない
から「シェルを書く」と言ってもシェルスクリプトに決まってると勝手に思って
るんだろうが、Cでシェルが書けるプログラマにとってはまぎらわしいんだよ。
0431nobodyさん
2009/02/23(月) 01:43:36ID:???0432nobodyさん
2009/02/23(月) 01:47:14ID:???なんか読めたもんじゃないし、後々何が起きるかわからないという話だよ。
スレ汚しスマソ
0433nobodyさん
2009/02/23(月) 02:25:37ID:???0434nobodyさん
2009/02/23(月) 03:09:16ID:???Webサーバという言葉が一般的なんだから、Webサーバが提供するサービスは、
それがSOAPだろうがRESTだろうが人間が直接読むHTMLだろうが、Webサービスだ。
それ以外の変な限定的な定義づけは混乱を招くだけ。
Webサーバという言葉がそもそもおかしいというなら、まずその単語を撲滅して
HTTPサーバという呼び方に、世の中を全面的に変えてくれ。
0435nobodyさん
2009/02/23(月) 03:47:37ID:???誰も一般的な解釈がどうとかの話をしてるんじゃないんだ。
「Webサービス」という言葉がSOAPやRESTスタイルのWebAPIを提供する
ものを指すという事実をそもそも知らないエンジニアは論外だし、その
技術的定義を知っていてなおかつ「Webで提供されるユーザー向けサービス」
の意味で使っても気にならないような、言葉の定義に無頓着なエンジニア
は、経験上ろくなコードを書かないと言ってるだけだ。
0437nobodyさん
2009/02/23(月) 06:11:58ID:LrwJMtrjそこまでいうなら、お前の定義するWebサービスが正統だと証明できる根拠を見せてほしいが
俺の経験上、多くの人間がそれぞれ微妙に違う意味合いで理解している言葉を
俺が理解こそ正しいと自分の定義づけを押し付けてくる輩にロクなエンジニアはいないんだが
0438nobodyさん
2009/02/23(月) 07:27:58ID:???それについて噛みついてるのを見るのは初めてかも。
「ふ〜ん、そうなんだぁ」
って思っておけばいいじゃん、そんな興奮しなくてもさ。
言葉を正しく知らない方が、ロクなエンジニアじゃないと思うよ、やっぱり。
ともあれ、両者落ち着いてまったりいきましょう。
0439nobodyさん
2009/02/23(月) 07:33:03ID:???そんなしょうもないことにこだわるやつは
技術者としては優秀なやつがいたとしても
協調性がなかったりして性格がいがんでる。
仕事が出来ないやつが多い。
0441nobodyさん
2009/02/23(月) 09:44:52ID:???0443nobodyさん
2009/02/23(月) 10:54:05ID:???○ 俺の理解こそが正しい
×いがんでる
○ゆがんでる(歪んでる)
こんな短いやりとりの中で、すでにSyntax Errorが2つもある。
「言葉なんて通じりゃいい」と主張する輩のコードが汚いという
ことを自ら証明しているようなもんだ。
0444nobodyさん
2009/02/23(月) 11:31:01ID:???視認性とかメンテ性とか無視、より効率的に美しく。ただし自分的に。
ライブラリ大嫌いでコピペと車輪の再発明が大好き。
自分のコードすげえとか悦に浸るオナニーコーディング。
で、掲示板でこんだけ威勢張ってて、協調性について語ってるのは笑いどころ?
0446nobodyさん
2009/02/23(月) 15:00:32ID:???0447nobodyさん
2009/02/23(月) 15:51:39ID:???0448nobodyさん
2009/02/23(月) 17:49:10ID:???いがんでるを方言だと認識できずに、SySyntax Error扱いしている
お前の欠陥エンジンもどうにかしたほうがいい
0449nobodyさん
2009/02/23(月) 17:51:15ID:???0450nobodyさん
2009/02/23(月) 23:00:12ID:???0451nobodyさん
2009/02/23(月) 23:09:22ID:???0452nobodyさん
2009/02/24(火) 00:36:22ID:???0453nobodyさん
2009/02/24(火) 01:21:46ID:???0454nobodyさん
2009/02/24(火) 01:53:24ID:???0455nobodyさん
2009/02/24(火) 12:23:40ID:???0457nobodyさん
2009/02/24(火) 13:44:01ID:???0458nobodyさん
2009/02/24(火) 14:04:25ID:???0459nobodyさん
2009/02/24(火) 16:02:12ID:???それ単にお前が他のFWのプラグイン知らないだけじゃんwwww
pythonに比べると、rubyで書かれてるって欠点でしかない
0462nobodyさん
2009/02/24(火) 19:40:35ID:???デジタル加入者線のことじゃないぞ。
0465nobodyさん
2009/02/25(水) 01:44:06ID:???ここでPythonをDisられたいの? マゾなの?
0467nobodyさん
2009/02/25(水) 14:32:12ID:???テンプレートはシンプルで好きなんだけどね。
0468nobodyさん
2009/02/25(水) 15:37:43ID:???と思っていた時期もありました。
0469nobodyさん
2009/02/25(水) 16:30:20ID:???正直、当分は機能増えなくていいから速度と(特に)メモリ消費量を改善して欲しいと思う事はある
格安レンタルサーバーでも放り込んでおけば動かせるFWが羨ましいのは事実
Ruby1.9 + Rails3では劇的に変わるのかなぁ?楽しみ
0470nobodyさん
2009/02/25(水) 16:41:13ID:???なんでもかんでもフレームワークでやろうとしなくてもいいと思う。
0471nobodyさん
2009/02/25(水) 21:37:45ID:???0472nobodyさん
2009/02/26(木) 00:23:01ID:???前に1台Apache立てて、mod_proxy_balancerで振り分けるって感じなんでしょうか?
0473nobodyさん
2009/02/26(木) 09:04:18ID:WBghJzwC負荷を下げたいなら、Apache+passengerのWebサーバを2台用意するかな。
0474nobodyさん
2009/02/26(木) 14:43:02ID:???だったらDNSラウンドロビンにすればいいと思うんだけど。
DNSラウンドロビンをなめてはいけない。
ttp://japan.cnet.com/blog/neta/2006/08/10/dns_ecfc/
クックパッドもDNSラウンドロビンっぽいし。
$ nslookup cookpad.com
Server: 192.168.11.1
Address: 192.168.11.1#53
Non-authoritative answer:
Name: cookpad.com
Address: 203.183.167.214
Name: cookpad.com
Address: 203.183.167.215
Name: cookpad.com
Address: 203.183.167.216
Name: cookpad.com
Address: 203.183.222.67
Name: cookpad.com
Address: 203.183.222.68
Name: cookpad.com
Address: 203.183.167.201
Name: cookpad.com
Address: 203.183.167.202
Name: cookpad.com
Address: 203.183.167.211
0475nobodyさん
2009/02/26(木) 15:23:36ID:???その2台に振り分けるためのロードバランサがいるんでしょ
もしかしてPassengerだけで別ホストに振り分けることできるの?
そこまで機能詰め込んでもらわなくてもよさそうだけどな
>>474
フェイルオーバーとか色々めんどそうなイメージあったけど
RailsはCookieでセッション扱うようになったし簡単な選択肢になってきたのかなあ
0476nobodyさん
2009/02/26(木) 16:03:18ID:WBghJzwC2台サーバ用意するんだから、ロードバランサは必要。
だけど、それは書かなくても分かると思ったので省略した。
で、自分が言った2台を用意するというのはグローバルIPを2つ用意して
>>474のいうようにDNSラウンドロビンすればいいという事。
1つのホスト名に対して、2個のIPを設定すればいいわけだから設定も簡単。
mognrel + proxy_balancerを使ってたのは、1つのRailsインスタンスが
同時に1リクエストしか処理できなかったからだけど、
passengerはそれを解決してるよね。
passenger1つで、複数のリクエストをさばけるわけだからproxy_balancerは不要。
0477nobodyさん
2009/02/26(木) 23:13:42ID:3x+Ff7qAその辺の運用周りについて詳しく解説されている書籍・Webサイトはご存知でしょうか?
0478nobodyさん
2009/02/26(木) 23:19:48ID:???0479nobodyさん
2009/02/27(金) 01:32:31ID:???0480nobodyさん
2009/02/27(金) 09:06:36ID:pVHBsIy5後は実際に公開サーバでRailsアプリを運用するのが一番勉強になる
0481nobodyさん
2009/02/27(金) 13:50:10ID:???0482nobodyさん
2009/02/27(金) 14:04:23ID:pVHBsIy5もちろん、公開サーバの話はきちんと知識を身に付けた後の話。
わざわざ書かなくても分かると思うけど、念のため。
実践する事も大切。
実際に運用してみないと分からない事もあるよ。
0483nobodyさん
2009/02/27(金) 20:59:16ID:???http://www.oreilly.co.jp/books/9784873114002/
まだ出てないけどRailsの運用環境に関する本
ただ、目次を見た限りpassengerについては記載されてないっぽいね
Mongrelは結構詳しそう
0484nobodyさん
2009/02/27(金) 21:13:33ID:???0485nobodyさん
2009/02/27(金) 21:17:44ID:???やっぱり書籍でがっつり紹介してもらった方がいいの〜
0486nobodyさん
2009/03/01(日) 13:42:34ID:???ActionMailer::Baseでデフォルト文字コードを指定すると、
Content-Typeのcharsetはiso-2022-jpになってくれますが、
本文の文字コードは変換してくれないようです。
そこでView(メール本文)をiso-2022-jpにすると、
今度はViewの解析でエラーになってしまいます。
ソースを読んで地道に直すしかないでしょうか?
0487486
2009/03/01(日) 14:00:19ID:???ActionMailer::Base#create!を上書きする昔ながらの方法が
まだ使えそうな感じだったので、とりあえずこれで行くことにします。
0488nobodyさん
2009/03/01(日) 15:29:26ID:???■ このスレッドは過去ログ倉庫に格納されています