プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
探検
Ruby 初心者スレッド Part 62
■ このスレッドは過去ログ倉庫に格納されています
2017/11/24(金) 00:35:29.31ID:rLZHdQ3Q
2017/11/26(日) 22:48:35.39ID:LT7w1DpA
データ分析系は
Pythonが流行してるから
そっちで本出すだろ
Rubyだとライブラリと
速度がネックになるから
Pythonが流行してるから
そっちで本出すだろ
Rubyだとライブラリと
速度がネックになるから
2017/11/26(日) 23:21:25.25ID:azT4+Y0L
2017/11/26(日) 23:44:18.39ID:e8MWK5Ug
13デフォルトの名無しさん
2017/11/27(月) 00:33:15.55ID:o0pIkOSz rubyコンとかRuby勉強会とかどんな感じ?
マシンスペック的にはどんなのもっていけばいい?
マシンスペック的にはどんなのもっていけばいい?
2017/11/27(月) 01:59:56.02ID:x+zk8UEy
開発マシンの、CPU は i7、メモリは最低でも 8GB(16GB が望ましい)
Windows 10 pro
WSL・仮想OS で、Linux
Mac の人も多い
Windows 10 pro
WSL・仮想OS で、Linux
Mac の人も多い
15デフォルトの名無しさん
2017/11/27(月) 07:55:32.25ID:gt4bCosJ >>12
Rubyはrails以外に使い道無いから他の事したいなら他の言語覚えろよ
Rubyはrails以外に使い道無いから他の事したいなら他の言語覚えろよ
2017/11/27(月) 12:11:21.22ID:W0wAPtjw
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/11/27(月) 13:14:45.58ID:o0pIkOSz
2017/11/27(月) 18:50:34.20ID:agUtcdpR
最近の荒らしはやり方が雑だよな
殆ど単発の自演しか涌かないし
出て来ても「はいはい、荒らしてますよ〜」みたいな嫌々やらされてる感しかない
殆ど単発の自演しか涌かないし
出て来ても「はいはい、荒らしてますよ〜」みたいな嫌々やらされてる感しかない
2017/11/27(月) 19:23:05.97ID:x+zk8UEy
Ruby は、Linux 必須だから、WSL・仮想OS ・Docker などが必須
2つのOS を動かすから、メモリは最大限積む必要があり、
CPU はi7 にすると、16GB まで積める。
i3, i5 だと、8GBまでかな?
それと、たいていのプログラム言語の本の動作条件が、Windows Pro
一般的に、開発用PC は、高スペック。
画面も、フルHD 以上
2つのOS を動かすから、メモリは最大限積む必要があり、
CPU はi7 にすると、16GB まで積める。
i3, i5 だと、8GBまでかな?
それと、たいていのプログラム言語の本の動作条件が、Windows Pro
一般的に、開発用PC は、高スペック。
画面も、フルHD 以上
2017/11/27(月) 21:01:16.83ID:LZyaXIN8
もうこいつどんだけ粘着するのか
2017/11/27(月) 21:44:22.84ID:agUtcdpR
自演も中途半端
もうただ単に定型文を打つだけで満足してて、
荒れたかどうかも気にしなくなってるんだよな
夏休みの宿題やらされてる子供かよ
もうただ単に定型文を打つだけで満足してて、
荒れたかどうかも気にしなくなってるんだよな
夏休みの宿題やらされてる子供かよ
2017/11/27(月) 22:51:47.97ID:rAG/Bhsm
「また自演した」「このスレには自演が居るから」「このスレには自演がいます!いますよ!ほら!」としか書くことがなくなったんだろうなと思う
本当に他人から貰ったレスというのは自分がいちばんよくわかってて、そしてそれは本レスにおいても自演指摘レスにおいてもおそらく極めて少ない
住人の冷めた態度が効いてると表現することはできなくもないが
本当に他人から貰ったレスというのは自分がいちばんよくわかってて、そしてそれは本レスにおいても自演指摘レスにおいてもおそらく極めて少ない
住人の冷めた態度が効いてると表現することはできなくもないが
2017/11/27(月) 23:02:26.98ID:SI4QCwP5
静的型マンセーの粘着がいるのは確かだが、何でもかんでも自演自演言ってるやつもちょっと病的だよな
ちょっとネガティブな発言しただけなのに荒らしの自演認定されたことあるし
ちょっとネガティブな発言しただけなのに荒らしの自演認定されたことあるし
2017/11/27(月) 23:32:26.87ID:W0wAPtjw
上の人は荒らしだからスルーでお願いします
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/11/27(月) 23:50:32.31ID:9RbRf1jA
2017/11/27(月) 23:53:05.49ID:rAG/Bhsm
>>23
スレ住人が過去に何度か同調したことがあるのだが、
そのせいで自分が こ れ 以 降 何 を し て も 正義で多数派で「こちら側」に居れると勘違いしてしまったらしいのだ
いつか自分が「あちら側」に追いやられていたことに気づく日がくればいいと思う
スレ住人が過去に何度か同調したことがあるのだが、
そのせいで自分が こ れ 以 降 何 を し て も 正義で多数派で「こちら側」に居れると勘違いしてしまったらしいのだ
いつか自分が「あちら側」に追いやられていたことに気づく日がくればいいと思う
2017/11/28(火) 00:02:17.19ID:1+J/qigr
そうやって嫌々やってるからまたボロを出す
22:51:47.97
23:02:26.98
こんだけ時間くっつけて発言すればバカにさえ自演だってわかる
しっかり頭を働かせろ
ゆとり世代か何かか?
22:51:47.97
23:02:26.98
こんだけ時間くっつけて発言すればバカにさえ自演だってわかる
しっかり頭を働かせろ
ゆとり世代か何かか?
2017/11/28(火) 00:03:55.96ID:qPKDeu2+
だから、まあ、我々はふたつの荒らしを並行同時にあしらいながら進まねばならなくなっている
「やってはいけないこと」「さわってはいけないもの」は倍以上に増え、発言の困難性は以前より遥かに増した
難儀なことだ
「やってはいけないこと」「さわってはいけないもの」は倍以上に増え、発言の困難性は以前より遥かに増した
難儀なことだ
29デフォルトの名無しさん
2017/11/28(火) 00:07:19.20ID:TcvLN2I4 完動する事を確認しているDLライブラリ使ったスクリプトを、思いつきでrubyに付属のdebug.rbで診たら、
dllの関数呼び出しの所で`unknown symbol "関数名"' (RuntimeError)がでてなかなかブレークポイントまで進めません
一部の止まるエラーを抑えたり、スクリプト上の一定部分だけデバッガー無効化したりすることは可能ですか?
dllの関数呼び出しの所で`unknown symbol "関数名"' (RuntimeError)がでてなかなかブレークポイントまで進めません
一部の止まるエラーを抑えたり、スクリプト上の一定部分だけデバッガー無効化したりすることは可能ですか?
2017/11/28(火) 00:39:00.64ID:yd/D5jJi
2017/11/28(火) 03:30:10.92ID:PkJOT8pW
そのエラーになる部分を、コメントアウトして実行すれば?
32デフォルトの名無しさん
2017/11/29(水) 04:08:52.30ID:zX4fkY5X debug.rbはkernelのset_trace_funcで登録したprocを、デバッギーの行毎に呼び出してる
だから呼び出されたくない行は登録するproc内でif文を使って分岐させてやれば良い
やってることはそれ程難しくないし、debug.rbに10行程度書き加えれば出来るよ
だから呼び出されたくない行は登録するproc内でif文を使って分岐させてやれば良い
やってることはそれ程難しくないし、debug.rbに10行程度書き加えれば出来るよ
2017/11/29(水) 18:32:32.11ID:MwOAAXQr
>>29
DEBUGGER__クラス内の一番下段の下記を、
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {
trace_instruction: true
}
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
}
DEBUGGER__クラス内の一番下段の下記を、
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {
trace_instruction: true
}
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
}
2017/11/29(水) 18:44:22.06ID:MwOAAXQr
下のに書き換え、
@@ignore_ = {}
def DEBUGGER__.ignore_(ignorefl = @@ignore_)
return @@ignore_ = ignorefl
end
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {:trace_instruction => true} if RUBY_VERSION > "1.9.0"
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
tb = caller(0);last_i = "";i_name = "";i_num = 0;
last_i = tb[-1] if tb.size > 0
last_i.dup.each_line(":"){ |i_line|
if i_line .to_i > 0 || (i_line.chop).to_i > 0
break if i_name.size < 1
i_num = (i_line[-1] == ":" ? (i_line.chop).to_i : i_line .to_i)
i_name = i_name.chop
break
else
i_name += i_line
end
}
if i_num > 0 && DEBUGGER__.ignore_.include?(i_name) && DEBUGGER__.ignore_[i_name].include?(i_num)
# debug_skip
else
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
end
}
@@ignore_ = {}
def DEBUGGER__.ignore_(ignorefl = @@ignore_)
return @@ignore_ = ignorefl
end
stdout.printf "Debug.rb\n"
stdout.printf "Emacs support available.\n\n"
RubyVM::InstructionSequence.compile_option = {:trace_instruction => true} if RUBY_VERSION > "1.9.0"
set_trace_func proc { |event, file, line, id, binding, klass, *rest|
tb = caller(0);last_i = "";i_name = "";i_num = 0;
last_i = tb[-1] if tb.size > 0
last_i.dup.each_line(":"){ |i_line|
if i_line .to_i > 0 || (i_line.chop).to_i > 0
break if i_name.size < 1
i_num = (i_line[-1] == ":" ? (i_line.chop).to_i : i_line .to_i)
i_name = i_name.chop
break
else
i_name += i_line
end
}
if i_num > 0 && DEBUGGER__.ignore_.include?(i_name) && DEBUGGER__.ignore_[i_name].include?(i_num)
# debug_skip
else
DEBUGGER__.context.trace_func event, file, line, id, binding, klass
end
}
2017/11/29(水) 18:51:55.61ID:MwOAAXQr
デバッグするソースファイルの最初の方に以下を書き加え、debugをスキップしたいファイルをignorefに、行をRangeかArrayでignorelにいれる
if defined? DEBUGGER__
ignoref = __FILE__
ignorel = []# 27..48
DEBUGGER__.ignore_[ignoref] = ignorel
end
debugのスクリプトそのものを書き換えるんじゃなくて、
複製して別名をつけたものを書き換えて使ったほうが良いよ
if defined? DEBUGGER__
ignoref = __FILE__
ignorel = []# 27..48
DEBUGGER__.ignore_[ignoref] = ignorel
end
debugのスクリプトそのものを書き換えるんじゃなくて、
複製して別名をつけたものを書き換えて使ったほうが良いよ
2017/11/30(木) 01:37:59.97ID:XY2yKXS8
Rubyでopenglのシェーダーを扱った本、技術評論社辺りから出してくれないかな
こういうのこそRuby向けだよ
こういうのこそRuby向けだよ
37デフォルトの名無しさん
2017/11/30(木) 13:11:26.74ID:dNsMGYhb OpenGL自体のgemとかはそろってるから、
ミクミク互換やXファイル互換のソースを添付して出せば売れそうだけどな
ミクミク互換やXファイル互換のソースを添付して出せば売れそうだけどな
2017/12/01(金) 01:22:55.57ID:UulhXT9P
# frozen_string_literal: false
ソースの最初に上のように書かれてるのを見つけたけどどいう意味?
他にもこういうのあるの?
ソースの最初に上のように書かれてるのを見つけたけどどいう意味?
他にもこういうのあるの?
2017/12/01(金) 04:44:53.26ID:zZy3ktkC
>>38
ruby-3以降はリテラル文字列がfrozenされることになるけど、
そうさせないためのマジックコメントでリテラル文字列の破壊的動作が許されるようにしている
ruby-2.3以降であればruby --enable frozen-string-literal <ファイル名>でrubyを起動することで、
リテラル文字列をfrozenされた状態とする挙動を試すことができる
# これまでの挙動
$ ruby -e 'p "A".downcase!'
"a"
# ruby-3以降のリテラル文字列の挙動を試す (ruby-2.3以降)
$ ruby --enable frozen-string-literal -e 'p "A".downcase!'
-e:1:in `downcase!': can't modify frozen String (RuntimeError)
from -e:1:in `<main>'
ruby-3以降はリテラル文字列がfrozenされることになるけど、
そうさせないためのマジックコメントでリテラル文字列の破壊的動作が許されるようにしている
ruby-2.3以降であればruby --enable frozen-string-literal <ファイル名>でrubyを起動することで、
リテラル文字列をfrozenされた状態とする挙動を試すことができる
# これまでの挙動
$ ruby -e 'p "A".downcase!'
"a"
# ruby-3以降のリテラル文字列の挙動を試す (ruby-2.3以降)
$ ruby --enable frozen-string-literal -e 'p "A".downcase!'
-e:1:in `downcase!': can't modify frozen String (RuntimeError)
from -e:1:in `<main>'
2017/12/02(土) 02:33:11.13ID:7L3qqdqd
>>39
前スレのリテラルの話でArrayが出てたけど、Arrayも何か将来的に関係あるの?
前スレのリテラルの話でArrayが出てたけど、Arrayも何か将来的に関係あるの?
2017/12/02(土) 12:25:58.45ID:S9pj625T
二項演算子型のシンタックスシュガーって場合によっては意図したとおりに動いてくれないんだね
Math::PI %1 #=> unknown type of %string
Math::PI *1 #=> undefined method `PI' for Math:Module
Math::PI /1 #=> unterminated regexp meets end of file
Math::PI >1 #=> true
pi = Math::PI
pi %1 #=> unknown type of %string
pi *1 #=> 3.141592653589793
pi /1 #=> 3.141592653589793
pi >1 #=> true
Math::PI %1 #=> unknown type of %string
Math::PI *1 #=> undefined method `PI' for Math:Module
Math::PI /1 #=> unterminated regexp meets end of file
Math::PI >1 #=> true
pi = Math::PI
pi %1 #=> unknown type of %string
pi *1 #=> 3.141592653589793
pi /1 #=> 3.141592653589793
pi >1 #=> true
2017/12/02(土) 12:28:39.60ID:S9pj625T
pi %1 #=> unknown type of %string
じゃなくて
pi %1 #=> 0.14159265358979312
だった
定数だとうまくいかない模様
じゃなくて
pi %1 #=> 0.14159265358979312
だった
定数だとうまくいかない模様
2017/12/02(土) 12:49:07.58ID:m0rwQM4g
>>41が何を意図しているか分かるわけないだろう
2017/12/02(土) 13:43:40.72ID:0GCrzYMu
スペースを入れろってだけの話では
45デフォルトの名無しさん
2017/12/02(土) 13:50:50.68ID:XRYOyseR 今年もクリスマスイブに何か発表ある?
46デフォルトの名無しさん
2017/12/03(日) 03:01:00.42ID:IGABZHMD >>39
さんくす
さんくす
2017/12/03(日) 12:36:05.29ID:76TDWePk
Ruby2.5
48デフォルトの名無しさん
2017/12/05(火) 03:46:28.43ID:XHolF61u Rubyの型システムは早ければ2020年のオリンピック頃にお目見えか
どんな物になるんだろう
どんな物になるんだろう
2017/12/05(火) 16:37:09.15ID:tba/yJ/+
2017/12/05(火) 16:48:30.13ID:lVtWIMct
他言語の経験あるなら
プロを目指す人のためのRuby入門という入門書が新しくておすすめ(出たばかり)
プロを目指す人のためのRuby入門という入門書が新しくておすすめ(出たばかり)
2017/12/05(火) 17:04:59.24ID:04pPds2q
本は買った後、
分からない事があれば、ここで環境とコード示して聞けば良いよ
誰かが答えてくれるから
分からない事があれば、ここで環境とコード示して聞けば良いよ
誰かが答えてくれるから
2017/12/05(火) 23:05:42.39ID:bv7GN3wK
たのしいRuby 第5版、2016
R を知ってるなら、これも読む。
みんなのPython 第4版、2017
この2冊は、表裏一体。
ただし、先に「たのしい」から読むこと
R を知ってるなら、これも読む。
みんなのPython 第4版、2017
この2冊は、表裏一体。
ただし、先に「たのしい」から読むこと
2017/12/06(水) 00:16:07.55ID:Nuv0O2Zm
54デフォルトの名無しさん
2017/12/06(水) 04:53:57.53ID:j5o9izkC >荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
2017/12/06(水) 16:47:29.82ID:AVh4r46K
Effective RubyがKindleで半額セール中(1728円)
56デフォルトの名無しさん
2017/12/06(水) 21:44:56.35ID:sdwtDf9T RubyでOpenGLの書籍も来い
2017/12/06(水) 21:46:49.21ID:vDrxBWCE
読者100人ぐらいしかいなさそう
2017/12/06(水) 21:48:41.70ID:Q8AsPyaZ
まずRubyが遅いから
画像処理やろうって人が少ない
画像処理やろうって人が少ない
2017/12/06(水) 21:57:47.76ID:j5o9izkC
3Dモデリングなら速度要らなさそう
あと可視化の分野辺り
というか、ゲームじゃなければ速度いらないだろ
あと可視化の分野辺り
というか、ゲームじゃなければ速度いらないだろ
60デフォルトの名無しさん
2017/12/06(水) 22:11:16.54ID:sdwtDf9T 3Dモデルというか、OpenGL学ぶのに最適だよRubyは
教材として出せば良いのに
商材として出すならMMDやXといった各種3Dモデル形式に対応した3DモデリングソフトをRubyで書いてCD付録として書籍につければ良い
そのRubyコード目当てに買う人は多いだろうし、Rubyで書いてるから書き換えやすく、改造もしやすい
教材として出せば良いのに
商材として出すならMMDやXといった各種3Dモデル形式に対応した3DモデリングソフトをRubyで書いてCD付録として書籍につければ良い
そのRubyコード目当てに買う人は多いだろうし、Rubyで書いてるから書き換えやすく、改造もしやすい
2017/12/06(水) 23:53:59.61ID:9Cl2Q0EY
残念ながらそれはない
Rubyはまともに使うつもりないなら学習のオーバーヘッドが大きすぎる
今ならJavaScriptとWebGLでいいよ
Rubyはまともに使うつもりないなら学習のオーバーヘッドが大きすぎる
今ならJavaScriptとWebGLでいいよ
62デフォルトの名無しさん
2017/12/07(木) 02:09:30.99ID:5ii6i5Is おまえがネガキャンしても無意味だ
2017/12/07(木) 02:49:15.45ID:mIJMiEiv
openglか
確かラッパーのgemがいくつかあるんだよな
初期のでglVertexPointerやらglColorPointerやら使って三角形を描画するとかやった記憶がある
今のgemはVBOやシェーダは使えるのか?
確かラッパーのgemがいくつかあるんだよな
初期のでglVertexPointerやらglColorPointerやら使って三角形を描画するとかやった記憶がある
今のgemはVBOやシェーダは使えるのか?
2017/12/07(木) 03:59:25.76ID:GxHPFgmw
3Dモデラーソフトのソースが付くなら欲しい
ゼロから書くのは面倒だけど既にある程度完成しているなら、
自分で足りない所だけ追加して楽できる
ゼロから書くのは面倒だけど既にある程度完成しているなら、
自分で足りない所だけ追加して楽できる
2017/12/07(木) 16:46:28.15ID:al0lHo8n
>>63
gemをちょっとググってみたけどopengl4.xに対応しててそれ用の関数もある
shaderがどこまで出来るかは自己の環境次第なんじゃね?
まあ、最近はopengl4.x使える環境がデフォだけど
gemをちょっとググってみたけどopengl4.xに対応しててそれ用の関数もある
shaderがどこまで出来るかは自己の環境次第なんじゃね?
まあ、最近はopengl4.x使える環境がデフォだけど
2017/12/07(木) 22:06:15.41ID:mIJMiEiv
みんな、Rubyのリファクタリングツール使ってる?
今まで手動でやってきたんだけど、何かお勧めツールかgemある?
今まで手動でやってきたんだけど、何かお勧めツールかgemある?
2017/12/07(木) 22:18:59.22ID:h0N877cC
rubymine
2017/12/07(木) 22:35:19.73ID:p8nuhjj6
rspec
rubyは静的解析が極めて困難な言語であり、リファクタリングを機械的に安全に行うことはできない
テストをちゃんと書いておいて、実際に繰り返し動かしながら結果的に元の挙動が再現されるように慎重に行う必要がある
rubyは静的解析が極めて困難な言語であり、リファクタリングを機械的に安全に行うことはできない
テストをちゃんと書いておいて、実際に繰り返し動かしながら結果的に元の挙動が再現されるように慎重に行う必要がある
2017/12/07(木) 23:56:42.24ID:kyxQutt+
テストはバグが有ることを証明することはできるが
バグがないことを証明することはできない
故にいくらテストを書いても安心できない
バグがないことを証明することはできない
故にいくらテストを書いても安心できない
2017/12/08(金) 00:13:02.65ID:AScviHBw
お前のツールでリファクタリングしたらバグったやないか客の業務止まっとるんやぞどないしてくれんねんボケエ!!!
こうなるのが目に見えてるんだからツール作る方もやりたくないわな
静的リファクタリングを動的型言語に求めるのは筋違い
こうなるのが目に見えてるんだからツール作る方もやりたくないわな
静的リファクタリングを動的型言語に求めるのは筋違い
71デフォルトの名無しさん
2017/12/08(金) 00:48:46.54ID:yFCS8xkj また言ってるのかこいつ
はやく精神科に見てもらえ
ruby会議16か15でリファクタリングのgemのOHPあったけど、
ぐぐったら出てくるから見てみ
はやく精神科に見てもらえ
ruby会議16か15でリファクタリングのgemのOHPあったけど、
ぐぐったら出てくるから見てみ
2017/12/08(金) 01:08:24.02ID:ra4CwiYK
>>2 のリファクタリング:Rubyエディションを読めばわかるけど、
ツールで自動化するのは問題なく、むしろポイントはツールの使い勝手とか連携させるとかの方
リファクタリング機能自体にはあんまり差異は無い
例の自演荒らしはそれを知らずに静的云々とか煽ってるけど
ツールで自動化するのは問題なく、むしろポイントはツールの使い勝手とか連携させるとかの方
リファクタリング機能自体にはあんまり差異は無い
例の自演荒らしはそれを知らずに静的云々とか煽ってるけど
2017/12/08(金) 01:33:37.38ID:AScviHBw
>>72
さすがにリファクタリングに関して静的型と差異がないというのは贔屓目に見ても無理があるわ
例えばクラスのメソッドのリネームを安全に行うには、そのメソッドを使っている箇所を全て正確に特定しなければならない
静的型なら造作もないことだけど、ちょっと頭使えばわかることだが動的型では原理的に不可能
さすがにリファクタリングに関して静的型と差異がないというのは贔屓目に見ても無理があるわ
例えばクラスのメソッドのリネームを安全に行うには、そのメソッドを使っている箇所を全て正確に特定しなければならない
静的型なら造作もないことだけど、ちょっと頭使えばわかることだが動的型では原理的に不可能
2017/12/08(金) 01:35:02.78ID:T1izFLQz
Ruby技術者試験受けるよ!
アドバイスとかあったらお願いします
ちなみに、今年中にsilver受験するつもり
アドバイスとかあったらお願いします
ちなみに、今年中にsilver受験するつもり
2017/12/08(金) 01:36:07.26ID:AScviHBw
あと、Rubyに限ったことじゃないけどスクリプト言語は識別子を短くする傾向があるから、
単純にgrepで抽出するのも困難を極める
もちろん静的型では一文字メソッドだろうと全く問題ないけどね
単純にgrepで抽出するのも困難を極める
もちろん静的型では一文字メソッドだろうと全く問題ないけどね
2017/12/08(金) 02:01:33.10ID:AScviHBw
何が言いたいかというと、リファクタリングにツールの力を借りたくなるようなものを動的型で作るなら必ずテストを書けってことだ
絶対に安全というわけではないが気休めにはなる
テストのない大規模なRubyのソースは単なる糞の山であり、確実にメンテ不能に陥る
絶対に安全というわけではないが気休めにはなる
テストのない大規模なRubyのソースは単なる糞の山であり、確実にメンテ不能に陥る
2017/12/08(金) 02:24:45.46ID:DD2Dk6IR
strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
使われている文字が、一番多いもの(複数可)と、その回数を求める。
ひとまず、Hash に使われている回数を入れたけど、
ここから最大のもの、a, c の、2回を求めるには、どうすれば良い?
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
使われている文字が、一番多いもの(複数可)と、その回数を求める。
ひとまず、Hash に使われている回数を入れたけど、
ここから最大のもの、a, c の、2回を求めるには、どうすれば良い?
78デフォルトの名無しさん
2017/12/08(金) 02:44:53.49ID:yFCS8xkj >ID:AScviHBw
連投の癖から見ても例のあいつだな
話題すりかえれると思ってんのかゴミ
連投の癖から見ても例のあいつだな
話題すりかえれると思ってんのかゴミ
2017/12/08(金) 02:47:13.84ID:cpGshdOM
yFCS8xkjは例のアイツを記憶している
それぐらい例のアイツを意識しまくっている
それぐらい例のアイツを意識しまくっている
2017/12/08(金) 02:49:26.53ID:ra4CwiYK
>>79
自演バレてるぞ
自演バレてるぞ
2017/12/08(金) 02:52:47.39ID:cpGshdOM
自演じゃねーしw
例え自演だとしても、お前が例のアイツを忘れられない
ってのは事実だろう?だってそれっぽい書き込みをみたら
思い出してしまったんだし。
俺はどうでもいい人のことなんか覚えられないなぁw
例え自演だとしても、お前が例のアイツを忘れられない
ってのは事実だろう?だってそれっぽい書き込みをみたら
思い出してしまったんだし。
俺はどうでもいい人のことなんか覚えられないなぁw
2017/12/08(金) 03:03:28.70ID:M1BysAXW
今日の荒らしのIDはID:AScviHBwとID:cpGshdOMか
もっとレス稼げよカス
もっとレス稼げよカス
2017/12/08(金) 03:05:51.79ID:cpGshdOM
そういや上の方でrspecって名前が出てたけど、
rspecの使い方をマスターするのは重要だな。
contextとlet、この2つの正しい使い方は
ちゃんと理解しないといけない
たんなるグループわけとか変数の代わりではない
rspecの使い方をマスターするのは重要だな。
contextとlet、この2つの正しい使い方は
ちゃんと理解しないといけない
たんなるグループわけとか変数の代わりではない
2017/12/08(金) 03:11:55.00ID:cpGshdOM
少しヒントを出すか。
context(describe)はテスト対象のコードが複雑なら遠慮なくネストすること
もちろんテスト対象のコードはなるべくシンプルにするものだから
その場合はテストコードもcontextのネストも深くはならないのだが、
条件分岐があればそれに対応してcontextもネストさせてよい
そしてletは名前を遠慮なくかぶらせていい。
一般的には外側のスコープと同じ名前の変数を作るのは良くないことだが
describeとcontextのネストの中で、外側と同じ名前の変数は遠慮なく作っていい。
というか外側のletはデフォルト値、内側のletはそれを上書きする。そういう扱い
context(describe)はテスト対象のコードが複雑なら遠慮なくネストすること
もちろんテスト対象のコードはなるべくシンプルにするものだから
その場合はテストコードもcontextのネストも深くはならないのだが、
条件分岐があればそれに対応してcontextもネストさせてよい
そしてletは名前を遠慮なくかぶらせていい。
一般的には外側のスコープと同じ名前の変数を作るのは良くないことだが
describeとcontextのネストの中で、外側と同じ名前の変数は遠慮なく作っていい。
というか外側のletはデフォルト値、内側のletはそれを上書きする。そういう扱い
2017/12/08(金) 03:18:31.95ID:ra4CwiYK
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
もしかして何かの病気?
2017/12/08(金) 03:20:06.76ID:cpGshdOM
いつもと違う=別人 という発想に至れないのが残念な人だなw
思い込みハゲしいぜハゲ
思い込みハゲしいぜハゲ
2017/12/08(金) 03:25:08.37ID:JkPU7Xcj
>>77
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]
x = strArray.uniq.group_by{|e| strArray.count(e)}
# 最大値
m = x.keys.max # => 2
# 最大値を返す要素
x[m]. #=> ["a", "c"]
2017/12/08(金) 03:25:58.22ID:ra4CwiYK
ここまで「ネガキャンをしていたのは自分です」と告白してくれる人も珍しい
こんな正直な人なかなかいない
連投する癖は相変わらずウザイけど
こんな正直な人なかなかいない
連投する癖は相変わらずウザイけど
2017/12/08(金) 03:31:15.22ID:cpGshdOM
2017/12/08(金) 03:51:22.77ID:ra4CwiYK
いつもネガキャンがバレたら即自演荒らし始めるけど、
もしかして何かの病気?
もしかして何かの病気?
2017/12/08(金) 03:52:53.67ID:cpGshdOM
だから誰と間違ってんだよw
92デフォルトの名無しさん
2017/12/08(金) 04:13:17.16ID:uDZwOU33 ネガキャン失敗を晒しあげ
2017/12/08(金) 05:21:46.31ID:ra4CwiYK
2017/12/08(金) 05:27:36.83ID:T81djMMQ
毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね
95デフォルトの名無しさん
2017/12/08(金) 05:33:53.21ID:uDZwOU33 荒らし「毎回同じようなこと繰り返してるけど、今のrubyで問題ないと思ってるやつのほうが相当やばいと思うけどね」(荒す口実にしないとは言っていない)
9677
2017/12/08(金) 06:05:43.38ID:DD2Dk6IR strArray = %w(a b c a c)
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}
key, rassoc を使うと、最初に一致した、1つしか返さない。
p strHash.key(maxCount) #=> "a"
p strHash.rassoc(maxCount) #=> ["a", 2]
>>87
ありがとう。その方法でも出来ますね
strHash = strArray.each_with_object(Hash.new(0)) { |str, h| h[str] += 1 }
p strHash #=> {"a"=>2, "b"=>1, "c"=>2}
maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}
key, rassoc を使うと、最初に一致した、1つしか返さない。
p strHash.key(maxCount) #=> "a"
p strHash.rassoc(maxCount) #=> ["a", 2]
>>87
ありがとう。その方法でも出来ますね
2017/12/08(金) 06:34:00.66ID:T81djMMQ
今度は俺が荒らし扱いか
めんどくさいスレだな
めんどくさいスレだな
2017/12/08(金) 06:34:11.97ID:ra4CwiYK
毎回繰り返されているのはRubyに関係無い荒らしの自爆劇なんだよな
2017/12/08(金) 06:41:08.45ID:61INIGrw
単発でネガキャン繰り返してた奴=自演しながら静的静的言い続けてる荒らし
は確定か
次、荒らしがやりそうなのは
荒らしをスルーして書き込みさせてたIDでの"加勢"かな?
は確定か
次、荒らしがやりそうなのは
荒らしをスルーして書き込みさせてたIDでの"加勢"かな?
100デフォルトの名無しさん
2017/12/08(金) 07:38:48.25ID:AScviHBw 少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
101デフォルトの名無しさん
2017/12/08(金) 08:04:15.93ID:ZXhAMZdZ >>100
ID位変えろ。
ID位変えろ。
102デフォルトの名無しさん
2017/12/08(金) 09:57:04.25ID:v/VLqoKO103デフォルトの名無しさん
2017/12/08(金) 10:28:17.37ID:3HBH94ah それはRubyユーザーがRubyのスレでRubyについて何か書き込むのは当たり前では?
その意味で、唐突にPythonなど他の言語を持ち出す方が荒らしでは?
もう一度書くけど、RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?
逆にPythonユーザーがPythonスレに何か書き込むとき
同じことがRubyにも言えたら、ここにも何か書き込まなきゃならないのか?
その意味で、唐突にPythonなど他の言語を持ち出す方が荒らしでは?
もう一度書くけど、RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?
逆にPythonユーザーがPythonスレに何か書き込むとき
同じことがRubyにも言えたら、ここにも何か書き込まなきゃならないのか?
104デフォルトの名無しさん
2017/12/08(金) 11:06:13.77ID:+YVZNSfe まあ歓迎しない空気があるスレで歓迎しない話題を延々と続けるのもどうかとは思うが。
105デフォルトの名無しさん
2017/12/08(金) 12:25:20.39ID:T81djMMQ 最近のrubyの明るい話題と言えば、require 'pp' と書く必要がなくなったことくらいだな
106デフォルトの名無しさん
2017/12/08(金) 15:14:06.90ID:ra4CwiYK 荒らしよ
お前のやっている行為が荒らし行為じゃないって言うなら
ruby-listやruby-devに行けよ
お前のやっている行為が荒らし行為じゃないって言うなら
ruby-listやruby-devに行けよ
107デフォルトの名無しさん
2017/12/08(金) 15:55:17.61ID:v/VLqoKO >>103
>RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?
もちろん、それなら当たり前だよ
でも ID:AScviHBw がやった、RubyユーザーでもないのにRubyスレで
Rubyに限らない一般論を連投する行為は当たり前じゃないだろ?
http://hissi.org/read.php/tech/20171208/QVNjdmlIQnc.html
たとえばRailsユーザーがRubyスレでRailsについて連投するのは当たり前じゃないし、
そこでWebProg板の専用スレへの誘導を促されても移動せずに屁理屈をこね回していれば、
その行為に対して荒らし認定されるのは当たり前だろ?
ということで、これ以上「動的型付け言語におけるリファクタリング」うんぬんを
語りたければ、専用の隔離スレがあるからそちらへ移動を願う
・静的型付け言語の潜在開発生産性は今の100倍 ×5
http://mevius.2ch.net/test/read.cgi/tech/1385273168/
・リファクタリングをただのコード修正と思ってる人へ
http://mevius.2ch.net/test/read.cgi/tech/1275121556/
>RubyユーザーがRubyのスレでRubyについて書くのは当たり前では?
もちろん、それなら当たり前だよ
でも ID:AScviHBw がやった、RubyユーザーでもないのにRubyスレで
Rubyに限らない一般論を連投する行為は当たり前じゃないだろ?
http://hissi.org/read.php/tech/20171208/QVNjdmlIQnc.html
たとえばRailsユーザーがRubyスレでRailsについて連投するのは当たり前じゃないし、
そこでWebProg板の専用スレへの誘導を促されても移動せずに屁理屈をこね回していれば、
その行為に対して荒らし認定されるのは当たり前だろ?
ということで、これ以上「動的型付け言語におけるリファクタリング」うんぬんを
語りたければ、専用の隔離スレがあるからそちらへ移動を願う
・静的型付け言語の潜在開発生産性は今の100倍 ×5
http://mevius.2ch.net/test/read.cgi/tech/1385273168/
・リファクタリングをただのコード修正と思ってる人へ
http://mevius.2ch.net/test/read.cgi/tech/1275121556/
108デフォルトの名無しさん
2017/12/08(金) 16:03:31.33ID:61INIGrw 次から初心者スレでネガキャンや自演を繰り返す輩は
ruby-listやruby-devに来れないなら荒らし認定して良いだろう
ruby-listやruby-devに来たなら書き込み時のIDとレス番をしっかり伝えて発言しろよ
ruby-listやruby-devに来れないなら荒らし認定して良いだろう
ruby-listやruby-devに来たなら書き込み時のIDとレス番をしっかり伝えて発言しろよ
109デフォルトの名無しさん
2017/12/08(金) 16:39:26.80ID:8wQDKBTk 今日のID
ID:AScviHBw
ID:cpGshdOM
ID:T81djMMQ
ID:3HBH94ah
ID:v/VLqoKO ←New!
ID:AScviHBw
ID:cpGshdOM
ID:T81djMMQ
ID:3HBH94ah
ID:v/VLqoKO ←New!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 日銀植田総裁「高市早苗と為替について議論、政府と連携して注視することで一致した」 [888298477]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 岸田文雄「国民は不安よな 岸田、動きます」 非核三原則堅持の立場示す [175344491]
