トップページtech
1001コメント295KB

Rubyについて Part 42

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/01/15(土) 17:55:52
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
仲良く使ってね。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
【RoR】Rubyについて Part 41【CPAN vs RubyGems】
http://hibari.2ch.net/test/read.cgi/tech/1281473294/

過去スレ・関連スレは >>2-
06536502011/04/04(月) 14:42:40.29
>>652
いや、俺も>>648は皮肉だと思ったよ
「役に立たねーよそんなのw」て意味のね
0654デフォルトの名無しさん2011/04/04(月) 16:17:46.37
大学の研究分野とかまだPC-98DSとか使ってるところあるわ。Ruby関係ないけど
0655デフォルトの名無しさん2011/04/04(月) 23:43:40.52
>>631
いや正誤表で検索してみればわかると思うけどJavaの翻訳版も本家も相当にミスはあるみたいだよ。
コードにもね。Javaの方は持ってないけどさ。
それを差し置いてことさらにRuby版が地雷だというのはdisとしか思えないでしょ。
0656デフォルトの名無しさん2011/04/05(火) 02:07:53.60
もともとミスが多いってのは海外の書評が元であって、
それをもって評価してるやつは実際に読んでみた訳じゃないと思うよ。
読めば分かるけど、なんでそうするのか、どういう手順でやるのかが重要なんであって、
サンプルコードは参考程度なんだから。
0657デフォルトの名無しさん2011/04/05(火) 02:31:26.50
「サンプルコードが間違っている」なんてありえないだろ
もう一度よく考えろ
0658デフォルトの名無しさん2011/04/05(火) 02:42:51.70
Rubyのパパは居るけどママはいないの…?
こんなのあんまりだよ…
0659デフォルトの名無しさん2011/04/05(火) 06:34:22.72
>>657
普通にあり得るし、ほかの本でも沢山ある。
おまえいつもサンプルコードをちゃんと読んでないだろ。
0660デフォルトの名無しさん2011/04/05(火) 07:03:42.95
ほかの本でも沢山あるのがすでにありえない
0661デフォルトの名無しさん2011/04/05(火) 07:06:18.48
売上が見込めず期間も原稿料も抑えられたらコードの質を落とすしかないだろ。
お前らが普段からやっていることなんだから文句言うなよ。身勝手にもほどがある。
0662デフォルトの名無しさん2011/04/05(火) 07:10:53.70
>>658
ママが誰と答えるかでRubyistとしてのレベルが計れるわけですね。わかります
0663デフォルトの名無しさん2011/04/05(火) 07:21:57.42
アーッ!
0664デフォルトの名無しさん2011/04/05(火) 08:35:50.68
>>658
>>662
slashdot.jpにRubyのママの記述があったね
0665デフォルトの名無しさん2011/04/05(火) 12:25:29.64
メソッド引数には括弧つけたい

val = mes arg1, arg2, arg3

とか書く人は、わかりにくいとは感じないんだろうか
目で慎重にパースしないといけないことに気づいてないんだろうか
0666デフォルトの名無しさん2011/04/05(火) 13:20:59.27
書いた人は
「ここはmesにarg1とarg2とarg3を渡したものをvalに代入する動作」
ってあらかじめわかってるからわざわざ目で読んだりしないよ
0667デフォルトの名無しさん2011/04/05(火) 14:25:32.34
書いたときは「なんかすごいの書いた!やりとげた!」みたいな感じなんだけどね
1週間後くらいに読んでなんだこれって書き直す
稀にそのまま公開して放置したライブラリとかがあって黒歴史に

全く括弧つけない流儀の人は稀にいるけど、あれはなんなんだろう
0668デフォルトの名無しさん2011/04/05(火) 16:11:51.80
引数があるメソッドのdefにまで付けない人がいるな。
0669デフォルトの名無しさん2011/04/06(水) 08:40:08.49
だってかっこわるいじゃん
0670デフォルトの名無しさん2011/04/06(水) 09:52:48.56
>>665
俺は「戻り値を捨てる場合は括弧を省略」派なので
戻り値を得るそのコードでは括弧を書くかな
戻り値を得るのは関数的なメソッド、戻り値を捨てるのは命令的なメソッドって感覚
0671デフォルトの名無しさん2011/04/06(水) 11:47:34.64
>>戻り値を得るそのコードでは括弧を書くかな
>>戻り値を得るのは関数的なメソッド、戻り値を捨てるのは命令的なメソッドって感覚
これって標準的な暗黙のルールなの?
0672デフォルトの名無しさん2011/04/06(水) 12:00:23.90
そういう規約が明文化されてるのは見たことないけど、
parse.y ではカッコのないメソッド呼び出しの関係にはコマンド、カッコのあるメソッド呼び出しの関係には
f_なんとか、という名前を使ってはいる。

戻り値を使うような文脈でカッコを省略すると見た目がわかりづらくなるしね。
0673デフォルトの名無しさん2011/04/06(水) 12:01:04.25
いちばん標準的なのは

少なくとも puts と p と print は書かない
ほかのメソッドはプライベートでも基本的には書くが、Kernel や Module の関数的メソッドは書かないことがある
[] や []= などのカッコの代わりになるものがある場合は書かない
引数が空っぽの場合も書かないが、(動作ではなく外見で)ローカル変数と紛らわしい場合は foo() と書く
def するときは、引数がない場合は絶対に書かず、引数がある場合は必ず書く
外国の人は foo (arg1, arg2) とか foo( arg1, arg2 ) とかやたら空白あける

だと思う
人間の目にとって多重代入と紛らわしいので、 val = foo arg1, arg2, arg3 とは普通の人は書かない
0674デフォルトの名無しさん2011/04/06(水) 15:54:22.37
ブロックでやたら空白空けるのも外人さんに多い印象
arr.each { |s|
...
}
みたいなの
動くけどね
動くけどさ
0675デフォルトの名無しさん2011/04/06(水) 16:06:37.14
>>674
俺、それ空白入れてないと見にくいんだよな。
0676デフォルトの名無しさん2011/04/06(水) 16:10:52.58
おじちゃんしつもん

irb> p [].push('1' '2' '3')
["123"]

なんで引数が空白で分けられた複数の文字列の場合だけ超適当に連結されるん?
0677デフォルトの名無しさん2011/04/06(水) 16:22:21.87
Cの文字列リテラル連結の仕様をまねたのでは?
0678デフォルトの名無しさん2011/04/06(水) 16:26:57.39
ソースがVM命令になった時点ではもう連結済みなんだな。

> puts RubyVM::InstructionSequence.new(%q|'1' '2' '3'|).disasm
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
0000 trace 1 ( 1)
0002 putstring "123"
0004 leave
0679デフォルトの名無しさん2011/04/06(水) 16:27:53.42
あれ、なんだこれ

これあれか、123_456_789 が 123456789 とみなされるのと似たようなアレか
ruby-1.8.7-p334 :030 > "a" "b" "c" . upcase
=> "ABC"
きめえwwww
0680デフォルトの名無しさん2011/04/06(水) 16:30:04.02
Cだとマクロと組み合わせてリテラルの連結は使ったことあったけど
Rubyだと一体何に使うんだろうか
0681デフォルトの名無しさん2011/04/06(水) 16:35:07.20
>>680
キーボードのコンマキーが不意にジャムって入力されてなくても大意の表示はできるようにという
リアルタイム戦闘向け機能と判断
> puts "aaa", "bbb" "ccc"
aaa
bbbccc
0682デフォルトの名無しさん2011/04/06(水) 16:39:24.45
Cだと複数行からなるリテラルを改行文字ごとに実際に行を分けて書いて
見易くするというケースがあるけど、Rubyだと行を分けたらセミコロンがな
くてもそこで本当に終わってしまうし、それこそHeredocもあるし。
0683デフォルトの名無しさん2011/04/06(水) 18:04:49.00
p <<HERE "xyz"    # => "abc\nxyz"
abc
HERE

こんなんまで連結できんのかよwすげー無駄機能
0684デフォルトの名無しさん2011/04/06(水) 18:11:28.69
最も使わない機能としてカルトQに出題するために仕込んだとしか思えない
0685デフォルトの名無しさん2011/04/06(水) 18:52:11.15
print "Cと同じような\n" \
"使い方\n" \
"するんじゃないの?\n"
0686デフォルトの名無しさん2011/04/06(水) 20:17:44.74
irb> "a" "b" "c"
=> "abc"
0687デフォルトの名無しさん2011/04/06(水) 20:47:36.49
ふとunpackのフォーマット文字列にコメント混ぜて書くときに
使えるかなと思ったのだけど

>> a = ("a4" # magic
>> "c" # filesize
>> )
"c"

Cのカンマ式と同じようなことしてるっぽいけどこの挙動はなぜ?
0688デフォルトの名無しさん2011/04/06(水) 20:51:08.48
初期のドヤ顔仕様が今でも残ってるってことなんだろうな
0689デフォルトの名無しさん2011/04/06(水) 20:57:52.91
:: でメソッドが呼べるのと同じか
なんとなくわかるわ
0690デフォルトの名無しさん2011/04/06(水) 21:19:28.33
>>687
Cと違って改行で行を切れることと関係ありそうだけど、よくわからぬ。
開き括弧の中だから行として終わってはいけないような気もするんだが。
0691デフォルトの名無しさん2011/04/06(水) 21:51:52.00
>>690
よくわかんないよね。見たかったことにしてArrayをjoinしとこう
0692デフォルトの名無しさん2011/04/06(水) 22:06:49.53
>>687
改行されてるから
a = ("a4"; "c" )
p a # => "c"
と同じことになるんでしょう
グループ内の最後の式が、そのグループの値になると
0693デフォルトの名無しさん2011/04/06(水) 22:44:03.97
>>692
なるほど。言われてみれば別におかしくもなんともない気がしてきた
むしろカッコ置けば改行の文区切りが抑制されると考えるほうがおかしいのか
0694デフォルトの名無しさん2011/04/06(水) 22:59:48.38
おかしいとかおかしくないとかじゃなく、そういう言語仕様ってだけなんじゃね?
0695デフォルトの名無しさん2011/04/07(木) 01:04:34.80
とりあえずRubyは自由に書けすぎてきもい
0696デフォルトの名無しさん2011/04/07(木) 01:54:18.06
そういう言語仕様がおかしいのではという話だろう
0697デフォルトの名無しさん2011/04/07(木) 01:56:53.88
何言ってんの仕様ってのは、どんなに理不尽でも「それで正しい」って
マイクロソフトが決めたじゃないですか。
0698デフォルトの名無しさん2011/04/07(木) 01:59:13.96
>>697
どうか話をややこしくさせないでくれ。
Ruby界隈じゃ言語仕様がいいのわるいのは、
Matz交えてよく議論されてたと思うが。
0699デフォルトの名無しさん2011/04/07(木) 12:20:18.67
gravatar.comの画像をOFFにしたらGitHubの表示が速くなった…
0700デフォルトの名無しさん2011/04/07(木) 18:29:37.52
Twitterが速くなったらしいね
0701デフォルトの名無しさん2011/04/07(木) 19:53:29.94
>>700
Rubyじゃなくなったけどな‥
0702デフォルトの名無しさん2011/04/07(木) 19:57:32.25
Rubyじゃなくなったからな‥
0703デフォルトの名無しさん2011/04/07(木) 19:59:27.26
だったとさ、めでたし、めでたし…?
07047012011/04/07(木) 20:12:16.38
Blenderてのがどんなんか気になるな
http://www.itmedia.co.jp/enterprise/articles/1104/07/news043.html

検索が速くなった、てんだからLuceneの導入がデカいんだろうが
LucenaにあわせてフロントエンドもJavaにしたんだろうな
0705デフォルトの名無しさん2011/04/07(木) 22:51:39.19
WebrickのHTTPProxyServerはいつパイプライン化されるのだろうか・・・(´・ω・`)
0706デフォルトの名無しさん2011/04/07(木) 23:03:43.14
>>705
別の使いなよ......。
0707デフォルトの名無しさん2011/04/07(木) 23:54:48.20
>>706
HTTP ProxyのフレームワークってWebrickくらいしか知らない・・・
おすすめがあれば教えてくれると嬉しい
0708デフォルトの名無しさん2011/04/08(金) 00:17:46.66
なんのためにProxy使ってるのかにもよるんじゃね
0709デフォルトの名無しさん2011/04/08(金) 02:15:53.43
TwitterがRuby見限ったのでもうRuby覚える気なくなったわ
0710デフォルトの名無しさん2011/04/08(金) 02:25:00.43
>>709
世界一はやってる言語COBOLに移行するとしあわせになれるよ!!
探せば月130とかもあるよ!!
0711デフォルトの名無しさん2011/04/08(金) 02:29:52.24
いやそういうアホな意見はもういいから
やっぱモンキーが作った言語はダメってことがよくわかった
0712デフォルトの名無しさん2011/04/08(金) 03:18:50.87
阿呆が涌いてます
伝染るので触らないで下さい
0713デフォルトの名無しさん2011/04/08(金) 09:03:10.47
Rubyは早いが遅い
Javaは遅いが速い
0714デフォルトの名無しさん2011/04/08(金) 11:23:46.41
>>709
同意
0715デフォルトの名無しさん2011/04/08(金) 11:25:52.35
好きにすればいいと思うよ

そうやって次々と乗り換えてたらなにひとつものにできないだけだから
0716デフォルトの名無しさん2011/04/08(金) 13:15:50.79
twitter ぐらいのサービス作ってから言語に文句いえよ
0717デフォルトの名無しさん2011/04/08(金) 14:01:59.29
Twitter、検索結果表示が“3倍速く”なったと発表――フロントエンドの切り替えで
http://www.itmedia.co.jp/news/articles/1104/07/news043.html
0718デフォルトの名無しさん2011/04/08(金) 15:22:51.79
>>709
ワンライナーもJavaで書くといいよ
頭の中からJava以外のプログラミング言語忘れ去るといいよ
そうしないとJavaのこともっと覚えられないからね



ぶっちゃけ下二行はこの板の住人が本気で思ってそうだから怖い
0719デフォルトの名無しさん2011/04/08(金) 16:26:47.66
>>TwitterがRuby見限ったのでもうRuby覚える気なくなったわ
何かをするのにプログラムを使うのじゃなくて、
プログラムを覚えることが目標だから
こういう風に考えるんだろうね
0720デフォルトの名無しさん2011/04/08(金) 16:38:11.52
違うよ
ただ単に煽りたいだけだよ
0721デフォルトの名無しさん2011/04/08(金) 16:48:36.42
twitter は1.8 なんだろ?
0722デフォルトの名無しさん2011/04/08(金) 18:52:23.22
>>708
NicoCache+α(htmlを改変して便利機能の追加)をしたいので
スクリプトで各種動作を制御できるProxyが欲しいです
0723デフォルトの名無しさん2011/04/08(金) 20:26:54.62
>>719
使わない言語を覚える必要があるの?
君が何が言いたいのかわからないね
0724664,6722011/04/08(金) 21:27:05.08
>>722
> >>708
> NicoCache+α(htmlを改変して便利機能の追加)をしたいので
> スクリプトで各種動作を制御できるProxyが欲しいです
素性的にはmongrel2とかどうよ
RubyでもイケるしRackインターフェースもあるし速度にこだわるならLuaで書けるし。

ただ、zeromqの仕様上リクエストとかレスポンスは一塊での送受信で
例えば巨大なレスポンスが来たときに適当なチャンクの塊ごとにコールバックを呼び出してくれるとかそういうのはなさそうだけども。

でもニコニコ動画とかならパーシャルでリクエストするから特に困らんよね?

丁度同じ用途で似たようなのを作ろうとしてたから
気が向いたら晒してくれるとうれしい。
0725デフォルトの名無しさん2011/04/08(金) 21:28:41.93
ああ、ごめん。上の名前欄はミスなんで無視してくれ......。
0726あまちゃん2011/04/10(日) 02:04:24.62
json使えますか?Dictionaryっぽくjsonしたいです
0727デフォルトの名無しさん2011/04/10(日) 03:37:05.31
yamlでjson扱っちゃえばいいよ
0728デフォルトの名無しさん2011/04/10(日) 08:38:13.87
1.8.7ならjson.gemかjson_pure.gem、1.9.2なら標準でついてる。
0729デフォルトの名無しさん2011/04/10(日) 13:22:01.16
>>598
>Rubyって真似だから
>真似ばっかりだよな他人のアイディアとか真似
>すぐ真似気持ち悪いよ?すぐ他人の真似本当にきもいよ?
>独創性が無いのかな つまらねえことばっかりしてるし
>つまらねんだよまじで 本当にかすか?アイディア0だな
>つまらねえから パソコンもMacばっかりだし
>ばかなのか?Macと言うブランド利用して逃げ込んでるだけだろ?
多様性とか言ってるけど似た者同士で同じようなことばっか
0730デフォルトの名無しさん2011/04/10(日) 14:53:54.76
>>729
全文引用に意味はあるのか
0731デフォルトの名無しさん2011/04/10(日) 21:06:53.93
触るやつにも触っちゃいけない
そういう意味ではおれもダメじゃん
0732デフォルトの名無しさん2011/04/11(月) 11:10:43.41
>>729
>>598
>>Rubyって真似だから
>多様性とか言ってるけど似た者同士で同じようなことばっか
0733デフォルトの名無しさん2011/04/11(月) 11:51:32.80
rake spec とか rake test でエラー出る状態で共有リポジトリに push する人ってなんなの暇人なの
0734デフォルトの名無しさん2011/04/11(月) 11:53:39.44
プロジェクトの規模と方針によるとは思う
0735デフォルトの名無しさん2011/04/11(月) 12:24:26.66
公開リポジトリなら即悪斬
pushの頻度減らしてでもテストしろ
テストすら動かないようなコードをローカルから出すな
テストの意味がなくなって悲しいだろ
0736デフォルトの名無しさん2011/04/11(月) 13:17:42.53
>amachang 今粛々と民事刑事の方面で進めています。一応、すべて証拠として保存しなければいけないので、冗談でも今はこのスレに変なこと書き込まないでください。
>2011/01/28


http://hibari.2ch.net/test/read.cgi/prog/1291518728/

>1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・

> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
0737デフォルトの名無しさん2011/04/11(月) 18:33:36.51
githubみたいなとこだと、悪いのは自分の環境だったみたいなオチもないわけでもなく…
0738デフォルトの名無しさん2011/04/11(月) 21:18:18.30
「テストコードで使っているテスト用文字列生成メソッドが正しく動作するかどうかが不明です」
というたいへん示唆に富むリジェクトを頂いた
まあ、そうなんだけどさ

冗長でもリテラルで網羅して書いたほうが間違いないっすかぁ
間違いないっすねぇ
0739デフォルトの名無しさん2011/04/11(月) 21:28:14.28
たくさんテストコードがあると「まとめたら見やすくなんね?」とかつい思うんだよ
で、確かにまとまるんだ、まとまるんだが…
0740デフォルトの名無しさん2011/04/11(月) 21:56:06.05
どっかで見たような気がするんだけど、
テストのコードではそんなに徹底的にはDRYを追求しない、って話。なんでだっけかな。
0741デフォルトの名無しさん2011/04/11(月) 22:07:51.08
テストじゃリテラルが鉄則だろ
0742デフォルトの名無しさん2011/04/11(月) 23:42:29.89
テストコードのテスト書けばいいじゃん
0743デフォルトの名無しさん2011/04/12(火) 06:39:23.10
>>732
>>729
>>>>598
>>>Rubyって真似だから
>>多様性とか言ってるけど似た者同士で同じようなことばっか
ルビー会議も今年で最後だしすっきり
なんでみんなオナニー見せ合うんだろう?
見てる方はちっとも気持ちよくないよね
0744デフォルトの名無しさん2011/04/12(火) 07:52:21.34
自分はオナニーと思っているかもしれないが
人もそう思っていると思わないように
0745デフォルトの名無しさん2011/04/12(火) 08:57:36.09
>>740
テストのコード自体はDRYでいいんだよ
テスト対象やテストデータをDRYで自動生成とかすると深みにはまる
0746デフォルトの名無しさん2011/04/12(火) 10:12:18.46
>>744
>自分はオナニーと思っているかもしれないが
>人もそう思っていると思わないように
でも実際のところ結構思っている人いそうだよね
0747デフォルトの名無しさん2011/04/12(火) 10:13:23.08
こないだまでRubyはここがこの言語の何々と違う、とか言って必死にdisってたのに、
今度は真似ばっかと言って非難かw
0748デフォルトの名無しさん2011/04/12(火) 11:56:16.81
人生オナニーしてなんぼだとおもう今日この頃
いんぽは社蓄やっとけよ
0749デフォルトの名無しさん2011/04/12(火) 12:10:46.87
早漏だから5分で終わっちゃうよ
0750デフォルトの名無しさん2011/04/12(火) 12:47:18.49
>>747
別の方と勘違い。。。
0751デフォルトの名無しさん2011/04/12(火) 12:50:49.11
>>748
妻の手コキや同僚とのいちゃいちゃセックスの方が気持ちいいだろうが
オナニーってw
コミュ力無いから自慰かよw
0752デフォルトの名無しさん2011/04/12(火) 13:21:02.21
気持ちいいのは最初だけ
■ このスレッドは過去ログ倉庫に格納されています