プログラミング言語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
334デフォルトの名無しさん
2017/12/17(日) 00:55:41.57ID:X5PuZ6e5 >>333
自演ばれてんぞ
自演ばれてんぞ
335デフォルトの名無しさん
2017/12/17(日) 00:56:47.47ID:Hi83U6qj 誰と間違ってんだよw
336デフォルトの名無しさん
2017/12/17(日) 01:01:05.21ID:ZaumiUQl いや、まちがっていない
こいつはいつもの粘着荒らしだ
こいつはいつもの粘着荒らしだ
337デフォルトの名無しさん
2017/12/17(日) 01:05:40.92ID:vwVDXOLh 俺には>>336もプロレスの自演に見えるけどね
批判的意見に毎回バカっぽく突っかかって論破されてる噛ませ役
批判的意見に毎回バカっぽく突っかかって論破されてる噛ませ役
338デフォルトの名無しさん
2017/12/17(日) 01:06:56.15ID:X5PuZ6e5 >>337
も自演か
も自演か
339sage
2017/12/17(日) 01:22:18.66ID:bfi3jyev リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
なんで時間がかかるとか難しいとか話しが出てるんだ?
なんで時間がかかるとか難しいとか話しが出てるんだ?
340デフォルトの名無しさん
2017/12/17(日) 01:48:45.01ID:ZaumiUQl リファクタリングが何か知らない奴が混じってて必死でrubyのネガキャンしてるだけ
ruby-devやruby-listだとすぐ嘘がばれるから
もうこの荒らしは排除いいよ
ruby-devやruby-listだとすぐ嘘がばれるから
もうこの荒らしは排除いいよ
341デフォルトの名無しさん
2017/12/17(日) 02:32:17.52ID:Hi83U6qj >>339
> 代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> なんで時間がかかるとか難しいとか話しが出てるんだ?
代数的に適用するためには、十分な情報が必要だからだよ。
例えば2つの数値の掛け算の答があったとする
その答から、なんとなんの数値の掛け算かを求めるのは大変
答が複数あることもあるからだ
だけどそのうちひとつの数値がわかっていれば、答はすぐに分かる
型にも同じ話が言える。静的型付け言語の場合は、変数に型が定義されているから
そこから代数的に安全にコードを変えられるテクニックが使える
だけど型がわからなければ、そこから代数的に安全にコードを変えられるテクニックが使えない。
だから時間がかかる。一部の人はそのことを”できない"と表現しているがj。
それは違う。いくつもの可能性を検討して、これだ!と安心できるまで時間がかかるのだ。
> 代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> なんで時間がかかるとか難しいとか話しが出てるんだ?
代数的に適用するためには、十分な情報が必要だからだよ。
例えば2つの数値の掛け算の答があったとする
その答から、なんとなんの数値の掛け算かを求めるのは大変
答が複数あることもあるからだ
だけどそのうちひとつの数値がわかっていれば、答はすぐに分かる
型にも同じ話が言える。静的型付け言語の場合は、変数に型が定義されているから
そこから代数的に安全にコードを変えられるテクニックが使える
だけど型がわからなければ、そこから代数的に安全にコードを変えられるテクニックが使えない。
だから時間がかかる。一部の人はそのことを”できない"と表現しているがj。
それは違う。いくつもの可能性を検討して、これだ!と安心できるまで時間がかかるのだ。
342デフォルトの名無しさん
2017/12/17(日) 02:47:32.03ID:BeMxy3i4 また自演の長文か
そんなに主張したい事があるなら初心者スレじゃなくruby-devかruby-listで言え
わざわざ初心者スレで嘘をばらまく必要は無いだろう
そんなに主張したい事があるなら初心者スレじゃなくruby-devかruby-listで言え
わざわざ初心者スレで嘘をばらまく必要は無いだろう
343デフォルトの名無しさん
2017/12/17(日) 03:00:08.85ID:X5PuZ6e5 リファクタリングにちなんで、
みんなはコードに自己書き換えの処理させる時って何を使ってる?
みんなはコードに自己書き換えの処理させる時って何を使ってる?
344デフォルトの名無しさん
2017/12/17(日) 03:28:07.16ID:BeMxy3i4 初心者スレでイキってる荒らしはこういう質問が来ると急に大人しくなるんだよな
俺は普通にdefine_methodを使うぐらいしかしていない
俺は普通にdefine_methodを使うぐらいしかしていない
345デフォルトの名無しさん
2017/12/17(日) 03:36:34.62ID:Hi83U6qj 急におとなしくなるって、いま夜中の3時半やで?
346デフォルトの名無しさん
2017/12/17(日) 03:47:09.35ID:X5PuZ6e5 質問に答えられないのはわかった
347デフォルトの名無しさん
2017/12/17(日) 03:48:56.09ID:Hi83U6qj348デフォルトの名無しさん
2017/12/17(日) 03:54:31.53ID:X5PuZ6e5 >>347
お前に言ってるんだが
お前に言ってるんだが
349デフォルトの名無しさん
2017/12/17(日) 03:58:35.63ID:Hi83U6qj350デフォルトの名無しさん
2017/12/17(日) 04:02:09.36ID:vi6El7FV ソースを直で修正し再ロードして実行までをrubyコード内で記述できるわけだから、
言ってしまえばなんだって出来る
gemでparse2rubyとか色々あるし
言ってしまえばなんだって出来る
gemでparse2rubyとか色々あるし
351デフォルトの名無しさん
2017/12/17(日) 04:18:39.08ID:X5PuZ6e5352デフォルトの名無しさん
2017/12/17(日) 04:48:50.54ID:PRNmBS9S353デフォルトの名無しさん
2017/12/17(日) 08:13:32.84ID:6NwF6CYy 「ruby-devかruby-listで発言しろ」って言いまくってる奴は単発IDでの自演常習犯だから絡まないでスルーしましょう
>>252でも説明したけど自治の振りをした粘着荒らしです
>>252でも説明したけど自治の振りをした粘着荒らしです
354デフォルトの名無しさん
2017/12/17(日) 09:16:34.42ID:X5PuZ6e5 自演を繰り返す荒らしがスレ住民全員を荒らし認定か
ruby-devかruby-listで発言するのがそれほど怖いのかな?
ruby-devかruby-listで発言するのがそれほど怖いのかな?
355デフォルトの名無しさん
2017/12/17(日) 11:53:12.66ID:Hi83U6qj 妨害って何? Rubyの話ししてるでしょ
>>341へのレスしてくれるのを待ってるんだが?
>>341へのレスしてくれるのを待ってるんだが?
356デフォルトの名無しさん
2017/12/17(日) 11:54:17.21ID:Hi83U6qj357デフォルトの名無しさん
2017/12/17(日) 12:02:37.42ID:X5PuZ6e5 スレッドの進行を妨害して荒らすな
358デフォルトの名無しさん
2017/12/17(日) 13:07:26.56ID:7FFT55NR ちょいと質問です。
Cだと"__"から始まったり、"_"+大文字となったりする識別子は予約扱いだと明文化されてるけど、Rubyはどうなのかちょっと気になってます。
組み込みで__FILE__ __LINE__ __method__とかが定義されているのは知ってます。
gemライブラリの中で2つのアンダースコート"__"から始まり、同じく"__"で終わるメソッド名を定義しようかと考えてるけど、問題ないかなと思って。
Cだと"__"から始まったり、"_"+大文字となったりする識別子は予約扱いだと明文化されてるけど、Rubyはどうなのかちょっと気になってます。
組み込みで__FILE__ __LINE__ __method__とかが定義されているのは知ってます。
gemライブラリの中で2つのアンダースコート"__"から始まり、同じく"__"で終わるメソッド名を定義しようかと考えてるけど、問題ないかなと思って。
359デフォルトの名無しさん
2017/12/17(日) 13:28:17.09ID:Hi83U6qj @で始まる変数はインスタンス変数
@@で始まればクラス変数
$で始まれば組み込み変数
大文字で始まれば定数
selfもnilもtrueもfalseも変数
@@で始まればクラス変数
$で始まれば組み込み変数
大文字で始まれば定数
selfもnilもtrueもfalseも変数
360デフォルトの名無しさん
2017/12/17(日) 13:31:03.53ID:X5PuZ6e5 リファレンスで擬似変数の所を見てかぶりそうなのをさければ問題ない
かぶっても見分けられるなら問題ない
かぶっても見分けられるなら問題ない
361デフォルトの名無しさん
2017/12/17(日) 13:36:18.37ID:CQTxJs7f Ripper.sexpつかえばソースの自己書き換えできるだろ
誰だよ出来合ないって言ったのは
誰だよ出来合ないって言ったのは
362デフォルトの名無しさん
2017/12/17(日) 13:41:01.76ID:Hi83U6qj 誰も言ってないよ?w
363デフォルトの名無しさん
2017/12/17(日) 14:16:42.77ID:CQTxJs7f require "ripper"
require "pp"
pp Ripper.sexp("class Foo p self end")
#[:program,
# [[:class,
# [:const_ref, [:@const, "Foo", [1, 6]]],
# nil,
# [:bodystmt,
# [[:command,
# [:@ident, "p", [1, 10]],
# [:args_add_block, [[:var_ref, [:@kw, "self", [1, 12]]]], false]]],
# nil,
# nil,
# nil]]]]
これでリファクタリングが難しいとか時間がかかるとか言ってた奴もいたな
require "pp"
pp Ripper.sexp("class Foo p self end")
#[:program,
# [[:class,
# [:const_ref, [:@const, "Foo", [1, 6]]],
# nil,
# [:bodystmt,
# [[:command,
# [:@ident, "p", [1, 10]],
# [:args_add_block, [[:var_ref, [:@kw, "self", [1, 12]]]], false]]],
# nil,
# nil,
# nil]]]]
これでリファクタリングが難しいとか時間がかかるとか言ってた奴もいたな
364デフォルトの名無しさん
2017/12/17(日) 14:21:37.40ID:Hi83U6qj >>363
読む時間も含めれば、時間かかるんじゃないの?
読む時間も含めれば、時間かかるんじゃないの?
365デフォルトの名無しさん
2017/12/17(日) 14:32:48.20ID:CQTxJs7f どんだけ遅いCPU積んでるの?
366デフォルトの名無しさん
2017/12/17(日) 14:42:49.46ID:Hi83U6qj >>365
何を言ってるの?
リファクタリングっていうのは人が
どうすべきかを考えるんだよ
今何が問題で、どうすべきかを考えるためには
ソースコードを読んで理解しなければならない。
その理解するまでの時間の話なんだけど
で、そのコードをどうしたいのか俺には分からん
まずそこからだよね。君が説明するべきことは
何を言ってるの?
リファクタリングっていうのは人が
どうすべきかを考えるんだよ
今何が問題で、どうすべきかを考えるためには
ソースコードを読んで理解しなければならない。
その理解するまでの時間の話なんだけど
で、そのコードをどうしたいのか俺には分からん
まずそこからだよね。君が説明するべきことは
367デフォルトの名無しさん
2017/12/17(日) 15:09:58.55ID:CQTxJs7f メソッド抽出、インライン化、メソッドシグニチャの変更と、
IDEにある主なリファクタリング機能なんだが
これをrubyには出来ないと言ってた奴が居るらしい
IDEにある主なリファクタリング機能なんだが
これをrubyには出来ないと言ってた奴が居るらしい
368デフォルトの名無しさん
2017/12/17(日) 15:28:24.67ID:7FFT55NR369デフォルトの名無しさん
2017/12/17(日) 15:45:11.24ID:X5PuZ6e5 Kernelモジュールに__で始まるメソッドがあるからそれにも気をつけろ
わからないことがあったら一度自分でリファレンスを検索して細部までしっかり見ろ
わからないことがあったら一度自分でリファレンスを検索して細部までしっかり見ろ
370デフォルトの名無しさん
2017/12/17(日) 15:51:07.46ID:F+iLZcQ1 >>367
メソッド抽出はできるけどインライン化やシグニチャの変更は安全には行えないよ
実際にどのメソッドが呼ばれるかは実行してみるまで分かんないし、メタプログラミングでメソッドが存在しない場合すら珍しくない
メソッド抽出はできるけどインライン化やシグニチャの変更は安全には行えないよ
実際にどのメソッドが呼ばれるかは実行してみるまで分かんないし、メタプログラミングでメソッドが存在しない場合すら珍しくない
371デフォルトの名無しさん
2017/12/17(日) 16:13:40.93ID:X5PuZ6e5 シグニチャの変更は、Ripper.sexpからの配列をまわして旧シグニチャを指定のに書き換えてソースに戻せば良いように見える
そもそもrubymineで出来る
インライン化なんて普通に:assign部分を使われてるところで展開すればいいだけだからシグニチャの変更より楽そう
逆に変数の切り出しも出来るだろこれ
ちょっとコードを書いてみるか
そもそもrubymineで出来る
インライン化なんて普通に:assign部分を使われてるところで展開すればいいだけだからシグニチャの変更より楽そう
逆に変数の切り出しも出来るだろこれ
ちょっとコードを書いてみるか
372デフォルトの名無しさん
2017/12/17(日) 16:34:07.16ID:DhuU3UWX ElectronみたいにWebベースでGUIを作ってRubyで動的処理を行うフレームワークとかないんかな
ActiveScriptRubyは近いけどWin/IE限定の上にRScriptをインストールする必要があるのがイマイチ
インストール不要で軽量・軽快なのが欲しい
ActiveScriptRubyは近いけどWin/IE限定の上にRScriptをインストールする必要があるのがイマイチ
インストール不要で軽量・軽快なのが欲しい
373デフォルトの名無しさん
2017/12/17(日) 17:06:02.35ID:F+iLZcQ1374デフォルトの名無しさん
2017/12/17(日) 19:08:51.91ID:Hi83U6qj 結局Rubyでは候補を出すところまでしかできないんだよね
代数的に適用することができない
その変更が正しいかどうかをコード全体を読んで
考えないといけないから、時間がかかってしまう
代数的に適用することができない
その変更が正しいかどうかをコード全体を読んで
考えないといけないから、時間がかかってしまう
375デフォルトの名無しさん
2017/12/17(日) 19:09:35.99ID:Hi83U6qj376デフォルトの名無しさん
2017/12/17(日) 22:52:07.76ID:X5PuZ6e5 荒らすな
377デフォルトの名無しさん
2017/12/18(月) 02:29:22.24ID:YRbzAMDV ID:Hi83U6qjのレスは矛盾だらけだな
最近の荒らしはこんなに程度が低いの?
最近の荒らしはこんなに程度が低いの?
378デフォルトの名無しさん
2017/12/18(月) 06:38:14.70ID:SUjpjhtq じゃあその矛盾がどれかを指摘しましょう
379デフォルトの名無しさん
2017/12/18(月) 06:48:05.27ID:D7KhQLFT アンチが出たならアンチスレへ誘導をしろ
そのためのアンチスレなんだから
>>378
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
ほら、アンチスレがあるんだからもう来るなよ
そこなら好きなだけネガキャンしても嘘ついても誰も文句を言わないから
そのためのアンチスレなんだから
>>378
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
ほら、アンチスレがあるんだからもう来るなよ
そこなら好きなだけネガキャンしても嘘ついても誰も文句を言わないから
380デフォルトの名無しさん
2017/12/18(月) 07:53:27.68ID:SUjpjhtq 矛盾の指摘まだ?
381デフォルトの名無しさん
2017/12/18(月) 07:53:50.72ID:SUjpjhtq 喧嘩ふっかけといてアンチスレに逃げるわけないよね?w
382デフォルトの名無しさん
2017/12/18(月) 08:25:44.94ID:9Kb0ajxH 2ch学習法(今なら5chか)って言われてたやつが通じると思ってるんだろうけどな。
383デフォルトの名無しさん
2017/12/18(月) 12:55:26.65ID:L2o9nXM3 初心者スレはスレ消費激しいけどアンチスレはぜんぜん流行ってないな
アンチ死んでる?
アンチ死んでる?
384デフォルトの名無しさん
2017/12/18(月) 14:28:08.01ID:jKkrC/n/ pythonが流行ってるからなあ。本もpythonばっかり
385デフォルトの名無しさん
2017/12/18(月) 15:10:45.19ID:aXpCltYZ アンチは寂しくて初心者スレに来ちゃうわけか
386デフォルトの名無しさん
2017/12/18(月) 15:26:16.95ID:XEro/kye >>371を参考にしたらリファクタリング機能を組めた
ソース読み込んでS式書き換えてソースに書き戻すって処理だけど俺でも簡単に出来るんだな
ソース読み込んでS式書き換えてソースに書き戻すって処理だけど俺でも簡単に出来るんだな
387デフォルトの名無しさん
2017/12/18(月) 15:56:52.19ID:e/V/7Ip9 selfがどこのどいつなのかが問題なんだがな
388デフォルトの名無しさん
2017/12/18(月) 16:10:14.00ID:zBhLgaSa こっちでは問題にすらなってない
俺ですら出来るレベルだけど、それでも無理ならVMにバイトコード見せてもらったら?
俺ですら出来るレベルだけど、それでも無理ならVMにバイトコード見せてもらったら?
389デフォルトの名無しさん
2017/12/18(月) 16:25:37.10ID:4mfkLjZ7390デフォルトの名無しさん
2017/12/18(月) 16:30:56.90ID:zBhLgaSa [:var_ref, [:@kw, "self", [2, 0]]]みたいなノードがありそれを上にたどって行くとselfが何か判る
S式は慣れれば読めるし、処理も楽
S式は慣れれば読めるし、処理も楽
391デフォルトの名無しさん
2017/12/18(月) 17:48:23.09ID:e/V/7Ip9 入れ替えることができちゃうから実際には単純にはいかないってことを言いたかっただけ
392デフォルトの名無しさん
2017/12/18(月) 21:23:52.48ID:SUjpjhtq >>390
問題は、それが分かってもリファクタリングできないってことなんだよね
問題は、それが分かってもリファクタリングできないってことなんだよね
393デフォルトの名無しさん
2017/12/18(月) 21:26:15.43ID:SUjpjhtq いや、
リファクタリング前のソースコード からS式を作って
そのS式から「リファクタリングされたソースコードを生成して見せる」って
言うのならどうぞwどうぞw って話だけど
可能不可能の話なら可能。だけど大変すぎなのでやらない
それを「リファクタリングできない」っていう表現で>>392は書いた
リファクタリング前のソースコード からS式を作って
そのS式から「リファクタリングされたソースコードを生成して見せる」って
言うのならどうぞwどうぞw って話だけど
可能不可能の話なら可能。だけど大変すぎなのでやらない
それを「リファクタリングできない」っていう表現で>>392は書いた
394デフォルトの名無しさん
2017/12/18(月) 21:30:35.88ID:ksjf7Uk6395デフォルトの名無しさん
2017/12/18(月) 21:33:39.72ID:SUjpjhtq >>394
俺もS式から(可読性が高い)リファクタリングされた
ソースコードを作り出すのは不可能だと思ってるよw
だからダンプするまでもない
何が言いたいのかって言うと、リファクタリングの話題で
S式、S式、って何が言いたいんだこいつ?ってこと
S式はリファクタリングと何の関係もありません
俺もS式から(可読性が高い)リファクタリングされた
ソースコードを作り出すのは不可能だと思ってるよw
だからダンプするまでもない
何が言いたいのかって言うと、リファクタリングの話題で
S式、S式、って何が言いたいんだこいつ?ってこと
S式はリファクタリングと何の関係もありません
396デフォルトの名無しさん
2017/12/18(月) 21:35:19.46ID:SUjpjhtq S式から可読性が悪い変なソースコードに変換することはできるだろうが
そりゃリファクタリングと真逆な行為だしな
そりゃリファクタリングと真逆な行為だしな
397デフォルトの名無しさん
2017/12/18(月) 21:53:35.09ID:ZBmMrMTz そうそう
ripperのASTはコード生成には不向きであると言ってるだけで、別にRubyを否定しているわけじゃないのに何を必死に喚いてるんだろうね
コード生成に関しては、単に「文法上の同値の解釈」を一切入れない、より低レベルなパーサを作って正確なASTを得らればいいだけのことだ
動的型だって静的型にはない良さが沢山あるのに、アンチ連呼君はそこを無視して「静的型にできることは全てRubyにもできる」という無茶な主張を続けている
そうやって本質を理解しないまま無理筋で反論するから馬鹿にされるんだといいかげん気付け
ripperのASTはコード生成には不向きであると言ってるだけで、別にRubyを否定しているわけじゃないのに何を必死に喚いてるんだろうね
コード生成に関しては、単に「文法上の同値の解釈」を一切入れない、より低レベルなパーサを作って正確なASTを得らればいいだけのことだ
動的型だって静的型にはない良さが沢山あるのに、アンチ連呼君はそこを無視して「静的型にできることは全てRubyにもできる」という無茶な主張を続けている
そうやって本質を理解しないまま無理筋で反論するから馬鹿にされるんだといいかげん気付け
398デフォルトの名無しさん
2017/12/18(月) 23:16:47.78ID:LVUvAKSO 初心者だからRubyとPythonの違いがわからんのだけど、どう違うんだ?
Rubyがもっと流行ってもいいと思うんだけど
Rubyがもっと流行ってもいいと思うんだけど
399デフォルトの名無しさん
2017/12/18(月) 23:28:55.91ID:tRPcthrg おいアンチ、
初心者騙してないでいい加減アンチスレに帰れよ
おまえがリファクタリングできないのは判ったから
初心者騙してないでいい加減アンチスレに帰れよ
おまえがリファクタリングできないのは判ったから
400デフォルトの名無しさん
2017/12/19(火) 00:03:52.94ID:iE/A7V+0 自分でうまくソースコードに書き戻す処理が書けないのをRubyの所為にしてはダメだろう
どうしてもやりたい場合はRipper2rubyってgemを使え
どうしてもやりたい場合はRipper2rubyってgemを使え
401デフォルトの名無しさん
2017/12/19(火) 00:16:12.52ID:si5W7uAD 可能不可能の話に持っていくから(わざとやってる?)
話がややこしくなるんだよ
構文解析は、静的でも動的でもできる。
その時、どれだけの情報を得られるかっていうのは
型情報を書いてある静的のほうが多いのは明白
(動的のメリットは書かなくて良いことなんだから、動的の方が多くなることはない)
静的のほうがより多くの情報を得られる。
それがリファクタリングをする上での情報の多さにつながり、
リファクタリングを自動化する上での情報にもつながる。
静的のほうが予め書いておく情報が多い分、静的解析でわかることが多い。
動的だとわからない情報は、人がコードを見て推測するしかない
人の作業は遅い、リファクタリングの速度につながってくる
リファクタリングが可能か不可能かの話じゃない
作業する時の速度の話
話がややこしくなるんだよ
構文解析は、静的でも動的でもできる。
その時、どれだけの情報を得られるかっていうのは
型情報を書いてある静的のほうが多いのは明白
(動的のメリットは書かなくて良いことなんだから、動的の方が多くなることはない)
静的のほうがより多くの情報を得られる。
それがリファクタリングをする上での情報の多さにつながり、
リファクタリングを自動化する上での情報にもつながる。
静的のほうが予め書いておく情報が多い分、静的解析でわかることが多い。
動的だとわからない情報は、人がコードを見て推測するしかない
人の作業は遅い、リファクタリングの速度につながってくる
リファクタリングが可能か不可能かの話じゃない
作業する時の速度の話
402デフォルトの名無しさん
2017/12/19(火) 00:19:53.94ID:iE/A7V+0 素直にgemのripper2rubyを使え
おまえには無理だから
おまえには無理だから
403デフォルトの名無しさん
2017/12/19(火) 00:21:21.03ID:si5W7uAD もちろんripper2rubyはリファクタリングをするためのgemではない
404デフォルトの名無しさん
2017/12/19(火) 00:24:43.81ID:cabpZd/N rubymineを使ってないの?
リファクタリングは簡単だよ
リファクタリングは簡単だよ
405デフォルトの名無しさん
2017/12/19(火) 00:32:24.61ID:si5W7uAD 俺が言っても信用しないのだろうから、
http://washiiku.hatenablog.com/entry/2014/12/19/054914
> 上に書いたように変数の型をエディタが察してくれるので、
> 対応するメソッドなどにジャンプしたり、逆に使用されている
> 箇所も一覧で表示できます(ただし静的言語ほど正確ではない)
> JetBrains系ではお馴染みですがリファクタリングが便利です。
> スコープ内の変数名の変更が定番ですが、クラス名などグローバルな
> 名前は型情報からプロジェクト全体のリファクタリングをしてくれます。
> (上述したとおり静的言語ほど正確ではないので、大規模な変更は実用的ではない)
この正確でないというのが問題で、結局人が判断する部分が多くなる。
大規模な変更は実用的ではないのは何故かと言うと
大規模=変更箇所が多い=人が判断する場所が多いので
正しいこと判断するのが大変
http://washiiku.hatenablog.com/entry/2014/12/19/054914
> 上に書いたように変数の型をエディタが察してくれるので、
> 対応するメソッドなどにジャンプしたり、逆に使用されている
> 箇所も一覧で表示できます(ただし静的言語ほど正確ではない)
> JetBrains系ではお馴染みですがリファクタリングが便利です。
> スコープ内の変数名の変更が定番ですが、クラス名などグローバルな
> 名前は型情報からプロジェクト全体のリファクタリングをしてくれます。
> (上述したとおり静的言語ほど正確ではないので、大規模な変更は実用的ではない)
この正確でないというのが問題で、結局人が判断する部分が多くなる。
大規模な変更は実用的ではないのは何故かと言うと
大規模=変更箇所が多い=人が判断する場所が多いので
正しいこと判断するのが大変
406デフォルトの名無しさん
2017/12/19(火) 00:33:30.38ID:si5W7uAD https://twitter.com/nagise/status/890031111828414464
RubyMineもかなり頑張ってくれるんですが、それでも原理的に限界があるので、
使った場合、漏れがあったり、あるいは過剰に変換してないか確認が必要だったりしますね(自分の経験上)。
RubyMineもかなり頑張ってくれるんですが、それでも原理的に限界があるので、
使った場合、漏れがあったり、あるいは過剰に変換してないか確認が必要だったりしますね(自分の経験上)。
407デフォルトの名無しさん
2017/12/19(火) 00:35:31.16ID:OxL2RNB7 >>406
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
おまえのスレに帰れ
二度と初心者を騙そうとするな
Rubyについて(アンチ専用) Part004
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
おまえのスレに帰れ
二度と初心者を騙そうとするな
408デフォルトの名無しさん
2017/12/19(火) 00:41:45.22ID:cabpZd/N 出来る出来ないの話じゃないって自分で言い出してからまだ30分も経ってないのに、
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ
409デフォルトの名無しさん
2017/12/19(火) 00:46:31.62ID:si5W7uAD 動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
410デフォルトの名無しさん
2017/12/19(火) 00:47:31.81ID:OxL2RNB7411デフォルトの名無しさん
2017/12/19(火) 00:48:21.71ID:si5W7uAD412デフォルトの名無しさん
2017/12/19(火) 00:49:30.71ID:OxL2RNB7 >>411
アンチが初心者スレで暴れるなら
アンチが初心者スレで暴れるなら
413デフォルトの名無しさん
2017/12/19(火) 00:49:36.49ID:si5W7uAD414デフォルトの名無しさん
2017/12/19(火) 00:51:32.45ID:cabpZd/N https://mevius.5ch.net/test/read.cgi/tech/1249737531/
アンチはアンチ専用スレでやれ
アンチはアンチ専用スレでやれ
415デフォルトの名無しさん
2017/12/19(火) 00:57:25.70ID:UYOJvaLF 単発IDで自演しまくる自治厨騙りの荒らしには構うな
スルーしろ
スルーしろ
416デフォルトの名無しさん
2017/12/19(火) 00:58:50.33ID:cabpZd/N 自演がばれてんぞ
417デフォルトの名無しさん
2017/12/19(火) 00:59:26.95ID:si5W7uAD 単発IDお前やんw
418デフォルトの名無しさん
2017/12/19(火) 01:01:02.38ID:cabpZd/N アンチスレで好きなだけやれ
ここはお前のようなアンチのためのスレではない
ここはお前のようなアンチのためのスレではない
419デフォルトの名無しさん
2017/12/19(火) 01:02:55.81ID:7WjlvYND そろそろうざいからアンチはアンチスレへ帰れ
420デフォルトの名無しさん
2017/12/19(火) 01:03:46.23ID:si5W7uAD 単発ID、自演ばれてるで?w
421デフォルトの名無しさん
2017/12/19(火) 01:05:19.68ID:cabpZd/N 見えない敵と闘っていないでアンチスレへ帰れ
そこなら好きなだけ自演しても誰も文句を言わないから
そこなら好きなだけ自演しても誰も文句を言わないから
422デフォルトの名無しさん
2017/12/19(火) 01:06:10.31ID:si5W7uAD はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
俺はアンチスレには行きません
何度言われてもね
423デフォルトの名無しさん
2017/12/19(火) 01:09:10.98ID:cabpZd/N アンチやりたいならアンチスレへ行け
ここは初心者のためのスレだ
初心者を騙すためのスレではない
ここは初心者のためのスレだ
初心者を騙すためのスレではない
424デフォルトの名無しさん
2017/12/19(火) 01:10:01.09ID:si5W7uAD 神様「お前の願いは叶えられることはなかった」
425デフォルトの名無しさん
2017/12/19(火) 01:11:14.38ID:7WjlvYND そもそもなんでアンチは発狂してんの?
顔真っ赤にしてないで落ち着けよ
顔真っ赤にしてないで落ち着けよ
426デフォルトの名無しさん
2017/12/19(火) 01:12:07.22ID:si5W7uAD 発狂はしてないよw
面白いから書き込んでる
面白いから書き込んでる
427デフォルトの名無しさん
2017/12/19(火) 01:12:28.45ID:cabpZd/N そんなに初心者スレで荒らし行為やアンチをやりたいのか?
428デフォルトの名無しさん
2017/12/19(火) 01:14:15.45ID:si5W7uAD 荒らしてないよ?
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる
429デフォルトの名無しさん
2017/12/19(火) 01:15:12.45ID:cabpZd/N 初心者スレじゃないと話せないことなのか?
アンチスレでは話せないのか?
アンチスレでは話せないのか?
430デフォルトの名無しさん
2017/12/19(火) 01:17:14.70ID:si5W7uAD 初心者スレ以外でも話せるよ
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする
431デフォルトの名無しさん
2017/12/19(火) 01:19:57.23ID:cabpZd/N お前のやってきたことはアンチ以外の何者でもないんだが
これからも、同じ事を続けていく気か?
これからも、同じ事を続けていく気か?
432デフォルトの名無しさん
2017/12/19(火) 01:22:18.20ID:si5W7uAD はい
433デフォルトの名無しさん
2017/12/19(火) 01:23:17.40ID:cabpZd/N つまり、他の人にアンチ行為と受止められていると判ってて、
故意に続けるわけだな?
やめる気は無いのか?
故意に続けるわけだな?
やめる気は無いのか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★4 [BFU★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 【高市速報】日本「中国さんお願い首脳会談させて!ねえってば!😭」 [931948549]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- ネトウヨ、完全に終わる 「高市さんの『台湾が武力攻撃された場合』というのは『米中戦争が勃発した場合』って意味に決まってるだろ!」 [314039747]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- テレビに出てくる人は結果出せた人達ばかり
- 中国とのパイプ役がいない高市政権、実施詰みか [668970678]
