Ruby 初心者スレッド Part 64

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:25:16.66ID:wk35+pf/
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
227デフォルトの名無しさん
垢版 |
2018/09/24(月) 20:49:18.67ID:mZ7GRZ4Z
>>226
俺に言ってんの?
2018/09/24(月) 21:15:02.89ID:63DR0NZS
>>227
そのとおり
2018/09/24(月) 21:25:53.56ID:8Eg6qm1l
実際プログラミングの能力って個人差があるから、あまりにも他人より努力しなきゃいけないようなら
そこを乗り越えても最終的には不幸な人生になる可能性が高いよ
本当に辛いなら我慢しないほうがいい
2018/09/24(月) 21:33:35.11ID:cIWp1XlU
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7

改訂版が出たよ。
こちらの方が、Rails チュートリアルよりも簡単かも
2018/09/24(月) 21:41:34.02ID:cIWp1XlU
カッコは、VSCode の、Bracket Pair Colorizer で、

対応するカッコをカラフルに表示できるし、
開始・終了カッコを示す、ガイドラインも付く

f ( )

ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。
昔はエラーの理由がわからず、これでかなり苦しんだ
2018/09/24(月) 21:59:41.25ID:j4wJNE6l
>>218
>>221
ま、細かいとこだよ。
以前はエラーになってたのがいけるようになったんだっけかな。
233デフォルトの名無しさん
垢版 |
2018/09/24(月) 22:12:16.59ID:jnbiRGGY
>>232
いやいや、そんな遠慮なさらずに、変わったところを教えてくださいよ
だって >>217 じゃ天下取ったみたいな口調で変わったと断言したのですから、
まさか今頃になって忘れちゃったなんて言わないですよね?

すごく興味があるから、ホラやデマカセでなければ、ぜひ教えてください
234デフォルトの名無しさん
垢版 |
2018/09/24(月) 22:17:47.16ID:jnbiRGGY
>>231
>ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。
>昔はエラーの理由がわからず、これでかなり苦しんだ

それ、Bracket Pair Colorizer のバグですね
2018/09/24(月) 22:39:27.18ID:j4wJNE6l
>>233
いちいち覚えてるわけないだろ。
目的が煽りでないならちょっと調べてもいいけど、人にものをたずねる態度じゃないな。w
236デフォルトの名無しさん
垢版 |
2018/09/24(月) 22:56:50.65ID:jnbiRGGY
>>235
え、わざわざ調べなければならないほど記憶が曖昧なのに、>>217じゃ:

>> 文の区切りが書き方やバージョンによって変わるくらいなら、セミコロンくらい喜んで書く。

とカキコしちゃたのですか?

どうやら、ID:j4wJNE6l にとって議論に勝ちさえすれば真実はどうでもいいらしい
>>217のようなホラやデマカセの類を吐いても平然としていられる
日本人の私には、とうてい信じられない行動ですね
237231
垢版 |
2018/09/24(月) 23:15:22.67ID:cIWp1XlU
def foo ( x ) puts x; end
foo ( 1 )

あれれ? 関数名の後ろに、空白が入っていても、正常に動く

解釈があいまいになる場合に、エラーになるのかな?
2018/09/24(月) 23:19:18.60ID:+bhBUiYM
ここまで全部pyキチの自演かよ
2018/09/24(月) 23:41:33.14ID:8mxLASGw
>>237
それは括弧が引数の括弧として解釈されてないだけだから
puts  (1+2)

puts((1+2))と解釈されている
次の例からも明らか
puts (1+2).succ #=> 4
puts(1+2).succ #=> NoMethodError: undefined method `succ' for nil:NilClass
# putsの戻り値nilにsuccを呼び出そうとしているので
2018/09/25(火) 00:30:03.44ID:9DB6mA1y
>>235
お前バカか?
目的が煽りでないならとかじゃなくて、「ありもしないバージョンによる改行の扱いの変更をでっちあげて
Rubyを貶めたいだけなんだろ?」って堂々と疑われてることにも気づかないのかよ
そこで「いちいち覚えてるわけないだろ」なんて疑いを確信に変えるだけじゃん
2018/09/25(火) 01:22:25.40ID:nLBKEPPV
バカはおまえらだ。
そういうことなら、説得する義理なんかないから、どうでもすきに思え。
とにかく事実として存在したんで。

Rubyはいいかげんなところが多いが、改行の扱いもそうだった。
ま、それでもいいとも思う。
それで問題ないところで使うし。
2018/09/25(火) 01:34:54.50ID:9DB6mA1y
> そういうことなら、説得する義理なんかないから、どうでもすきに思え。
ここに及んでまだ具体例を出せないってことは、嘘八百ってことをついに認めるに至る、ってことね
2018/09/25(火) 02:10:16.33ID:JXqOIinx
1.9辺りで改行の扱い変更されてなかったっけ?
http://www.rubyist.net/~matz/slides/rc2003/mgp00021.html
2018/09/25(火) 16:54:01.90ID:7/llvlyM
>>243
2.0のような気がしてたけど、1.9だったか。
そういえば、オレは1.9はスキップしたんだった。
245デフォルトの名無しさん
垢版 |
2018/09/25(火) 17:12:49.07ID:zjb6lVBe
>>231
"ただ、関数名とカッコの間に、空白を入れると、文法エラーになる。"
これマジ?気付かなかったな
文法チェック入れてないからか?
2018/09/25(火) 18:12:40.14ID:tnNRyqPf
そりゃ当たり前でしょ
hoge  (1, 2)
ってあったら(1, 2)の結果をhogeに与えようとするからsyntaxerror
引数無しのメソッドでも
hoge  ()
ってすればまず()の結果であるnilをhogeに与えてhoge(nil)になるからargumenterror
247デフォルトの名無しさん
垢版 |
2018/09/25(火) 18:31:24.09ID:EqDfiqim
なるほどね
VB/VBAもそんなのあったな
やっぱりrubyは糞
2018/09/25(火) 18:40:43.81ID:8itXfwJX
文法の一貫性が損なわれるのは括弧省略の大きな欠点だよね
言語の驚きを最大化するには良い方法
2018/09/25(火) 20:13:19.11ID:nLBKEPPV
たしか、Perl5もそう。
スクリプト系言語はしかたないね。
250デフォルトの名無しさん
垢版 |
2018/09/25(火) 21:31:47.09ID:BRabQ1iT
Rubyの文法を理解できなかったって素直に言えよ
自演してないで
2018/09/25(火) 21:33:26.27ID:Jw6NGqaL
空白の個数で意味が変わるような文法は糞だが、空白の有無ならまぁ許容できる。
2018/09/25(火) 22:01:45.11ID:BMMTvniR
>>248
文法の一貫性を保ったまま、括弧が省略できる言語がある。
括弧が省略と言うか、そもそも括弧がない。
その言語とはシェルスクリプトだ
This is a pen がそのまま実行可能にできる言語はシェルスクリプトだけ
2018/09/25(火) 22:16:35.41ID:JXqOIinx
>>252
> This is a pen がそのまま実行可能にできる言語

その式はSmalltalkでもリーガルだし
しかるべくクラスやメソッドを定義すれば実行可能にできるよねw

https://ideone.com/61xGq2
2018/09/25(火) 22:29:36.06ID:GnoTTlW7
>This is a pen がそのまま実行可能にできる言語
パーサ組んで新言語作ればいいだけ
なお実用性があるかどうかは別問題
2018/09/25(火) 23:39:40.93ID:tnNRyqPf
そういや任天堂のruby謎解きパズルみたいなので
what is the answer
みたいな感じで実行すると答えになるってのが昔あったな
2018/09/25(火) 23:46:10.39ID:i2UBaUuH
文の途中で改行するときも、あいまいに解釈されない場所で、改行しないといけない。
カンマ前置スタイルで、改行できるかな?

a,
b,
c

a
,b
,c
257デフォルトの名無しさん
垢版 |
2018/09/26(水) 00:17:36.60ID:mFRVToqB
言語の文法を理解できなかった

