Ruby 初心者スレッド Part 67
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ 質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。 Ruby on Rails については、WEBプログラミング板で 前スレ Ruby 初心者スレッド Part 66 https://mevius.5ch.net/test/read.cgi/tech/1578068134/ るりまサーチ (リファレンス検索) 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 フレームワークのRailsはプロトタイピングに優れてるからスタートアップ向きだけど まじめに保守するならカッチリした言語・フレームワークに乗り換えることになる そう割り切ってつかうならあり 実際に作ってみて、運用してみないと 分からない問題点があるからね 最初にかっちり決めてしまうと 修正するのがほぼ不可能になる なんとなくだが>>441 は概ね答えわかってて聞いてる気がする 女のどう思う?はもう答えてほしい事が決まっていると言うからなw 将来性に期待して今から始めるんはナシやろ。 最悪捨てることになっても可、つうことならアリ。 色々参考になりました。 とりあえず仮に通うにしても就職先では別の言語を使う可能性が高いと考えておきます 時価総額1兆円までは、Ruby on Rails で大丈夫 時価総額1兆円以上のGithub は、Go へ移行する。 一方、2兆円のGitlab は、Go へ移行せず、Railsを継続する 外人の動画で、2千社の取引先で、2億レコードあるけど問題ないと外人が言ってた >>438 にも書いたけど、KENTA のYouTube 動画も一杯ある。 初心者は、月千円のKENTAのRailsサロンへ入れば良い。 日本6位の3千人。1位はキングコング西野の数万人 文系のキャリアパスは、Rails → Go のみ。 普及のキャズムを越えたのは、Goだけ。 Rust, Elixir は越えなかった 高卒から金を巻き上げるスクール商売ばっか目立ってるって、入会する側もおかしいと思わないのかねえ 自力でやろうとしても やる気になれない 何をどういう順番でやればいいか分からない とかだと スクールに頼ることになるんではないだろうか ひたすら写経してブリブリ動かせばなんとなく掴めると思うんだけどな〜 体系立った理解は後回しでも良いと思う 専門学校みたいなもんやと思えばそんなもんやろ。 相場を知らないんやから、しゃあない。 KENTA のサロンは月千円 KENTAが批判しているマコなりは、実教室があるから80万円。 RUNTEQ は40万円。 東京フリーランスは10万円 KENTAがぼったくりと書いて、訴えられた所は200万円。 KENTAを訴えると、会社の知名度が上がるから訴える Ruby技術者認定試験制度の対象バージョンが2.1.xなの古くない? Rails技術者認定試験もRails 4対象だし、公式Twitterは2018年が最終ツイート、さらに公式Facebookは削除されてる。 このスレでWordPress、PHP、SQLの質問をしたら、親切な達人プログラマーが懇切丁寧に教えてくれますか? >>462 Ruby でサイト管理を自動化するとか、DBにアクセスするという話ならお返事あるんじゃない? >>462 WordPress, PHP, SQLそれぞれのスレでご質問願います >>463-464 やはり、そうですよね。 他のスレでRubyスレに誘導されたので確認してみました。 ご回答ありがとうございます。 Word Press のコーディングの本はない。 デザインの本しかないので、プログラミングを学べない Ruby on Rails では黒田努の3冊の本とか、パーフェクト Ruby on Rails、 ウェブサイトではRails ガイド・Rails チュートリアル、 Dean の動画とか、コーディングの教材が多い >>438 にも書いたけど、 PHP は、KENTAがオワコン認定したから終わった AWS Lambda のデフォルト言語にも採用されていない。 Go は採用されたが、PHPは採用されなかった。その理由を考えてみ 漏れの結論としては、PHPでは勉強を続けることは無理。 教育環境が無さすぎる Laravel を使っているZOZO とか、良い開発者が集まらなくて、困ると思う >>466 KENTAはRubyも否定してますが、Rubyを推す理由ありますか? RubyやPHPを選択する理由が薄くなった https://youtu.be/LfcgWPqMSGM?start=100 GoのみがSランク、それ以外は全てCランク https://youtu.be/LfcgWPqMSGM?start=200 最も、いいね少なすぎてKENTAの動画に信頼を置く理由が不明ですが たいした学習コストじゃないんだし悩んでるくらいなら全部やればいい 未経験からのエンジニア転職の必須教養【技術知識編】 www.youtube.com/watch?v=Q1c09rrhTjo KENTA が勧めるキャリアパスは、Ruby on Rails → Go のみ。 Laravel, Django を選ばないように言ってる もしポートフォリオに、Laravel, Django を選ぶと、 Railsではなく、それらを選んだ理由を聞かれて困る 技術選定・適材適所の失敗。 つまり、情報収集能力や自走力がないので採用されない 皆がRailsで勝負しているのに、なぜ君は奇をてらったのか? 正攻法を避けた理由を説明できない もし自分が面接官なら、 Laravel, Django のポートフォリオを持ってきても、そもそも見ない。 何で、Railsで作らないの? と思うのが普通 経験言語そのものより良いコード書いてて配属先の技術スタック吸い込んでくれる人のほうが嬉しいかな >>469 いいね300低度の動画を鵜呑みにしちゃうのね ここ数年、Ruby はオワコンと言ってる香具師が多いけど、 結局、千人の素人が言うことよりも、1人のプロが言うことの方が正しい 例えば、Rubyで求人検索すると、5件しかないからオワコンだとか書いているサイトが多い 他にも、KENTAの天敵がSES のモローで、 2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、 ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、 Java, PHP の方が稼げると勧めていた 【2022年版】Ruby on Railsの将来性 ところが最近の、YouTube のこの動画では、 Rails一色で、キャリア相談まで始めたw Java, PHPのSESは、どうなったの?w 一方、RailsチュートリアルのYassLab は、Rubyはオワコンと言われているけど、 Railsチュートリアルは筑波大学にも採用されて、 毎年増加しているので、本当にオワコンなのか? と言ってた プロの方が、正確な情報を持っている 最終的に負荷の問題でgoに移植ってパターンが 二度手間だから最初からgoでやれ なんて言われてるが ほとんどの場合、問題になるほど流行らんて Github のコピーであるGitlab は、時価総額1兆円だけど、 Rails のままで、Go へ移行しないと宣言している GithubはGoへ移行するけど 米国人の動画を見ると、 2億レコード・2千社のデータがあるけど、Rails で大丈夫とか、 試作品をNode.js で8週間掛かったが、Railsでは2週間だった。 JavaScript はアホらしいとか 大量レコード・マルチテナントなんて言語選定というより設計の問題じゃん プロトタイピングの速さについては同感ですが モルモン教言語のrubyも辛い立場だな まつもとも娘に断食させたり痛いことしてたし RubyとAjaxについて勉強してるんですけど WebページからAjaxでサーバー上のtest.cgiに文字列を渡し そのtest.cgiで処理した戻り値をWebページ側に送るのはどうやって書けば良いんでしょうか? >>478 rails tutorialの最後の章にほぼそのままのあるからそれ見れば てか今日日cgiってまだ現役なのか xhrなどのキーワードでググったほうがいいんじゃないですかね >>478 cgiで処理できるんならcgiがjson返せばいいだけでは? それともtest.cgiが ・あなたの作ったrubyプログラムとは別 ・戻り値が出来るのに時間がかかり サーバーサイドからイベント送信する必要がある みたいな事情があるのでしょうか? >>482 やりたいことがまさにそれで、ruby側の記述がわからないというワケです CGIオブジェクトのどの値を書き換えるとajax側に返すjsonになるんでしょうか? 標準出力にJSON.generateなどで生成したjson文字列書き込めばいいんじゃないの >>484 標準出力で良いんですね というかjson以外でも受け取れました ありがとうございます 原始的なCGI使ったことあるのってもうジジイだけなのかな 根源的な理解をするにはCGIは良い教材だと思う フレームワークの恩恵も感じやすいんじゃないかなあ RailsってDBアクセスのコストが高いんですか? >>488 比較対象次第ではあるが オブジェクト指向と実態のギャップを埋めるために 相応のコストは掛かってる ただまぁこのコストが気になるレベルまで積み上がってるとしたら (Twitterみたいな大規模プロジェクトは例外として) 何かミスか勉強不足があるかと疑いたくなる フレームワークのオーバーヘッド気にするようなケースなんてほとんど無い気が フレームワークのコストよりもデータ構造の設計によって検索に処理時間かかったり、大きすぎる中間ファイルが出来たりというほうが アカウント数が増えた時には問題になると思います ファイルが大きくなったら何らかの形で分割しないといけないと思うのでボトルネックになるのは読み込むファイルのサイズになりそうな ところでまた質問なんですが 配列の後ろから1つだけ任意の要素を削除する処理を書こうとしたら rindexがnilを返したときにdelete_atがエラーになるんですが、rindexの戻り値を変数に格納して条件分岐入れるしかないですか? ary=[1,2,3,4,1,2,3,4] e = ary.rindex(2) ary.delete_at(e) p ary # 一行にしたかったけどnilになるとエラー # ary.delete_at(ary.rindex(9)) よく読んでなかったわ 可読性無視して1行に押し込みたいならこうするくらいしかないんじゃね ary.delete_at(ary.rindex(9) || ary.size) a.rindex(2)&.tap { a.delete_at(_1) } ActiveSupportがあればtry! >>493 大きいサイズ入れた時の動作仕様が今後も変わらなければいいですがちょっと不安です >>494 おおっすごい tapでselfの時のみdelete_at呼ばれる処理なら安全そうですね 参考にします ありがとうございました 句点Rubyおじの居場所をこっちにも作ってあげてください installしなくても使えるrubyを用意すれば、ユーザ増えないですかね まず初心者にも簡単に使い始められるようにしてユーザ数を増やす インストールを嫌うのはWindowsユーザー特有の習慣なわけだけど、 RubyにおいてWindowsユーザーは嫌われ者だからあえてWindowsユーザーを増やすような施策はしないだろうねえ せっかくWindowsならWSL使えで終わりにできる時代になったのだし、今更逆行させたくないだろう 休日を機にrubyの勉強を始めた もうSESで業務系・制御系客先常駐は嫌だウェブに行くんだ Node.jsやGoにしときなよ 今更Rubyはじめましたなんて保守のクソ案件やらされるだけだぞ まじか。ブートキャンプなんかもチェックしてrubyを選択してるところが多かったから最初のチョイスにはいいのかと思ったんだけど スタートアップでRubyも一時期に比べれば減ったけど全体として少なくはないと思うがなぁ まあGoやれには同意 >>504 のスキル次第かな プログラミング教育ビジネスでRubyの採用が比較的多い理由はPHPと同じで、 技術スタックが固定されていてRoRの使い方さえ覚えれば一応仕事らしいことはできるから 一方でNodeやGoだとまずAWSやGCPでインフラを設計して、、となっちゃうから前提知識が多く、教える人にとっても難しいわけだね 504がどうかは知らないけど業務系の出身の人ってペチパー上がりのWeb系に比べりゃネットワークやDBなど基盤技術に強い人が多いから、 まずはAWS SAを取るくらいを目標にしたほうがモノになりやすいかもしれない >>504 Webアプリについて学ぶならRubyからはじめるのは今でも一番効率いいよ C#とかやってるならそのままASP.NET MVCやるといい Javaの場合はSpringやSpring Bootやる前にRails一通り学んだ方が学習効率が高い のっけからフレームワークって学ぶ順番としてどうなんだろ >>508 それなりの多くは、なっちゃってエンジニアだと思うんだけど、ほとんどコピペでフレームワークを学ぶ!?雰囲気で使っている感じやんね。 TCP/IPからやれとはいわんけど 変なブログの情報どまりじゃなくMDNをリファレンスにしてくれれば迷惑はかけないかな アプリ作ってるけど、Ruby選んだのにRubyは俄然200行程度に対してJSソースがその10倍の量になった事をご報告 Rubyガイジがこのスレに誘導しているみたいだけど 今更Rubyなんて流行らないし>>503 でも指摘されているけど 新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw 色んなプログラ厶スレで rubyスレ誘導はってる人がいるよね ブロックスコープを作って、そのスコープ内だけで使える変数を作るには どうすればいいのでしょうか? a = 1 { let a p a # nil } p a # 1 a = 1 ->(a = nil) { p a }[] p a ただrubocop(linter)に怒られる thenも使えそう a = 1 nil.then { |a| p a } p a そもそもメソッドじゃ駄目なんだろうか 書式設定これが見通し良くない? 無駄な#が有効利用できるからな 採用していいぞ n = 123 name = "山田太郎" puts "#05d{ n }番目は#10s{ name }です" 今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が 議題になっているらしい。 >>504 YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、 未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる Django, Laravel はダメ。 特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい 未経験からのエンジニア転職の必須教養【技術知識編】 www.youtube.com/watch?v=Q1c09rrhTjo Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある Node.js など最悪。面倒くさすぎて勉強にならない。 Go も初心者向きじゃないので、 KENTAが勧めるキャリアパスは、Rails → Go のみ KENTAのサロンのAWS 部で皆、AWSのくろかわこうへいのサロンへも入る。 くろかわのサロンの生徒、数十人で書いた本も出てる 以下がバックエンドの最短コース Rails, Bootstrap, jQuery から始めて、 Linux, Docker, Heroku, AWS, CircleCI, Github Actions 猛者になると、Terraform, Kubernetes。 ここまで行けば、どの会社よりも上 >>488 データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた N+1 で一々、問い合わせをしたり、 多対多などで、索引なしで総当たりみたいな事をやっているとか? DBの実行計画を見た方がよい ミックの本も読んだ方がよい。 副問い合わせを、case に書き換えるとか、書いてあったような気がする。 よく覚えていないけど データベース資格の問題を解くとか >>478 漏れが作った、webrick のデモならあった require 'webrick/cgi' class MyCGI < WEBrick::CGI def do_GET(req, res) res["content-type"] = "text/plain" ret = "get\n" res.body = ret end def do_POST(req, res) res["content-type"] = "text/plain" ret = "post\n" res.body = ret end end MyCGI.new.start() ちょっと厄介な事かもしれないですが、配列にuniqやった時に [1,2,3,4,2].uniq これで 一番後ろの2が削除されて[1,2,3,4]になるじゃないですか uniqした後の結果を[1, 3, 4, 2]にしたい時は [1,2,3,4,2].reverse.uniq.reverse こう2回reverseやるしか無いでしょうか? reverse消すのを試みていたんですが上手い方法が思いつきません uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか ちょっと無理そうですね データ構造のほうが逆順だったらreverse無しで良かったんですが そっちはもう換えられないのでこのままにしときます reverseをreverse_eachにしたら中間のArrayは無くせる scan.map.delete_if.delete_if.shuffle[1,20] とかなっても意地で1行で書くのが真のプログラマなの? delete_ifが2つ続いてるとか mapした後にdelete_ifとか 何か良くない匂いがするとは思う >>529 意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする 1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない 最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング 真のPGはmethod_missingの魔術コード書ける人だよ サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う もしかしたらいつかサーバー側にコード持っていく可能性もある 書いてもいいのかな? どうせコンテナで動かすんだからどうでもいいだろ 今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ コンテナ? 3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話 こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる サーバの古いRubyコードをモジュールで使うわけじゃないなら 枯れたPerlで書けば解決 ん?いや古いモジュールとかじゃなくて、 ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話 いまどきのRubyで書くと互換性の問題がでるなら いっそPerlで書いたらという話 >枯れたPerlで書けば解決 正しいこと言ってるのに何故だか寂しくなる Perlはないかなー 3.0だと構築しやすい環境があって それがサーバーバージョンだと構築できるか不明で、 Perlだと普段使ってないんで Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる