プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc011デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/05(日) 15:36:12.39ID:NzdiaSgk0 「The Ruby Programming Language」David Flanagan and Yukihiro Matsumoto
6.7 Method Objects
Ruby’s methods and blocks are executable language constructs, but they are not objects.
Procs and lambdas are object versions of blocks; they can be executed and also manipulated as data.
Ruby has powerful metaprogramming (or reflection) capabilities, and methods can actually be represented as instances of the Method class.
6.7 Method Objects
Ruby’s methods and blocks are executable language constructs, but they are not objects.
Procs and lambdas are object versions of blocks; they can be executed and also manipulated as data.
Ruby has powerful metaprogramming (or reflection) capabilities, and methods can actually be represented as instances of the Method class.
12デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/05(日) 22:47:41.92ID:BPHXVrhY0 JavaScript 第6版、2012、David Flanagan
彼は、JS のバイブル、表紙がサイの絵の、いわゆるサイ本も書いてる!
Google などのエンジニアの机に、必ず置いてある
彼は、JS のバイブル、表紙がサイの絵の、いわゆるサイ本も書いてる!
Google などのエンジニアの机に、必ず置いてある
13デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/05(日) 22:55:53.02ID:UM8RYdV+0 サイフォン?
14デフォルトの名無しさん (アウアウカー Sa69-JS+6)
2020/01/05(日) 23:56:52.37ID:DQgvXjWRa 同じ純粋オブジェクト指向言語のSmalltalkと比べてみた
Rubyのメソッドオブジェクトは要求される度に作っているみたいで持ち出し専用
Smalltalkのメソッドオブジェクトはそのものでその気になれば中身も弄れる
class Object; def foo; "bar" end end
um1 = Object.instance_method(:foo)
um2 = Object.instance_method(:foo)
um3 = um1.clone
p [um1, um2, um3].map{ |m| m.object_id }
#=> [60, 80, 100]
obj = Object.new
bm1 = obj.method(:foo)
bm2 = obj.method(:foo)
bm3 = bm1.clone
p [bm1, bm2, bm3].map{ |m| m.object_id }
#=> [120, 140, 160]
--
"Pharo Smalltalk"
Object compile: 'foo ^''bar'''.
cm1 := Object compiledMethodAt: #foo.
cm2 := Object compiledMethodAt: #foo.
cm3 := cm1 copy.
{cm1. cm2. cm3} collect: [:cm | cm identityHash].
"=>#(832658944 832658944 425444352) "
self foo. "=> 'bar' "
(cm1 literalAt: 1) at: 3 put: $z.
self foo. "=> 'baz' "
Rubyのメソッドオブジェクトは要求される度に作っているみたいで持ち出し専用
Smalltalkのメソッドオブジェクトはそのものでその気になれば中身も弄れる
class Object; def foo; "bar" end end
um1 = Object.instance_method(:foo)
um2 = Object.instance_method(:foo)
um3 = um1.clone
p [um1, um2, um3].map{ |m| m.object_id }
#=> [60, 80, 100]
obj = Object.new
bm1 = obj.method(:foo)
bm2 = obj.method(:foo)
bm3 = bm1.clone
p [bm1, bm2, bm3].map{ |m| m.object_id }
#=> [120, 140, 160]
--
"Pharo Smalltalk"
Object compile: 'foo ^''bar'''.
cm1 := Object compiledMethodAt: #foo.
cm2 := Object compiledMethodAt: #foo.
cm3 := cm1 copy.
{cm1. cm2. cm3} collect: [:cm | cm identityHash].
"=>#(832658944 832658944 425444352) "
self foo. "=> 'bar' "
(cm1 literalAt: 1) at: 3 put: $z.
self foo. "=> 'baz' "
15デフォルトの名無しさん (ワッチョイ 9233-YCNF)
2020/01/06(月) 00:28:28.35ID:bN5NBzFy0 C#も、メソッドをランタイムにビルドできるんやで!
16デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 01:11:00.75ID:Bux8XPhea いやここでのポイントはメソッドがオブジェクトなのかどうかであって
ランライムにメソッドをビルドできるかは関係ないしむしろ出来て当前
ランライムにメソッドをビルドできるかは関係ないしむしろ出来て当前
17デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 09:04:50.20ID:0zhzHQ2W0 >>14
> その気になれば中身も弄れる
それが良いことだと思わないんだけどなw
そんなことやるか?やらない。できる必要あるか?ない
アセンブラであれば、中身だろうがなんでもできる
言語というのは成長するにつれてより制限されるもの
制限といえば聞こえは悪いが、ある機能に特化することで
ミスを防ぎ、コードを書いた人のより正確に表すことができる
> その気になれば中身も弄れる
それが良いことだと思わないんだけどなw
そんなことやるか?やらない。できる必要あるか?ない
アセンブラであれば、中身だろうがなんでもできる
言語というのは成長するにつれてより制限されるもの
制限といえば聞こえは悪いが、ある機能に特化することで
ミスを防ぎ、コードを書いた人のより正確に表すことができる
18デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 09:05:20.36ID:0zhzHQ2W0 、コードを書いた人の意図をより正確に表すことができる
19デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 09:24:31.96ID:9LVBkQo0a Rubyは自分の足を撃とうと思えばそれが出来る(自由がある)のがLisp譲りの
言語持つのパワーでありある種のウリなんだけど初心者だから知らないのかな…
言語持つのパワーでありある種のウリなんだけど初心者だから知らないのかな…
20デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 09:35:32.06ID:0zhzHQ2W0 > Rubyは自分の足を撃とうと思えばそれが出来る
それがいいことだと思い込んでるのがおかしい
常識に囚われ思考を放棄してる
それがいいことだと思い込んでるのがおかしい
常識に囚われ思考を放棄してる
21デフォルトの名無しさん (アウアウエー Sa4a-9wJp)
2020/01/06(月) 09:35:53.64ID:N9H2b+k8a Smalltalkの最後の例はメソッドオブジェクトがRubyのモドキと違って
現物だと端的に示すための例であって流石に普段はやらないと思うぞ!
現物だと端的に示すための例であって流石に普段はやらないと思うぞ!
22デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 09:40:05.07ID:x7xAEFKOa >>20
おやおやそんなナイーブな考えじゃRailsみたいなのは永久に作れないよ?
おやおやそんなナイーブな考えじゃRailsみたいなのは永久に作れないよ?
23デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 09:48:15.44ID:0zhzHQ2W0 >>22
何も根拠がないねw
何も根拠がないねw
24デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 09:49:47.24ID:0zhzHQ2W0 Railsみたいなフレームワークはたくさんあるね
Rubyの機能なんて不要だったってことさ
Rubyの機能なんて不要だったってことさ
25デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 10:00:05.37ID:x7xAEFKOa んRailsがなければRubyが今の地位はないし
Railsの実装はRubyの黒魔術が効果的に活用されているというのは
説明不要の有名な話だと思っていたが?
やっぱり初心者だから知らないのか…
Railsの実装はRubyの黒魔術が効果的に活用されているというのは
説明不要の有名な話だと思っていたが?
やっぱり初心者だから知らないのか…
26デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 10:01:33.21ID:x7xAEFKOa >>24
語るに落ちているよ…(´・ω・`)
語るに落ちているよ…(´・ω・`)
27デフォルトの名無しさん (ワッチョイ c2d2-hZl1)
2020/01/06(月) 10:03:22.46ID:ymuirMBT0 初心者だから「メソッドはオブジェクトじゃない」という発言に対して見当はずれな頭の悪い反論をしてたんだな
28デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 10:16:33.06ID:x7xAEFKOa どうやら>>7のセンも濃厚っぽいな…
29デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 10:21:29.07ID:0zhzHQ2W030デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 10:27:39.91ID:x7xAEFKOa31デフォルトの名無しさん (オッペケ Srf1-1wr4)
2020/01/06(月) 10:30:38.61ID:MCXR7U+mr どうやらガチで頭の残念な子みたいだねw
作れるかどうかなんて、入出力さえ十分にできればほぼすべての言語で作れるっつーのw
作れるかどうかなんて、入出力さえ十分にできればほぼすべての言語で作れるっつーのw
32デフォルトの名無しさん (ワッチョイ e514-DsOW)
2020/01/06(月) 10:52:42.23ID:0zhzHQ2W0 作れるかどうかの話はしてないよ。
どれだけ簡単に作れるか
Railsの開発速度が際立って高いわけではない
むしろ後から追いつかれてる
どれだけ簡単に作れるか
Railsの開発速度が際立って高いわけではない
むしろ後から追いつかれてる
33デフォルトの名無しさん (アウアウカー Sa69-9wJp)
2020/01/06(月) 11:12:38.64ID:x7xAEFKOa >>32
アンチ隔離スレに行け!
アンチ隔離スレに行け!
34デフォルトの名無しさん (ワッチョイ c2ad-oe9l)
2020/01/06(月) 14:44:11.25ID:DmV1IuhC0 現在使用してる教材でテストツールとしてminitest、test-unit、RSpecが紹介されてたんですが
実際のところどれを使えばいいんでしょうか?
実際のところどれを使えばいいんでしょうか?
35デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 16:19:52.25ID:78RinjQr036デフォルトの名無しさん (ワッチョイ c2ad-oe9l)
2020/01/06(月) 18:44:57.86ID:DmV1IuhC0 ご回答ありがとうございます
とりあえずminitestでやってみて何か不都合があれば他も試してみる方針でやってみます
とりあえずminitestでやってみて何か不都合があれば他も試してみる方針でやってみます
37デフォルトの名無しさん (ワッチョイ 4914-DsOW)
2020/01/06(月) 19:25:48.00ID:6twfZFtd0 で、最終的にはrspecになるんやろ?
もしくはrspecを横目にminitestはminitestで
これもありなんだって言い訳しながら使うw
もしくはrspecを横目にminitestはminitestで
これもありなんだって言い訳しながら使うw
38デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/07(火) 00:37:14.85ID:ueOqy5pf0 BDD(behavior driven development) では、RSpec が標準!
宮下剛輔が作った、サーバー構築テストのServerspec も、RSpec。
JavaScript(JS) のMocha も、RSpecのコピー
基本的に、Rubyで流行ったものは、すぐに、JS, Kotlin へ移植される
宮下剛輔が作った、サーバー構築テストのServerspec も、RSpec。
JavaScript(JS) のMocha も、RSpecのコピー
基本的に、Rubyで流行ったものは、すぐに、JS, Kotlin へ移植される
39デフォルトの名無しさん (ワッチョイ c214-DsOW)
2020/01/07(火) 03:12:30.76ID:tLIimsUP0 RSpecのJS, Kotlin移植版ってどれのこと?
BDDってそんなに流行ってるの?
まああるかもしれないけどxUnitの方が主流だと思うな。JUnitとか
BDDってそんなに流行ってるの?
まああるかもしれないけどxUnitの方が主流だと思うな。JUnitとか
40デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/07(火) 07:26:57.50ID:ueOqy5pf0 Windows で、Ruby 2.4 から、2.5へ変えたら、
selenium webdriver を使うのに、ffi が必要になった!
でも、コードはそのまま動く
selenium webdriver を使うのに、ffi が必要になった!
でも、コードはそのまま動く
41デフォルトの名無しさん (ワッチョイ 9233-YCNF)
2020/01/07(火) 20:57:12.48ID:9/TsdlFE0 必須でないモジュールが分離されていってんのやろ。
42デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
2020/01/09(木) 16:02:09.08ID:sfRV4jRV0 irbで(整数).object_id と入力すると(整数)*2 - 1 が帰ってくるんですが、そういう仕様なんですか?
43デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
2020/01/09(木) 16:08:04.37ID:sfRV4jRV0 訂正
× (整数)*2 - 1
○ (整数)*2 + 1
× (整数)*2 - 1
○ (整数)*2 + 1
44デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/09(木) 17:47:10.30ID:H5szYUtEM >>39
BDDというかテストコードを自然言語に似せようとする系は、Goの台頭に伴ってすっかり廃れちゃったね
自動テストの最大の意義は入出力のスナップショットとして予期せぬ挙動の変化を検出できることにあるので、
細かい仕様をテストコードで表現しようとするよりも単純に入出力を並べた方が手っ取り早いし効果も高いんだよな
一方BDDは、網羅性や変化検出性能が不十分でも最低限大半のコードを通ってれば無いよりは遥かにマシだ、
それだけでもスペルミスのような初歩的なバグの大半は潰せるだろう、という手抜き欲求が根底にある
ところが最近は静的型が主流になっちゃってスペルミスみたいなのは起きなくなったから、BDDのようなとりあえず通すだけのテスト手法にはあまり意味がなくなってしまった
BDDというかテストコードを自然言語に似せようとする系は、Goの台頭に伴ってすっかり廃れちゃったね
自動テストの最大の意義は入出力のスナップショットとして予期せぬ挙動の変化を検出できることにあるので、
細かい仕様をテストコードで表現しようとするよりも単純に入出力を並べた方が手っ取り早いし効果も高いんだよな
一方BDDは、網羅性や変化検出性能が不十分でも最低限大半のコードを通ってれば無いよりは遥かにマシだ、
それだけでもスペルミスのような初歩的なバグの大半は潰せるだろう、という手抜き欲求が根底にある
ところが最近は静的型が主流になっちゃってスペルミスみたいなのは起きなくなったから、BDDのようなとりあえず通すだけのテスト手法にはあまり意味がなくなってしまった
45デフォルトの名無しさん (ワッチョイ 5f14-WchB)
2020/01/09(木) 17:51:07.91ID:Mk2U0HaP0 >>44
goでテストって何使ってるの?
goでテストって何使ってるの?
46デフォルトの名無しさん (ワッチョイ 5f14-WchB)
2020/01/09(木) 17:53:19.45ID:Mk2U0HaP047デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/09(木) 17:59:47.69ID:zp680iXY0 1234567890123456789.object_id
#=> 2469135780246913579
12345678901234567890.object_id
#=> 21368380
大きい整数は、無関係なID になる
たしか、整数は最適化して、オブジェクトを作っていないのじゃなかった?
どこかに、値だけを収めているのじゃ?
#=> 2469135780246913579
12345678901234567890.object_id
#=> 21368380
大きい整数は、無関係なID になる
たしか、整数は最適化して、オブジェクトを作っていないのじゃなかった?
どこかに、値だけを収めているのじゃ?
48デフォルトの名無しさん (ワッチョイ 7f01-KDxU)
2020/01/09(木) 18:13:24.04ID:VxfXfT1S0 >>44
書き方が違うだけでSpec形式でもxUnit形式でもテストする内容は同じだぞ
RSpecじゃなくCucumberみたいなのを使ってたテストはレイヤーが違う
んでもってGoの台頭とか関係ないし
JSで一番使われてるJEST、Mocha、Jasmineの3つともSpec形式が基本
それぞれメリット・デメリットあるからそれを理解して
言語の特性や文化も考慮してから選択すればいい
書き方が違うだけでSpec形式でもxUnit形式でもテストする内容は同じだぞ
RSpecじゃなくCucumberみたいなのを使ってたテストはレイヤーが違う
んでもってGoの台頭とか関係ないし
JSで一番使われてるJEST、Mocha、Jasmineの3つともSpec形式が基本
それぞれメリット・デメリットあるからそれを理解して
言語の特性や文化も考慮してから選択すればいい
49デフォルトの名無しさん (ワッチョイ df14-WchB)
2020/01/09(木) 18:17:48.65ID:sNMr72pi0 JavaにもRSpecみたいなのってあるんだっけ?
言語的に無理がありそうなんだけど
言語的に無理がありそうなんだけど
50デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)
2020/01/09(木) 19:54:43.22ID:nuQhSBU10 コンパイラがスペルチェックまでしてくれるからじゃないの
未来のことはわかりません、っていう宗教観でしょ
作った時点で未来に何が起こるか全て分かるのが静的
未来のことはわかりません、っていう宗教観でしょ
作った時点で未来に何が起こるか全て分かるのが静的
51デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
2020/01/09(木) 20:26:41.00ID:sfRV4jRV052デフォルトの名無しさん (ワッチョイ 7f01-KDxU)
2020/01/09(木) 21:53:54.80ID:VxfXfT1S053デフォルトの名無しさん (ワッチョイ 5f14-Qm2w)
2020/01/09(木) 22:05:09.38ID:edJ5p5Tx054デフォルトの名無しさん (ワッチョイ 7f33-b7GS)
2020/01/09(木) 22:54:54.76ID:C+kuIm3o0 >>53
スクリプト系言語では意味があるんだよなあ。
スクリプト系言語では意味があるんだよなあ。
55デフォルトの名無しさん (ワッチョイ 5f14-t8Ak)
2020/01/10(金) 00:36:36.31ID:hCTYsry705647 (ワッチョイ 7f2c-JQ6m)
2020/01/10(金) 17:27:12.96ID:PkgwRlbI0 >>51
こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない!
まつもとゆきひろ 言語のしくみ、2016
コマンドA | コマンドB
のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装
Rubyのしくみ、2014
外人が書いた本。
Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明
笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中
Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた
https://next.rikunabi.com/journal/20180601_c11/
NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。
たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい
こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない!
まつもとゆきひろ 言語のしくみ、2016
コマンドA | コマンドB
のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装
Rubyのしくみ、2014
外人が書いた本。
Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明
笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中
Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた
https://next.rikunabi.com/journal/20180601_c11/
NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。
たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい
57デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/10(金) 17:29:32.05ID:915LIh+yM 一般論として、内部実装を知らないと使えないのは作り手としては恥
58デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)
2020/01/10(金) 17:31:43.84ID:YP/p9xdd0 真顔で「わたくしはC言語を極めました」と言える人物向け
59デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
2020/01/10(金) 18:18:32.14ID:puBSVXWRF 池澤あやかωωω
60デフォルトの名無しさん (ワッチョイ ffd3-7q2y)
2020/01/10(金) 22:32:36.44ID:VhdPbdF+0 しゅき…
61デフォルトの名無しさん (ワッチョイ 7f44-Y/Zm)
2020/01/11(土) 13:04:33.98ID:e4hNIYBE0 rubyイスポーラー
62デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
2020/01/11(土) 15:44:52.50ID:cvQKeu200 n.object_id == (2 * n + 1) が成立しなくなる条件を調べて試行錯誤した結果
2進数の区切りの良い数ではないかと当たりをつけたところビンゴ
n = 0
loop do
if (2 ** n - 1).object_id == (2 ** n - 1) * 2 + 1
n += 1
else
p n
break
end
end
#=> 63
2進数の区切りの良い数ではないかと当たりをつけたところビンゴ
n = 0
loop do
if (2 ** n - 1).object_id == (2 ** n - 1) * 2 + 1
n += 1
else
p n
break
end
end
#=> 63
63デフォルトの名無しさん (ワッチョイ 7fad-n+mb)
2020/01/11(土) 15:48:51.00ID:cvQKeu200 (2 ** 62 - 1).object_id == (2 ** 62 - 1) * 2 + 1
#=> true
(2 ** 62 - 1).class
#=> Fixnum
(2 ** 62 ).object_id == (2 ** 62 ) * 2 + 1
#=> false
(2 ** 62 ).class
#=> Bignum
Integerに統合される前のFixnumだと n.object_id = 2 * n + 1 #=> true
Bignumだと n.object_id = 2 * n + 1 #=> false
#=> true
(2 ** 62 - 1).class
#=> Fixnum
(2 ** 62 ).object_id == (2 ** 62 ) * 2 + 1
#=> false
(2 ** 62 ).class
#=> Bignum
Integerに統合される前のFixnumだと n.object_id = 2 * n + 1 #=> true
Bignumだと n.object_id = 2 * n + 1 #=> false
64デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
2020/01/11(土) 15:48:59.14ID:l/QLWHKHF65デフォルトの名無しさん (ワッチョイ 7f33-b7GS)
2020/01/11(土) 15:51:56.31ID:usOdB8FH0 まあ、とくにきまってるわけでもないやろし、特定してもあんまり意味ないけどな。
66デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
2020/01/11(土) 15:55:40.95ID:l/QLWHKHF67デフォルトの名無しさん (オッペケ Srb3-VpI/)
2020/01/12(日) 00:51:50.16ID:Vj2aFgw8r 頭の悪い奴がひたすらここを自分の日記帳替わりにしてんのくっそ邪魔
そんなん試行錯誤ですらねえよ
そんなん試行錯誤ですらねえよ
68デフォルトの名無しさん (アウアウウー Sa05-s5Rz)
2020/01/17(金) 09:22:39.20ID:E+lfOmbYa Ruby riを使おうとしても「Nothing known about 〜」と出て
repl内でdocumentationを参照できないときの対処法
How do I install the Ruby ri documentation?
https://stackoverflow.com/questions/3178900/how-do-i-install-the-ruby-ri-documentation
repl内でdocumentationを参照できないときの対処法
How do I install the Ruby ri documentation?
https://stackoverflow.com/questions/3178900/how-do-i-install-the-ruby-ri-documentation
69デフォルトの名無しさん (ワッチョイ 220c-muX5)
2020/01/17(金) 14:31:01.12ID:vdDSAPn50 東洋経済という株の雑誌の今週号は、今年こそ始めるプログラミング
プログラムの説明は初歩の初歩の初歩レベル
学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介
ほんとかなあ
プログラムの説明は初歩の初歩の初歩レベル
学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介
ほんとかなあ
70デフォルトの名無しさん (ドコグロ MMd5-mgaX)
2020/01/17(金) 15:51:59.65ID:0sb73h15M Goは言語自体の難易度はRubyより低い
でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、
オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ
彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、
足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ
Goだけできても仕事はない
でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、
オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ
彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、
足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ
Goだけできても仕事はない
71デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
2020/01/18(土) 01:21:19.24ID:ciDfAHTw0 元々、サーバー側は、Ruby の1強だった!
Vagrant, Chef, Serverspec とか
数年後、
Rubyを真似したのが、Node.js で、
Go のDocker も出てきた
先行者利益を得るためには、ビジネスでは、Ruby 1強!
だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる
他の言語では、数年遅れる。
DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、
小資本のベンチャー・起業に向かない
SASS も、Rubyで始まった!
Vagrant, Chef, Serverspec とか
数年後、
Rubyを真似したのが、Node.js で、
Go のDocker も出てきた
先行者利益を得るためには、ビジネスでは、Ruby 1強!
だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる
他の言語では、数年遅れる。
DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、
小資本のベンチャー・起業に向かない
SASS も、Rubyで始まった!
72デフォルトの名無しさん (ワッチョイ a914-+9Wh)
2020/01/18(土) 02:07:34.56ID:w6J1AYPB0 つまり、Rubyはプロトタイプ用
7371 (ワッチョイ 022c-Sfrr)
2020/01/18(土) 02:25:10.35ID:ciDfAHTw0 小資本で起業して、新しいコンセプトの自社サービスを開始するのに、適した言語がRuby。
スタートアップ企業だから、サイトの速度は遅くてもよい
あくまで、ベンチャーは成功しないのが基本w
Rubyは実験用言語とも言える
ところが、たまに化物みたいなサイトを生み出すのも、Ruby
Rails で作った、このサイトの速度は尋常じゃない!
他の言語では、絶対に作れないw
https://dev.to/
Ruby on Rails Part21
https://medaka.5ch.net/test/read.cgi/php/1545146635/103
スタートアップ企業だから、サイトの速度は遅くてもよい
あくまで、ベンチャーは成功しないのが基本w
Rubyは実験用言語とも言える
ところが、たまに化物みたいなサイトを生み出すのも、Ruby
Rails で作った、このサイトの速度は尋常じゃない!
他の言語では、絶対に作れないw
https://dev.to/
Ruby on Rails Part21
https://medaka.5ch.net/test/read.cgi/php/1545146635/103
74デフォルトの名無しさん (アウアウエー Sa0a-mgaX)
2020/01/18(土) 02:41:28.23ID:AhPxC9uwa これのことか?
https://dev.to/ben/making-devto-insanely-fast
フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって
だけで、ほとんどRails関係ないな
https://dev.to/ben/making-devto-insanely-fast
フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって
だけで、ほとんどRails関係ないな
7571 (ワッチョイ 022c-Sfrr)
2020/01/18(土) 03:54:28.83ID:ciDfAHTw0 でも、DB は、Rails でしょ?
ちょっと考えられないぐらいに、速いw
あり得ないw
だから、Ruby からは、こういう怪物が出てくるw
実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw
Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw
他言語の香具師も面白がってやってくるw
それがRubyの面白い所w
知的好奇心がそそられて、何か新しいことに挑戦したくなる言語
ちょっと考えられないぐらいに、速いw
あり得ないw
だから、Ruby からは、こういう怪物が出てくるw
実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw
Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw
他言語の香具師も面白がってやってくるw
それがRubyの面白い所w
知的好奇心がそそられて、何か新しいことに挑戦したくなる言語
76デフォルトの名無しさん (ワッチョイ 82a5-36M6)
2020/01/18(土) 09:12:19.27ID:6Wtj4R8r0 >>69
アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい
もとから年収の高い集団が内製の新言語使いだしただけだろ
要するに、東洋経済の従業員自体の年収はそんなに高くねーモン
企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない
だから10億プレイヤーが東洋経済にいない
同じ理由で潰れたのがbig tomorrow
アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい
もとから年収の高い集団が内製の新言語使いだしただけだろ
要するに、東洋経済の従業員自体の年収はそんなに高くねーモン
企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない
だから10億プレイヤーが東洋経済にいない
同じ理由で潰れたのがbig tomorrow
77デフォルトの名無しさん (ワッチョイ a914-+9Wh)
2020/01/18(土) 09:30:31.53ID:w6J1AYPB0 いやRails遅いでしょ?何と比べて速いって言ってるのさ?
78デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/18(土) 10:05:38.54ID:Qnj8VWpB0 >>75
5chを荒らすことしかしてないお前が言っても説得力ゼロだ
5chを荒らすことしかしてないお前が言っても説得力ゼロだ
79デフォルトの名無しさん (ワッチョイ 5233-j5lD)
2020/01/18(土) 17:00:27.15ID:gfH5d2Um0 つうかそもそも、DBはRailsってどういう意味なんや?w
8071 (ワッチョイ 022c-Sfrr)
2020/01/19(日) 12:09:49.13ID:qcodQ+dh0 元乃木坂46 の川後陽菜のブログ
https://kawagopro.com/
上を、下のサイトで分析したら、これも、Rails だった!
https://builtwith.com/
アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!
https://kawagopro.com/
上を、下のサイトで分析したら、これも、Rails だった!
https://builtwith.com/
アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!
81デフォルトの名無しさん (オッペケ Srd1-Ip36)
2020/01/19(日) 12:14:17.68ID:7HHjQocqr ×どおりで
○どうりで(道理で)
○どうりで(道理で)
82デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/19(日) 12:40:31.29ID:Wel1D6/w083デフォルトの名無しさん (ワッチョイ 927c-s5Rz)
2020/01/19(日) 13:11:12.72ID:AinWVopR0 いよいよRubyにも型チェックの機能が取り入れられる
型定義は別ファイルに書くようになっていて、文法は以下の感じ
class Foo
def foo: -> void
def to_s: -> String
(Integer) -> String
end
このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね)
この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない
もし間違えてしまうと型チェックが働かなくなる(だろう)
そして、型チェックツールはそのことを教えてくれないだろうね
何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ
なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない
そうしないと正しく型チェックが働いたことを誰も保証できないだろう?
「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」
というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類
絶対だれかヤラカス、容易に想像できる
お気づきのかたも多いだろうが、同じことを二回書かせるから間違える
これはまさに「DRYに反している」典型的事例
ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい
理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している)
ttps://logmi.jp/tech/articles/321280
このように口を開けば事実と反対の事ばかり言うのがmatzであり
そんな人が作ったRuby自体も反対のあべこべ逆張り言語である
型定義は別ファイルに書くようになっていて、文法は以下の感じ
class Foo
def foo: -> void
def to_s: -> String
(Integer) -> String
end
このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね)
この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない
もし間違えてしまうと型チェックが働かなくなる(だろう)
そして、型チェックツールはそのことを教えてくれないだろうね
何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ
なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない
そうしないと正しく型チェックが働いたことを誰も保証できないだろう?
「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」
というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類
絶対だれかヤラカス、容易に想像できる
お気づきのかたも多いだろうが、同じことを二回書かせるから間違える
これはまさに「DRYに反している」典型的事例
ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい
理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している)
ttps://logmi.jp/tech/articles/321280
このように口を開けば事実と反対の事ばかり言うのがmatzであり
そんな人が作ったRuby自体も反対のあべこべ逆張り言語である
84デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/19(日) 15:31:51.01ID:ehZNNwbSF 俺のRubyがこんなに速いわけがない
85デフォルトの名無しさん (アウアウウー Sa05-s5Rz)
2020/01/19(日) 23:07:31.87ID:JsYzYAKPa 入門書に飽きてきた人におすすめ
Rubyだと実例を入手しやすいからいいね
新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
https://speakerdeck.com/todokr/xin-siihurokuraminkuyan-yu-falsexue-hifang-httpsahawozuo-tutexue-hu-java-scala-clojure
https://github.com/todokr/simple-http-server
Rubyだと実例を入手しやすいからいいね
新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
https://speakerdeck.com/todokr/xin-siihurokuraminkuyan-yu-falsexue-hifang-httpsahawozuo-tutexue-hu-java-scala-clojure
https://github.com/todokr/simple-http-server
86デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
2020/01/19(日) 23:44:41.65ID:qcodQ+dh0 実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26
この本を読んでるけど、TS も型地獄w
React(Parcel)でも、型定義ファイルがいる。
npm -i -D @types/react @types/react-dom
@types 以下に、各フレームワークの型定義ファイルを入れておく
React, Next.js, Vue.js, Nuxt.js, Express など、
各フレームワークで、TSへの型対応を進めているけど、地獄w
この本を読んでるけど、TS も型地獄w
React(Parcel)でも、型定義ファイルがいる。
npm -i -D @types/react @types/react-dom
@types 以下に、各フレームワークの型定義ファイルを入れておく
React, Next.js, Vue.js, Nuxt.js, Express など、
各フレームワークで、TSへの型対応を進めているけど、地獄w
87デフォルトの名無しさん (ワッチョイ a12d-GCXE)
2020/01/20(月) 20:49:11.90ID:YZhtkMgR0 最近、誰でも高額が稼げるような言い方でRuby教材を売ってる人らが目立つな
88デフォルトの名無しさん (ワッチョイ f901-otum)
2020/01/21(火) 00:25:49.49ID:dRlbVwUu0 稼げるからね。
89デフォルトの名無しさん (ワッチョイ a12d-GCXE)
2020/01/21(火) 00:43:52.91ID:98cKibZ60 本当に稼げるんならいいけど、100万円取られて終わりじゃないの
90デフォルトの名無しさん (ワッチョイ f901-otum)
2020/01/21(火) 01:06:10.14ID:kOBQMwNv0 100万稼げるからねって意味だったんですけど。
91デフォルトの名無しさん (ワッチョイ 8d9b-otum)
2020/01/21(火) 11:25:04.38ID:USbDfMqQ0 詐欺御用達
92デフォルトの名無しさん (ワッチョイ 82a5-36M6)
2020/01/21(火) 12:15:08.17ID:/80lr+DT0 スコップを売って100万稼ぐんだろ
スコップ売りの少女から学ぶべきは一つ
スコップで穴を掘ることではなく、スコップの売り方
スコップ売りの少女から学ぶべきは一つ
スコップで穴を掘ることではなく、スコップの売り方
93デフォルトの名無しさん (ワッチョイ 8d9b-otum)
2020/01/21(火) 12:31:08.84ID:USbDfMqQ094デフォルトの名無しさん (ワッチョイ a12d-GCXE)
2020/01/21(火) 16:39:26.54ID:98cKibZ60 >>90
そっちか!勘違いしてたぜ
そっちか!勘違いしてたぜ
95デフォルトの名無しさん (ワッチョイ 225c-muX5)
2020/01/21(火) 19:28:13.89ID:essSqG5l0 "abc".size などの . は前後に空白があってもOKだった(最近の発見)
"abc" . size
"abc" . size
96デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
2020/01/21(火) 21:28:11.63ID:nuZnWP/f0 Windows 10, VSCode では、
関数の引数の( ) の有無とか、
obj.method arg_1
obj.method( arg_1 )
メソッドチェーンでのコメントの有無とか、
obj.method_1 # コメント
.method_2 # コメント
こういうので、エラーになったり・ならなかったりする、基準が分からないw
関数の引数の( ) の有無とか、
obj.method arg_1
obj.method( arg_1 )
メソッドチェーンでのコメントの有無とか、
obj.method_1 # コメント
.method_2 # コメント
こういうので、エラーになったり・ならなかったりする、基準が分からないw
97デフォルトの名無しさん (ワッチョイ 5233-j5lD)
2020/01/21(火) 22:49:54.70ID:YQwIan5u0 Rubyは、IDEと相性が悪いからな。
動的型だけじゃなくても、文の区切りがわかりにくい文法も。
しゃあない。
動的型だけじゃなくても、文の区切りがわかりにくい文法も。
しゃあない。
98デフォルトの名無しさん (ワッチョイ 4201-73fV)
2020/01/21(火) 23:13:36.42ID:Vd2KBMmO0 しゃあないわけあるかw
使ってるプラグインの作りが悪いだけだろ
使ってるプラグインの作りが悪いだけだろ
99デフォルトの名無しさん (ワッチョイ 022c-Sfrr)
2020/01/21(火) 23:27:09.32ID:nuZnWP/f0 VSCode が中心になってから、開発者全員がVSCode を使うようになって、
すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった!
Ruby も対応してくれるかな?
すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった!
Ruby も対応してくれるかな?
10099 (ワッチョイ 022c-Sfrr)
2020/01/21(火) 23:28:44.69ID:nuZnWP/f0 Julia, Python, Ruby に対応してくれれば、
Jupyter Notebook でも良いけど
Jupyter Notebook でも良いけど
101デフォルトの名無しさん (オッペケ Sr7b-3C30)
2020/01/22(水) 09:39:40.18ID:1i745hKir メソッドチェーン中の#によるコメントは2.7.0からの新機能
102デフォルトの名無しさん (ワッチョイ 5fa5-UqN9)
2020/01/22(水) 09:50:31.20ID:mkyLzVly0 VSCodeの開発言語がVSCodeにとっては最重要言語でしょ
そうじゃない言語は傍流だから切られる
使えますよとしてるのはVSCodeに囲い込むための方便
ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略
そうじゃない言語は傍流だから切られる
使えますよとしてるのはVSCodeに囲い込むための方便
ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略
103デフォルトの名無しさん (ドコグロ MM5b-9ipO)
2020/01/22(水) 10:10:14.80ID:uoDMOHZtM MSはVSCodeをTypeScriptで書くことによって動的型に止めを刺したよね
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ
104デフォルトの名無しさん (オッペケ Sr7b-3C30)
2020/01/22(水) 10:56:05.26ID:1i745hKir Emacsが死んだとかどの世界の住人ですか
105デフォルトの名無しさん (ワッチョイ df33-TZXF)
2020/01/22(水) 22:50:36.18ID:rp7FIzPH0 テキスト編集能力よりも、アプリケーション開発能力を優先すると、IDEが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。
106デフォルトの名無しさん (ワッチョイ 5f2c-++Vr)
2020/01/22(水) 23:10:32.35ID:fyGKoId60 require 'webrick'
srv = WEBrick::HTTPServer.new( {
:BindAddress => '127.0.0.1', :Port => 20080 } )
srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' )
Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
Windows 10, Ruby 2.5 で、
カレントフォルダに、index.htm と画像ファイル、abc.jpq を置いて、
WEBrick のServer/Servlet を起動して、ブラウザで見ると、
HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない!
1-liner で、
ruby -run -e httpd . -p 20080
としても見えないが、ポート番号を10080 に変えると見える!
常に見えるようにするには、どうすればよい?
srv = WEBrick::HTTPServer.new( {
:BindAddress => '127.0.0.1', :Port => 20080 } )
srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' )
Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start
Windows 10, Ruby 2.5 で、
カレントフォルダに、index.htm と画像ファイル、abc.jpq を置いて、
WEBrick のServer/Servlet を起動して、ブラウザで見ると、
HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない!
1-liner で、
ruby -run -e httpd . -p 20080
としても見えないが、ポート番号を10080 に変えると見える!
常に見えるようにするには、どうすればよい?
107デフォルトの名無しさん (オッペケ Sr7b-3C30)
2020/01/22(水) 23:15:37.70ID:1i745hKir jpqだからじゃねえの
109デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2020/01/23(木) 00:38:32.32ID:9sgUs0f40 304が返される状態にもかかわらず
画像が見えないなら基本的にはクライアント側の問題
まずはHTTPリクエストを確認しろ
画像が見えないなら基本的にはクライアント側の問題
まずはHTTPリクエストを確認しろ
110106 (ワッチョイ 5f2c-++Vr)
2020/01/23(木) 00:49:20.77ID:31WWjqFP0 Windows 10 のローカルPC は、アクセス権限が厳しいから、
サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?
サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?
111デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/23(木) 05:02:20.43ID:DWwoifTV0 Web開発でRubyが下火になってきてるらしいけど、一体何に移ってるの?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