文法に一貫性が無いのが原因だ


自演してまでこんな酷い言い訳を言いたいのか?
2018/09/26(水) 01:07:44.46ID:Mj1AdT7l
最近はKotlinとかも改行に意味を持たせるようになってきてるのにね
セミコロン主義者の主張はわからん
2018/09/26(水) 02:30:50.92ID:iEie35x1
>>258
厳密に正確な記述ができるべきというだけのことが理解できんとは。
2018/09/26(水) 11:37:59.49ID:Mj1AdT7l
>>259
だったらそういう言語を使えばいいじゃん
C++でもJavaでもお好きにどうぞ
スクリプト系ならJavaScriptがあるし
2018/09/26(水) 11:58:04.96ID:YjHjqGJ6
javascriptはセミコロンを省略できるが、一部罠があるので省略する人はまだ少数な印象
goは省略に関してのルールが単純で独特
rustはセミコロンを省略するすることに意味があったりして難しそう
262デフォルトの名無しさん
垢版 |
2018/09/26(水) 13:01:41.89ID:Vd59yVYC
Railsの本買ったぜ★
263デフォルトの名無しさん
垢版 |
2018/09/26(水) 15:00:02.04ID:TFKXU6Vz
>>262
オメ
頑張れよ
2018/09/26(水) 17:40:54.87ID:a+dyEdoa
今勉強中なんだけど
attr_accessor これなんて読むの?
2018/09/26(水) 17:46:07.92ID:IrSE7b3G
>>264
attribute(属性)の略
読み方は知らん。心の中ではあとりびゅーとあくせっさーて読んでるわ
266デフォルトの名無しさん
垢版 |
2018/09/26(水) 18:26:25.05ID:TFKXU6Vz
アクセサ意味わからんよな
2018/09/26(水) 23:47:09.97ID:P+3GV8ah
漏れはフレームワーク本を、たくさん買ったから、読む本には困らないw

改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7
改訂2版 Ruby逆引きハンドブック、2018/8/28

Python Django 超入門、掌田津耶乃、2018
Node.js超入門、掌田津耶乃、2017

基礎から学ぶ Vue.js、mio、2018/5/29

Electronではじめるアプリ開発
~JavaScript/HTML/CSSでデスクトップアプリを作ろう
野口 将人・倉見 洋輔、2017

入門 React ――コンポーネントベースのWebフロントエンド開発、2015
268デフォルトの名無しさん
垢版 |
2018/09/27(木) 08:32:52.75ID:ae81EACT
rubyは書きやすくて読みにくい言語
pythonは描きにくくて読みやすい言語
2018/09/27(木) 08:38:33.99ID:emgF57xx
RubyでもPythonでも
自分が書いたものなら読みやすい
他人が書いたものは読みにくい
2018/09/27(木) 09:56:28.96ID:tfG3JwKB
他人が書いたソースって観点だと
他人が書いた関数群→よっぽどのスーパーアルゴリズムさえなきゃ改修できる
他人が書いたクラス群→影響範囲に確証が持てないから勘弁
ってなるよね
2018/09/27(木) 10:47:55.23ID:Xb2xbcVq
素人で自分用にしかスクリプトを書かないから、
基本的なメソッドの使い方とか、
コメントでソース内にベタベタ貼っちゃってる

# ↓三項演算子(条件 ? trueの時 : falseの時)

