【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/
0342nobodyさん
2009/02/11(水) 20:05:42ID:???0343nobodyさん
2009/02/11(水) 21:45:57ID:???やっぱり自動テストできると仕様変更の際とても楽。
色付けて、色で判別できるのも良い。
あと it "日本語" do みたいに書けるので、
テスト走らせた時に半分仕様書っぽく見えるのがgood。
それでもAjaxが絡む部分とかはテストできないので
地道に手動テストしてエビデンスをExcelに貼付けるとかは行った。
0344nobodyさん
2009/02/11(水) 21:57:14ID:???お客さんにはそれが見えないので、書類として出せるものは必要。
結局Excel登場な訳です。
0346nobodyさん
2009/02/11(水) 23:28:18ID:???あと、CIでやるテストと、納品に必要なテストは違うよね。
0347nobodyさん
2009/02/11(水) 23:29:01ID:???0349nobodyさん
2009/02/12(木) 02:02:30ID:???0350nobodyさん
2009/02/12(木) 02:16:23ID:???提出したあとにプログラムを変えて、テストは思いっきりおろそかとか
で、客の信頼を失ってテスト資料の提出をせまられる
0351nobodyさん
2009/02/12(木) 02:21:07ID:???↓
ユニークじゃない処理をPickUp
↓
ライブラリorプラグインを探す
|ある ↓ない
| ライブラリorプラグインを作る
| ↓作った ↓作らない
| テスト記述を追加 最初に戻る
↓ ←こっち
置換える
↓
最初に戻る
0352nobodyさん
2009/02/12(木) 02:27:13ID:???どうせ最低限手動テストも必要だしね
このスレに来るような層だとおもしろがってRuby使ってる人が多いだろうし,使ってるだろうけど
0353nobodyさん
2009/02/12(木) 21:19:15ID:???末にバタバタするとメンテする暇ないしね・・・
特にしょうもないところまで厳密に書いてたりすると修正だけで結構な手間がかかるので
カバレッジ100%とか無意味に目指すのはやめたw
0354nobodyさん
2009/02/12(木) 22:34:51ID:???0355nobodyさん
2009/02/13(金) 08:05:11ID:???0356nobodyさん
2009/02/13(金) 08:09:32ID:???振る舞い定義開発と、テスト先に書く開発だよね?
結果的にやってること一緒なきがするんだけど
考え方の違いなんかな?
前にるびまの記事(rSpecのかな?)よんだけど、しっくりこない。
参考までに>>337のしっくり来た理由を教えて欲しい
rSpec自体は見やすいとか、利点あるけどさ・・・
0357nobodyさん
2009/02/13(金) 08:50:59ID:CNLHag3hしかし書き方の違いが重要である事をRuby使いはよく理解している。
0358nobodyさん
2009/02/14(土) 03:53:52ID:???0359nobodyさん
2009/02/14(土) 10:39:26ID:???0360nobodyさん
2009/02/14(土) 11:26:37ID:???俺的にはmigration最高だけどな。
微妙っていうなら、migrationよりいい方法知ってるんだよな?
ぜひ教えてくれ。
0361nobodyさん
2009/02/14(土) 11:45:02ID:???0362nobodyさん
2009/02/14(土) 12:14:03ID:11KlnFuU>>360
かわいそうだからスルーしてやれよ
0363nobodyさん
2009/02/14(土) 12:48:24ID:???0364nobodyさん
2009/02/14(土) 15:42:48ID:???0365nobodyさん
2009/02/14(土) 16:36:41ID:???0366nobodyさん
2009/02/14(土) 18:39:26ID:???0368nobodyさん
2009/02/14(土) 22:18:26ID:???0369nobodyさん
2009/02/14(土) 23:07:59ID:???0370nobodyさん
2009/02/15(日) 00:37:51ID:???結局DBは前もって作ってるわ。
0371nobodyさん
2009/02/15(日) 01:14:35ID:7eK2Kd0p0374nobodyさん
2009/02/15(日) 04:46:33ID:???違う違う。
多分あなたの仕事の範囲ならOracleでも問題ないわ。
商用非商用じゃなくて、単にそれぞれのDBの機能活用してないだけ。
MysqlでもInnoDBでちょっと凝ったことやろうとするとmigrationじゃとてもとても…
0377nobodyさん
2009/02/15(日) 09:00:19ID:BATHKwrTcreate table のオプション見てみれば、わかると思うよ
設定できる項目の数が全然違うから
#当然そのあたりを考えて設計するわけだが
0378nobodyさん
2009/02/15(日) 12:37:05ID:???Railsで対応してないSQL実行したいときは,executeとかつかって自分でメソッド用意するもんだと思ってたけど
0380368
2009/02/15(日) 20:46:08ID:???オラクルだとおれはDBで分けるんじゃなくてスキーマで分けてるけど、
開発用にでかい領域なんて割り当てないから定義自体が変わってくるし。
DBオブジェクトの定義だけでも軽くSQLで数千行いくし、ストアドプロシージャあたりもrailsで管理とかきつい。
0381nobodyさん
2009/02/15(日) 21:04:04ID:???開発担当がSQL書いて(あるいは依頼して)、DBMS担当のレビューを受けた上で、
開発の担当部長の決裁と運用の担当部長の決裁を経て、DBMS担当が
作業するから、rake migrateでやるなんてありえない。
0382nobodyさん
2009/02/15(日) 21:42:00ID:7eK2Kd0pRailsでどうにかする方法を模索したほうが建設的じゃないか?
0384nobodyさん
2009/02/16(月) 00:57:04ID:???mysql使ってるけどexecute使ったのなんてvarcharにbinaryつけるときとカラム追加するときに順番を任意にするためafterつけるときと、references張るときぐらいだ
0385nobodyさん
2009/02/16(月) 01:14:58ID:???Railsにもいろいろ担当が居そうだ。
モデル担当とか、コントローラ担当とか。
0386381
2009/02/16(月) 01:57:37ID:???使うことは拒否されるけどね。勘定系の元帳入ってるから、うるさい。
でも、アプリケーションDBも結局DB運用担当の管理下に置かれちゃうんだよな。
0387nobodyさん
2009/02/16(月) 02:15:51ID:???The Rails Wayを読み始めたんだけど、これRails 1対応ですよね?
Rails 2でも根幹の部分は変わりませんか?
0388nobodyさん
2009/02/16(月) 07:41:08ID:XDlCrmenrake migrate の話をしているのになんでexecuteが出てくるのかわからんのだが?
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:???■ このスレッドは過去ログ倉庫に格納されています