プログラミング言語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
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 つまり、他の人にアンチ行為と受止められていると判ってて、
故意に続けるわけだな?
やめる気は無いのか?
故意に続けるわけだな?
やめる気は無いのか?
434デフォルトの名無しさん
2017/12/19(火) 01:23:40.17ID:si5W7uAD ない
435デフォルトの名無しさん
2017/12/19(火) 01:25:41.82ID:cabpZd/N 他の人に故意に不快を与える行為を続けるという事だね
板やレスの利用等を理解しているか?
板やレスの利用等を理解しているか?
436デフォルトの名無しさん
2017/12/19(火) 01:27:13.66ID:si5W7uAD うん
437デフォルトの名無しさん
2017/12/19(火) 01:29:43.14ID:cabpZd/N つまり、わかった上でやっているという事だね
それと、いまさらだがruby初心者?
それと、いまさらだがruby初心者?
438デフォルトの名無しさん
2017/12/19(火) 01:30:38.45ID:si5W7uAD ウイ
439デフォルトの名無しさん
2017/12/19(火) 01:32:59.85ID:cabpZd/N つまりRuby初心者だから間違ったことを言っていたという事だね
それはつまり、これからも間違った事を言い続けるって事かな?
それはつまり、これからも間違った事を言い続けるって事かな?
440デフォルトの名無しさん
2017/12/19(火) 01:33:45.75ID:si5W7uAD ノー
441デフォルトの名無しさん
2017/12/19(火) 01:36:06.55ID:cabpZd/N その返答は、今後は反省して間違ったことを言わない、って事を意味しているのかな?
442デフォルトの名無しさん
2017/12/19(火) 01:39:05.84ID:si5W7uAD __
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
443デフォルトの名無しさん
2017/12/19(火) 01:41:22.11ID:cabpZd/N 君は、いままでアンチを繰り返し多くの人を故意に不快にさせてきたわけだが、
今後も続けるのかい?
今後も続けるのかい?
444デフォルトの名無しさん
2017/12/19(火) 01:42:11.51ID:si5W7uAD 飽きた、>>409まで内容巻き戻すわ
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
445デフォルトの名無しさん
2017/12/19(火) 01:43:46.18ID:cabpZd/N ではもう一度聞こう
今後は反省して間違ったことを言わない、という意思はあるのかな?
今後は反省して間違ったことを言わない、という意思はあるのかな?
446デフォルトの名無しさん
2017/12/19(火) 01:45:58.37ID:si5W7uAD じゃまなので透明あぼーんした
447デフォルトの名無しさん
2017/12/19(火) 01:50:12.56ID:7ZIeceXv そんなことよりJOI2017/2018の話しようぜ
448デフォルトの名無しさん
2017/12/19(火) 01:54:22.14ID:RoMU0mit アンチスレに帰れよアンチ
449デフォルトの名無しさん
2017/12/19(火) 02:06:16.03ID:cabpZd/N Rubyについて知らない事を知ったふりして話してたわけか
道理で
道理で
450デフォルトの名無しさん
2017/12/19(火) 03:08:47.58ID:GcPOv6XA Ripper.sexp_rawからRipper.sexpに戻すと:stmts_add等が削られて微妙にやりにくい
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
451デフォルトの名無しさん
2017/12/19(火) 04:03:20.54ID:UdKVtF6e あれてんなw
型の次は、リファクタリングかよ
初心者の内容か?
俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw
型の次は、リファクタリングかよ
初心者の内容か?
俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw
452デフォルトの名無しさん
2017/12/19(火) 04:45:08.67ID:cabpZd/N453デフォルトの名無しさん
2017/12/19(火) 05:28:28.56ID:GcPOv6XA やっぱり表示用なんだ
それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?
それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?
454デフォルトの名無しさん
2017/12/19(火) 06:21:37.16ID:a07C5OyP 配列の操作ってそんなもんだろ
455デフォルトの名無しさん
2017/12/19(火) 07:00:22.12ID:ykexPK2V リファクタリングで香ばしい展開になっててわろた
オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
456デフォルトの名無しさん
2017/12/19(火) 07:28:41.13ID:ZuB1zFT8457デフォルトの名無しさん
2017/12/19(火) 07:38:28.19ID:yvsoeKM9 >>455
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。
きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。
あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。
・リファクタリングはプログラム改善に使われることが多い。
・数多ある改善基準のうち、リファクタリングは何を対象にしているのか?
・改善手法は、計算モデルと、改善の目的により様々。
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。
きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。
あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。
・リファクタリングはプログラム改善に使われることが多い。
・数多ある改善基準のうち、リファクタリングは何を対象にしているのか?
・改善手法は、計算モデルと、改善の目的により様々。
458デフォルトの名無しさん
2017/12/19(火) 10:23:42.83ID:si5W7uAD >>457
なんかリファクタリングを理解してないようにみえる。
リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ
リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ
なんかリファクタリングを理解してないようにみえる。
リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ
リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ
459デフォルトの名無しさん
2017/12/19(火) 12:22:26.77ID:B3Kk66cH 結局、荒らしはアンチスレに帰らんかったのか
そりゃアンチスレも落ちぶれるわ
そりゃアンチスレも落ちぶれるわ
460デフォルトの名無しさん
2017/12/19(火) 22:13:01.86ID:5rvtlxA7 >>428
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる
いいや、している話は:
「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
http://hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html
それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる
いいや、している話は:
「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
http://hissi.org/read.php/tech/20171219/c2k1Vzd1QUQ.html
それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ
461デフォルトの名無しさん
2017/12/20(水) 00:18:03.50ID:n7Ixbq8J >>460
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆
理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい
ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫
一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒
Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆
理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい
ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫
一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒
Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
462デフォルトの名無しさん
2017/12/20(水) 00:50:26.05ID:gjXzJsOL 中身スカスカの長文なんてよく書き込めるな
頭の中もスカスカしてそう
頭の中もスカスカしてそう
463デフォルトの名無しさん
2017/12/20(水) 00:55:47.63ID:4hmeAMNm464デフォルトの名無しさん
2017/12/20(水) 02:10:20.76ID:wlycKVFQ rubyの可読性のよさには感動する
DSLとかすごい
たまーにendだらけになるのは難点w
DSLとかすごい
たまーにendだらけになるのは難点w
465デフォルトの名無しさん
2017/12/20(水) 02:23:39.76ID:Jv20jxkb 動的にリファクタリングさせるコード書いてるけど、
書けないやつはrubymine使えば良くね?
書けないやつはrubymine使えば良くね?
466デフォルトの名無しさん
2017/12/20(水) 02:51:18.20ID:s+zCj7ov 配列の操作そのものが難しいと勘違いしてるんじゃないか?
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end
467デフォルトの名無しさん
2017/12/20(水) 05:23:54.83ID:Jv20jxkb 配列が苦手とか言われても
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
468デフォルトの名無しさん
2017/12/20(水) 06:54:28.40ID:6Esz8d8C 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
もっとシンプルに表現できるだろw
もっとシンプルに表現できるだろw
469デフォルトの名無しさん
2017/12/20(水) 08:05:26.87ID:DZ3d9p1Y >>468
というお前さんも説明出来ない訳だが。
というお前さんも説明出来ない訳だが。
470デフォルトの名無しさん
2017/12/20(水) 08:07:18.11ID:DZ3d9p1Y >>458
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
471デフォルトの名無しさん
2017/12/20(水) 08:45:35.24ID:Za3FAu+s おい無職
自演はやめとけ
自演はやめとけ
472デフォルトの名無しさん
2017/12/20(水) 14:31:38.22ID:Za3FAu+s 毎朝7時8時から書き込める荒らしは何の仕事してるんや?
473デフォルトの名無しさん
2017/12/20(水) 18:57:50.54ID:2lbW5JOk RubyVM::InstructionSequence.compile("class Hoge end").eval
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた
474デフォルトの名無しさん
2017/12/20(水) 22:34:07.59ID:4hmeAMNm >>470
リファクタリングを理解してませんと認めたってことでOKだね
リファクタリングを理解してませんと認めたってことでOKだね
475デフォルトの名無しさん
2017/12/20(水) 22:35:24.96ID:4hmeAMNm476デフォルトの名無しさん
2017/12/20(水) 22:48:45.50ID:4hmeAMNm >>466
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
書けてないだろ?
それ何の処理するコードだよ
[1,2,3].acces([])
=> [1, 2, 3]
[1,2,3].acces([1])
=> 2
[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
お前がそれじゃ、配列は難しいという結論にしかならんぞ
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
書けてないだろ?
それ何の処理するコードだよ
[1,2,3].acces([])
=> [1, 2, 3]
[1,2,3].acces([1])
=> 2
[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
お前がそれじゃ、配列は難しいという結論にしかならんぞ
477デフォルトの名無しさん
2017/12/20(水) 22:56:44.83ID:4hmeAMNm >>468
> 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
> もっとシンプルに表現できるだろw
ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること
補足を追加するならば、
振る舞いを保てていればいいので、アルゴリズムを変えてもOK
というか、無駄があったりしてわかりにくいアルゴリズムを
理解や修正が簡単になるように書き換えることもリファクタリングの一つ
何が言いたいかというと、リファクタリングはパースした結果が
一致するように書き換えることではないということ
パースできたからといって、リファクタリングができたことにはならない
> 今のところ、リファクタリングについて誰ひとり説明できてないぞ?
> もっとシンプルに表現できるだろw
ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること
補足を追加するならば、
振る舞いを保てていればいいので、アルゴリズムを変えてもOK
というか、無駄があったりしてわかりにくいアルゴリズムを
理解や修正が簡単になるように書き換えることもリファクタリングの一つ
何が言いたいかというと、リファクタリングはパースした結果が
一致するように書き換えることではないということ
パースできたからといって、リファクタリングができたことにはならない
478デフォルトの名無しさん
2017/12/20(水) 23:30:14.73ID:nhQOfr/3 2.5まで後5日
479デフォルトの名無しさん
2017/12/21(木) 01:18:36.01ID:l5/5gdQz480デフォルトの名無しさん
2017/12/21(木) 01:42:59.97ID:prpojwIY >>479
いい加減学習しよう
422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
いい加減学習しよう
422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
481デフォルトの名無しさん
2017/12/21(木) 02:12:25.62ID:IcTBGDe8 自演ばれてんぞ
482デフォルトの名無しさん
2017/12/21(木) 02:49:55.63ID:l5/5gdQz483デフォルトの名無しさん
2017/12/21(木) 03:03:06.96ID:h5j2wgPh 例えば、構造やサイズが変わる多次元配列の要素を辿って行く必要がある場合、
添え字だけ集めて一括指定で辿れる様にするのって普通?
添え字だけ集めて一括指定で辿れる様にするのって普通?
484デフォルトの名無しさん
2017/12/21(木) 11:43:09.31ID:XGDp/jet >>477
はい。正解
はい。正解
485デフォルトの名無しさん
2017/12/21(木) 12:10:12.13ID:ow9tew52486デフォルトの名無しさん
2017/12/21(木) 13:37:15.11ID:K/addjJ3487デフォルトの名無しさん
2017/12/21(木) 14:41:34.48ID:nqxJQXq0 Array#dig
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★4 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 外務省局長、よくわからないまま帰国へ [834922174]