とか書いとかないと、数年たってスクリプト修正したりする時に
意味がわからなくなる
2018/09/27(木) 10:51:43.48ID:rZRe7wqK
さすがに頭悪すぎだろ
2018/09/27(木) 11:38:07.41ID:emgF57xx
>>271
コメントを書くこと自体は良い習慣だと思うが
さすがに三項演算子とかは書かない方がマシ
274デフォルトの名無しさん
垢版 |
2018/09/27(木) 11:41:26.19ID:+X2PETpr
うむ
2018/09/27(木) 12:11:00.96ID:m9ch006S
自分用ならいいんじゃね?
そのうち当たり前のコメントは書かなくなるだろうし
2018/09/27(木) 12:33:56.85ID:3GYxnPn5
アルゴリズムの説明が必要なときくらいしかコメントは書かないわ
コメントが随所に必要なコードは悪いコード、とまで言い切ったら言い過ぎだろうか
2018/09/27(木) 13:44:06.71ID:MMVikjbK
どうせ半年後には自分が書いていても忘れてるんだが・・・
2018/09/27(木) 14:24:39.99ID:M9UbUXxK
メソッドの説明は書く
2018/09/27(木) 18:58:06.27ID:6fCJVBDU
コメントは最小限にしたほうがいい
なぜならコメントを正しく保守するコストは思ったより高く確実にメンテされる可能性は低いから
コメントを書くくらいならSOLIDを守り、命名を正しくし、テストを書くべきだ
テストは資産に計上される上に、メンテしないとレッドシグナルが出るので保守される確率が高い
2018/09/27(木) 19:23:43.31ID:vjM+AyEC
Railsのスクリプトは決まりきった単純作業だからコメントなんて要らん
281デフォルトの名無しさん
垢版 |
2018/09/27(木) 19:51:04.49ID:kvkKm3j+
SOLIDってなんですか?
2018/09/27(木) 20:09:43.07ID:m9ch006S
https://en.wikipedia.org/wiki/SOLID
これかな
2018/09/28(金) 00:04:52.37ID:eIGlDHes
GitHubって今でもRoRで作られているの?
2018/09/28(金) 07:38:31.13ID:WNdPusBb
長く使うコードはコメント書くなぁ・・・適当に書いていて数年後に改修の必要性が生じたときに泣ける
一発屋は書かないけど
2018/09/28(金) 08:37:08.79ID:0suyvlHG
楽しいRubyより初心者にお勧めの本ありますか?
Rubyとこの本を他スレで進められたんですがAmazonの評価が第5版にもかかわらず
粗悪なものが多く二の足を踏んでしまいました…
286デフォルトの名無しさん
垢版 |
2018/09/28(金) 08:39:37.21ID:Afgf72Ce
>>285
3step本
2018/09/28(金) 08:51:34.57ID:0suyvlHG
>>286
ありがとうございます!
そちらにしてみようと思います(/・ω・)/
2018/09/28(金) 08:51:56.07ID:WNdPusBb
個人的には本で勉強しようという姿勢そのものが不適当だと思う
すでに枯れている物ならともかく現在進行形で変わっていく技術はなおさらだ
2018/09/28(金) 09:49:33.93ID:klTi8g9c
気持ちいいRubyなら買うかも
2018/09/28(金) 09:56:22.39ID:gCOipXQi
5版まで出ているベストセラーで、ユーザー会会長の本なのにw
これ以上の本があるわけないだろ

他の本は売れていないから、コメントが書かれないだけ
2018/09/28(金) 10:18:17.56ID:/n3LqHMA
そもそも「どう良くなかったのか」を書いていない時点でお察し
単に叩きたいだけの人かもしれない
292デフォルトの名無しさん
垢版 |
2018/09/28(金) 11:17:29.21ID:Afgf72Ce
3step本はよく分からなくてもとりあえず読み切ったら楽しいRubyとかに書いてあることが分かりやすくなるよ
2018/09/28(金) 13:14:10.19ID:gCOipXQi
Progate みたいな学習サイトで、勉強すれば?
2018/09/28(金) 13:43:03.71ID:EiOshXgh
>>285
『たのしいRuby』が初心者には一番オススメ

一番最初の学習は本なしじゃどうしようもないけど
本だけでもどうしようもないのが実態だと思う

どの言語でもどの本でも同じ
自分で組む練習をしないと身につかない
2018/09/28(金) 13:47:00.47ID:apJqM64m
rubyの学習なんか苦痛だろ
2018/09/28(金) 14:01:09.36ID:ERiXKI2G
Rubyが苦痛なら他の言語も基本苦痛
ということでプログラマに向いてない
297デフォルトの名無しさん
垢版 |
2018/09/28(金) 14:04:33.79ID:Afgf72Ce
穴埋め系サイトなんかいくらやっても身に付かんよ
本に書いてあるコードを写経して覚えるのが一番
2018/09/28(金) 14:09:45.11ID:apJqM64m
いや、こんなに世界中で使われなくなってきているものを今から学習とか意味ない
たくさん言語あるんだからトレンドに乗るべき
そしてなによりrubyストはエンジニア業界でかなり嫌われている
現実から目をそむけるな
2018/09/28(金) 14:17:25.47ID:ERiXKI2G
>>298
そんな言語のスレをわざわざ覗いてアンチレスをしてるお前の方が数百倍嫌われてるから安心しろ
2018/09/28(金) 14:27:20.45ID:apJqM64m
>>299
まだ何も知らない若者を救うために来てるんだよ

https://pbs.twimg.com/media/DjCWzQYU4AAng_H.jpg
301デフォルトの名無しさん
垢版 |
2018/09/28(金) 14:48:10.94ID:Afgf72Ce
>>300
相手してもらいたかったらアンチスレでも行ってろ
2018/09/28(金) 14:51:16.87ID:bPXaydqo
>>300
何がダメかじゃなくて、
何が良いかで語れよ
2018/09/28(金) 15:44:14.79ID:WNdPusBb
プログラミング言語の本って買ったことないや
リファレンスマニュアルがあれば事足りる
2018/09/28(金) 16:10:29.02ID:Trt/L8Tp
>>303
同じく
大抵はそれで事足りるしな
305デフォルトの名無しさん
垢版 |
2018/09/28(金) 16:12:22.39ID:O5kQkBkV
>>300
そろそろ新しい言語に対応したの作れ
2018/09/28(金) 17:30:04.16ID:WNdPusBb
プログラミングの勉強をしたいならまずは基礎的なところから手をつけた方が良いと思う
関数やオブジェクト指向。代入と参照、演算子類など。今時の言語であればこれらの理解はほぼ必須

もっとも自分はN88-BASICから入ったせいか必要に迫られるまでオブジェクト指向を理解できなかった
RubyでGUIアプリケーションを作っていてカオス化してようやく理解できた
でも未だにどの程度の粒度で抽象化するのが適当なのかは理解できていない
2018/09/28(金) 17:56:04.70ID:0suyvlHG
>>291
普通にAmazonに書いてありますよ
入門者向けではないって類のレビューがたくさんありました
第5版になってもこんな酷評されてるんじゃ怖いですよね

後Rubyが時代遅れかどうかとかはあまり気にしてないです
何かRubyで作ったりしたいわけではなくC系の言語きつかったから簡単と言われてるRubyやって見るだけって感じで
入門書読み終わったら又すぐ別の言語行く予定です。回り回ってCの理解の手助けになればいいって感じです
ありがとうございます
2018/09/28(金) 18:15:55.98ID:WNdPusBb
>回り回ってCの理解の手助けになればいい
それはさすがにないんじゃないかなぁ・・・C/C++が難しいのって安全機構がない上に妙な例外(≒罠)がいっぱいあるせいだし
至れり尽くせりのRubyでそれを克服できるとは思えない
自分はアセンブラ歴あるけどC/C++が使いやすいとは思わないな。中途半端に抽象化されてむしろわかりにくい
2018/09/28(金) 18:23:58.05ID:u0QY8Pfb
真面目に入門なら
プロを目指す人のためのRuby入門、2017
改訂2版 パーフェクトRuby、2017
この2つのどちらか
(簡単という意味ではない)
2018/09/28(金) 18:27:03.48ID:u0QY8Pfb
入門が終わったらこれらを読む
Effective Ruby、2015 (中級者向け)
メタプログラミング Ruby 第2版、2015 (中級者向け)
リファクタリング:Rubyエディション、2010 (中級者向け)
オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016
2018/09/28(金) 18:29:30.86ID:ZQu/0PAq
そんなにやらないほうがいい
さっさと他の言語にいくべき
2018/09/28(金) 19:27:12.76ID:WNdPusBb
他の言語に言ったところで問題が解決するとは思わないけど
C/C++である必要性がないならポストC/C++系の中から適当なのをかじってみた方がよさそう
2018/09/28(金) 19:57:21.55ID:EiOshXgh
>>308
C++は低水準と高水準と両方同時に考えながら
組まないといけないので難易度が高いな

Rubyも含めて低水準切り捨てた
C++以降の言語(LLとか)はその点組みやすい
2018/09/28(金) 21:35:00.51ID:gCOipXQi
C/C++ は難しすぎる

Ruby の良い点は、オブジェクト指向・継承と、Duck Typing の両方ができること

きっちり作ってあるフレームワークでは継承、
ちょっとした自作ツールでは、Duckと両方学べる

無料のRails チュートリアルをやればよい。
すべてのフレームワークのお手本だから

その後に、
>>267
の本を読めば、よくわかる
315デフォルトの名無しさん
垢版 |
2018/09/28(金) 23:19:14.38ID:0Eaaaj8i
C/C++は難しい訳ではない
めんどくさいだけ

Rubyは(Ruby流を)結局覚えることが多い
2018/09/28(金) 23:37:51.31ID:0suyvlHG
なるほど
どっかでプログラミングの原理は全て一緒みないな事言ってる人いたので
簡単そうな言語で一通り覚えてからC行ったら簡単に覚えられるのかなと思ったんですが
あまり関係無さそうですね……
やる理由はそれなのでやっぱりやめときます
2018/09/29(土) 02:02:10.81ID:F01MQAKZ
入門書終わってすぐ別言語行ったら意味ねぇよ
金も時間も無駄
318デフォルトの名無しさん
垢版 |
2018/09/29(土) 02:06:10.44ID:IuTgmxg/
ルビーみたいなウンコスクリプトに時間を浪費するなら
まずCをやっといたほうがいい

ルビーみたいなウンコスクリプトに時間を浪費するなら
まだJavascriptのほうが数億倍マシ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
319デフォルトの名無しさん
垢版 |
2018/09/29(土) 06:48:26.85ID:NSCd5Wk/
>簡単そうな言語で一通り覚えてからC

最終目的がCなら最初からCやった方が良い
320デフォルトの名無しさん
垢版 |
2018/09/29(土) 07:19:08.84ID:LJ41Dnpq
railsの勉強したいんだけど図書館行ったらrails2の本しかなくて借りたんだけどなんか支障ある?
コマンドとメソッドの違いくらいなら別にググりながらやるからいいんだけど設計方法が違ったりするなら少し二の足を踏むんだけど
2018/09/29(土) 07:42:08.76ID:ewxpQJRN
図書館いってネット開いてチュートリアルやれ
2018/09/29(土) 07:50:38.44ID:Rp1PcOYS
>>320
図書館で古いRailsの本を借りる暇があるなら、
いますぐ、最新のRails Tutorialをやろう!
323デフォルトの名無しさん
垢版 |
2018/09/29(土) 08:13:27.12ID:LJ41Dnpq
そんなにRails2と5じゃ違うの?
やってたらルーティングなかったんだけど2はないの?
2018/09/29(土) 08:22:54.80ID:CbNCZiAs
基本的にプログラム関係みたいな遷移の激しい分野で図書館が役に立つとか考えない方がいい
325デフォルトの名無しさん
垢版 |
2018/09/29(土) 08:25:27.36ID:LJ41Dnpq
>>324
じゃあ今すぐやめるべき?
別にメソッド暗記する気はないしこういう機能があるんだーくらいでいいと思ってる
ちなみにやってる本は「railsによるアジャイルなWEBアプリケーション開発」っていう本
レビュー高いしRailsチュートリアルよりいいかなってかってに思って借りた
2018/09/29(土) 08:38:29.10ID:ewxpQJRN
>>325
お前はお母さんに「トイレいっていい?」って聞くタイプだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況