公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part32
https://mevius.5ch.net/test/read.cgi/tech/1755057787/
Rust part31 https://mevius.5ch.net/test/read.cgi/tech/1751545806/
Rust part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part33
1デフォルトの名無しさん
2025/08/15(金) 17:49:30.70ID:N8TIzbWg695デフォルトの名無しさん
2025/11/17(月) 00:12:23.82ID:BkYR5KL2 色んな分野でRustが採用されていってるけどPythonやNode.jsの高速化ツールやライブラリでこんなにRust製が広まるとは驚いた
696デフォルトの名無しさん
2025/11/17(月) 00:32:40.94ID:kjA30/Ru >>691
別にゼロサムゲームじゃないし、採用する大企業もあるだろうけど、多くの大企業で採用されているからソフトハウスもRustプログラマーを大量に確保しようって程には普及しないと予想してる。
Webアプリは別にOOP前提じゃないからRustでも良いんだろうけど、余程多くのアクセスが無い限りRustに移行するほどの旨味は無い。
大企業が~だったらElmだって楽天に採用されて、その後やっぱダメだわってなってる。
Elmそのものってよりシングルページアプリケーション(SPA)が原因だったみたいだけど。
なので、大企業に採用されたから注目は集めても、普及するに至るかは別問題。
Haskellだって今の台湾のデジタル大臣(オードリー・タン)が仕様を公開したPerl本家より速くHaskellでPerl6(言語仕様が違い過ぎて現在はRakuという別言語)の実装を完成させたのが注目されたが、それほどの開発効率を誇るHaskellが今どうなっているか。
すでに持っているコード資産を捨ててまで移行する価値がある分野は上記の医療機器や車載などの高付加価値の組み込み分野。
(ただ、言いたいのは私自身はRustの普及を望んでいる。その先に関数型言語の普及を夢見ているから)
(望み薄なのは言わずもがなだが、夢見ても良いぢゃない)
別にゼロサムゲームじゃないし、採用する大企業もあるだろうけど、多くの大企業で採用されているからソフトハウスもRustプログラマーを大量に確保しようって程には普及しないと予想してる。
Webアプリは別にOOP前提じゃないからRustでも良いんだろうけど、余程多くのアクセスが無い限りRustに移行するほどの旨味は無い。
大企業が~だったらElmだって楽天に採用されて、その後やっぱダメだわってなってる。
Elmそのものってよりシングルページアプリケーション(SPA)が原因だったみたいだけど。
なので、大企業に採用されたから注目は集めても、普及するに至るかは別問題。
Haskellだって今の台湾のデジタル大臣(オードリー・タン)が仕様を公開したPerl本家より速くHaskellでPerl6(言語仕様が違い過ぎて現在はRakuという別言語)の実装を完成させたのが注目されたが、それほどの開発効率を誇るHaskellが今どうなっているか。
すでに持っているコード資産を捨ててまで移行する価値がある分野は上記の医療機器や車載などの高付加価値の組み込み分野。
(ただ、言いたいのは私自身はRustの普及を望んでいる。その先に関数型言語の普及を夢見ているから)
(望み薄なのは言わずもがなだが、夢見ても良いぢゃない)
697デフォルトの名無しさん
2025/11/17(月) 00:39:24.91ID:G813vGFZ698デフォルトの名無しさん
2025/11/17(月) 06:40:57.58ID:kjA30/Ru >>697
もちろんWebだって速いに越したことはない。
だから伸びてもおかしくは無いけど、RailsやWordPressも依然として大きなシェアを持っている。
特にWordPressはもはやフレームワークを超えてブログや静的なただのHPを作る分にはアプリと言っていい。
PHPはどうしても使いたい人向けに残しているだけで、コーディング必要ない。
(もはやPHPはJavaのJVMみたいな位置付け)
WordPress本家はDLして使うスタンドアローン版とWebアプリ版を用意していて、Webアプリ版は「安全のため」PHPそのものを使えなくした。
(元はPHPのフレームワークだったのに)
ブログ作成専用のフレームワークという用途を限定していたから出来たことだけど、Webに求められる開発速度はすでにそういう次元まで来てる。
そしてレンタル鯖のことごとくがWordPressに別料金を取ってる。
フレームワークにお金請求してるのはWordPressしか見たことない。
それでもシェアが増え続けている。
実行速度より開発速度の方が重要だという証拠。
もちろんWebだって速いに越したことはない。
だから伸びてもおかしくは無いけど、RailsやWordPressも依然として大きなシェアを持っている。
特にWordPressはもはやフレームワークを超えてブログや静的なただのHPを作る分にはアプリと言っていい。
PHPはどうしても使いたい人向けに残しているだけで、コーディング必要ない。
(もはやPHPはJavaのJVMみたいな位置付け)
WordPress本家はDLして使うスタンドアローン版とWebアプリ版を用意していて、Webアプリ版は「安全のため」PHPそのものを使えなくした。
(元はPHPのフレームワークだったのに)
ブログ作成専用のフレームワークという用途を限定していたから出来たことだけど、Webに求められる開発速度はすでにそういう次元まで来てる。
そしてレンタル鯖のことごとくがWordPressに別料金を取ってる。
フレームワークにお金請求してるのはWordPressしか見たことない。
それでもシェアが増え続けている。
実行速度より開発速度の方が重要だという証拠。
699デフォルトの名無しさん
2025/11/17(月) 06:47:38.76ID:h4vPK8yF >>698
WordPressはリソースの無駄遣いだから追加料金がかかるのも仕方ないかと
WordPressはリソースの無駄遣いだから追加料金がかかるのも仕方ないかと
700デフォルトの名無しさん
2025/11/17(月) 07:08:05.24ID:P2ZXnPrq >>698
それ意外にRustがぴったりの分野かもよ
ユーザーにとっては内部で動いてるものがPHP製かRust製か気にしないのだから世界中の電気代とハードウェアリソースを節約できるチャンスだったりして
それ意外にRustがぴったりの分野かもよ
ユーザーにとっては内部で動いてるものがPHP製かRust製か気にしないのだから世界中の電気代とハードウェアリソースを節約できるチャンスだったりして
701デフォルトの名無しさん
2025/11/17(月) 07:28:31.18ID:bg/nzq32702デフォルトの名無しさん
2025/11/17(月) 07:45:27.44ID:P2ZXnPrq703デフォルトの名無しさん
2025/11/17(月) 08:37:32.15ID:Jv1DTVB6 Rustがマネジメント層で流行っているのはバッファオーバーランをやらかす無能コーダーを排除したいからじゃないの?
ビルド通らなきゃ成果0で報酬払わなくていいし。
ビルド通らなきゃ成果0で報酬払わなくていいし。
704デフォルトの名無しさん
2025/11/17(月) 08:42:58.54ID:c2tXlnGe コード資産の観点が無いのかコード資産を物ともしないスーパープログラマなのか意識的に無視してる(欲ボケ?)のか何なのだろ
705デフォルトの名無しさん
2025/11/17(月) 08:50:02.44ID:3j143G+x Rustが一番使われてる分野はlinuxコマンドの置き換え
706デフォルトの名無しさん
2025/11/17(月) 09:11:50.77ID:rk5/i4ud Rustの求人はここが毎月レポート出してるけど会社名とか見ると結構面白い
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね
707デフォルトの名無しさん
2025/11/17(月) 12:12:35.65ID:AtT4RnQG >>706
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
Google
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Bun
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
など
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Bun
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
など
708デフォルトの名無しさん
2025/11/17(月) 12:14:58.26ID:ts/k/VO2 Rustスゲー!驚いた!驚いた!
709デフォルトの名無しさん
2025/11/17(月) 12:39:05.33ID:/7g9lmIJ 防衛産業だとDとかAdaとかのイメージ
710デフォルトの名無しさん
2025/11/17(月) 13:24:37.44ID:IDUdFTMh 何かに特化したプログラミングではないものを採用するところは、かなりレベルの高いプログラマーが多いところ。
711デフォルトの名無しさん
2025/11/17(月) 13:26:47.32ID:IDUdFTMh プログラミング言語は手段にすぎないと本当にわかっていない人間ほど、どうでもいいことにこだわって、メンテナンスを難しくしてしまう。それをメンテナンスを容易にしたと逆のことを言う。
712デフォルトの名無しさん
2025/11/17(月) 13:38:29.57ID:nOBhzk4k まともなIT企業ならRust求人を出すか内部で育てているだろうから当たり前の結果だろう
713デフォルトの名無しさん
2025/11/17(月) 16:02:02.11ID:Ip91Dbfz こういうデータリテラシーの低いやつらはRustじゃなくPythonでもやったほうがよさそう
714デフォルトの名無しさん
2025/11/17(月) 18:32:10.14ID:HSUpJzNx >>690
Rubyにもuvみたいなrvってのが作られてるね
Rubyにもuvみたいなrvってのが作られてるね
715デフォルトの名無しさん
2025/11/17(月) 19:01:46.89ID:vNXRFJJm716デフォルトの名無しさん
2025/11/17(月) 20:06:46.87ID:5au0Bd62 Rust文化が各言語のRust製ツールと共に各言語へ広がっていく
717デフォルトの名無しさん
2025/11/17(月) 23:07:50.41ID:ZrD1t19B718デフォルトの名無しさん
2025/11/18(火) 07:24:09.28ID:zkUX7uJh おもしろいじゃん
719デフォルトの名無しさん
2025/11/18(火) 09:35:50.76ID:7gHRjkAE >>707
ディズニーがRustを何に使うの?
ディズニーがRustを何に使うの?
720デフォルトの名無しさん
2025/11/18(火) 09:44:02.46ID:44PlOks7 配信系じゃないか
721デフォルトの名無しさん
2025/11/18(火) 09:45:19.44ID:R4KlmKwj 確かDisney+の配信フロントエンドがwasmでRustだったはず
722デフォルトの名無しさん
2025/11/18(火) 10:04:09.86ID:NUbx/bSt723デフォルトの名無しさん
2025/11/18(火) 10:26:47.98ID:0fATWgE4 年収15万~20万ドルかよ
724デフォルトの名無しさん
2025/11/18(火) 18:19:31.62ID:TiXA9NK+ ESP32 ArduinoからRust変換はおもろかった。
App、Domain、Infrastructure構造のDDDで作ったプロジェクトだけど、純粋仮想関数(interface)もInjectionもRust移行がこんなに簡単なのかと驚いたもんだ。
ValueObjectも不要になったし、いろいろDDDには最適な言語。
まぁ コンパイルは通ってもワーニングを無くす作業が大変だったのは言うまでもない。
ワーニングリストてんこ盛りでも動くところがなんだかなぁとはオモ。
Rustはオヌヌメだよ。 本当に。
App、Domain、Infrastructure構造のDDDで作ったプロジェクトだけど、純粋仮想関数(interface)もInjectionもRust移行がこんなに簡単なのかと驚いたもんだ。
ValueObjectも不要になったし、いろいろDDDには最適な言語。
まぁ コンパイルは通ってもワーニングを無くす作業が大変だったのは言うまでもない。
ワーニングリストてんこ盛りでも動くところがなんだかなぁとはオモ。
Rustはオヌヌメだよ。 本当に。
725デフォルトの名無しさん
2025/11/18(火) 21:33:50.31ID:9E8x7tFx 驚いた!
726デフォルトの名無しさん
2025/11/18(火) 23:38:02.37ID:hMgPiOc6 >>724
その手の問題のほとんどがクラスを捨ててトレイトを採用すると解決するよね
純粋仮想関数という奇妙な名前を含めた概念もトレイトの『実装必須メソッド』とそれらを用いた特定の型に依存しない『デフォルト実装提供メソッド』の二つに整理されると使いやすくわかりやすい
依存性の注入や逆転も『トレイトを利用する型々⇔トレイト⇔トレイトを実装する型々』と最初から分離されて対応している
Value Objectもどこまで何をやるかで多少変わるけど基本的にはラッパーにPartialEq/EqやClone/Copyそしてバリデーション付き生成のTryFromなど基本トレイトを必要なだけ実装していくだけで大方の対応ができる
その手の問題のほとんどがクラスを捨ててトレイトを採用すると解決するよね
純粋仮想関数という奇妙な名前を含めた概念もトレイトの『実装必須メソッド』とそれらを用いた特定の型に依存しない『デフォルト実装提供メソッド』の二つに整理されると使いやすくわかりやすい
依存性の注入や逆転も『トレイトを利用する型々⇔トレイト⇔トレイトを実装する型々』と最初から分離されて対応している
Value Objectもどこまで何をやるかで多少変わるけど基本的にはラッパーにPartialEq/EqやClone/Copyそしてバリデーション付き生成のTryFromなど基本トレイトを必要なだけ実装していくだけで大方の対応ができる
727デフォルトの名無しさん
2025/11/19(水) 00:21:53.18ID:IfvLhI2w iter().filter(...).map(...) みたいなのってデバッグ用のビルドだとすごく遅くない?
リリースビルドだと最適化されるんだろうけど、 デバッグ時のことを考えると要素数が大きい場合は普通に for で書いた方が良いんだろうか
リリースビルドだと最適化されるんだろうけど、 デバッグ時のことを考えると要素数が大きい場合は普通に for で書いた方が良いんだろうか
728デフォルトの名無しさん
2025/11/19(水) 04:26:37.69ID:VwytrS17 libxml2がメンテナー不在状態になっちゃったらしいけど
これってRust採用に有利に働くのでは?
しかも、最後のメンテナーが「セキュリティバグ満載の趣味プログラムだから製品に採用してる大企業の方がおかしい」とか言い出してる
ま、Rustからlibxml2呼んで使ってた人もいるかもしれんが
これってRust採用に有利に働くのでは?
しかも、最後のメンテナーが「セキュリティバグ満載の趣味プログラムだから製品に採用してる大企業の方がおかしい」とか言い出してる
ま、Rustからlibxml2呼んで使ってた人もいるかもしれんが
729デフォルトの名無しさん
2025/11/19(水) 08:24:12.23ID:R5nvtzxr730デフォルトの名無しさん
2025/11/19(水) 10:14:56.27ID:DEKdhoZN https://blog.cloudflare.com/18-november-2025-outage/#memory-preallocation
ふう
今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
ふう
今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
731デフォルトの名無しさん
2025/11/19(水) 10:38:40.48ID:VwytrS17732デフォルトの名無しさん
2025/11/19(水) 11:21:56.78ID:dZVJ1Iyu733デフォルトの名無しさん
2025/11/19(水) 11:50:56.97ID:GsWNWOPW そのままmainまで巻き戻ってエラー値でプロセス終了
panicじゃないからねって責任分散w
真面目に言語として対策するならResult::unwrap()をunsafeにする事だな
panicじゃないからねって責任分散w
真面目に言語として対策するならResult::unwrap()をunsafeにする事だな
734デフォルトの名無しさん
2025/11/19(水) 12:57:15.96ID:WcZFNgrM >>733
設定ファイルの読み出しでエラーなのだから、続行することが悪なのであって、panicもしくはmainでエラー値を返して終了のどちらでも正しい。
このプログラムの異常終了を検知して、然るべき自動対応もしくは人間へアラートを発生させることが通常のシステム運用だ。
設定ファイルの読み出しでエラーなのだから、続行することが悪なのであって、panicもしくはmainでエラー値を返して終了のどちらでも正しい。
このプログラムの異常終了を検知して、然るべき自動対応もしくは人間へアラートを発生させることが通常のシステム運用だ。
735デフォルトの名無しさん
2025/11/19(水) 16:36:17.53ID:a6iYqrEC >>733
unwrap()は必ずチェックをしてくれるsafeな関数
チェックをしないunwrap_unchecked()がunsafeな関数
後者はチェックが不要であることを人間が保証しなければいけない
unwrap()は必ずチェックをしてくれるsafeな関数
チェックをしないunwrap_unchecked()がunsafeな関数
後者はチェックが不要であることを人間が保証しなければいけない
736デフォルトの名無しさん
2025/11/19(水) 18:15:22.62ID:FpyXWrvw unwrap()じゃパニックした理由が分からんから、せめてexpect()を使うべきだったのでは?
737デフォルトの名無しさん
2025/11/19(水) 18:44:42.33ID:NvQTXkF4 >>730
>今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
こういうおバカな考え方をするやつにシステムプログラミングをさせてはいけない
絶対にダメ
>今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
こういうおバカな考え方をするやつにシステムプログラミングをさせてはいけない
絶対にダメ
738デフォルトの名無しさん
2025/11/19(水) 19:17:35.77ID:AEqphh7h そもそも「Rustを誤用した」箇所がないだろ
フェールセーフなシステム運用では異常時に異常なデータのまま動き続けることこそ最悪な惨事
パニックでプロセスが落ちてくれれば上位で必ず検知できてその対処ができる
フェールセーフなシステム運用では異常時に異常なデータのまま動き続けることこそ最悪な惨事
パニックでプロセスが落ちてくれれば上位で必ず検知できてその対処ができる
739デフォルトの名無しさん
2025/11/19(水) 19:18:38.06ID:Rm5s9Hvl Rcってスマートポインター自体はポインターとサイズ一緒で参照先にカウンターがあるんだよね
740デフォルトの名無しさん
2025/11/19(水) 22:57:00.67ID:CLMpOrw3741デフォルトの名無しさん
2025/11/19(水) 23:28:21.13ID:H9/nxH2R >>739
その通り
例えば64bit環境において
Rc<usize>はスタック上に64bit一つ分(ヒープを指す64bit)とヒープ上に64bit三つ分(強カウントと弱カウントとusizeの各64bit)
Rc<[usize]>はスタック上に64bit二つ分(ヒープを指す64bitと長さの64bit)とヒープ上に64bitが二つ+長さ分(強カウントと弱カウントと[usize])
つまりスタック側にスライスの長さ用で+1とヒープ側に強弱カウント用で+2
その通り
例えば64bit環境において
Rc<usize>はスタック上に64bit一つ分(ヒープを指す64bit)とヒープ上に64bit三つ分(強カウントと弱カウントとusizeの各64bit)
Rc<[usize]>はスタック上に64bit二つ分(ヒープを指す64bitと長さの64bit)とヒープ上に64bitが二つ+長さ分(強カウントと弱カウントと[usize])
つまりスタック側にスライスの長さ用で+1とヒープ側に強弱カウント用で+2
742デフォルトの名無しさん
2025/11/19(水) 23:50:27.39ID:H3eXqgcn まーたフェイク垂れ流してんなw
743デフォルトの名無しさん
2025/11/19(水) 23:59:17.25ID:3P61Qd+t 正しくても嘘だフェイクだと暴れるだけのおじさん
744デフォルトの名無しさん
2025/11/20(木) 02:07:52.80ID:ncYlBBwT ChromeはXSLT機能を廃止するらしい
件のlibxml2と同じ人がメンテしてて放棄されたlibxsltにセキュリティ問題があると見て
件のlibxml2と同じ人がメンテしてて放棄されたlibxsltにセキュリティ問題があると見て
745デフォルトの名無しさん
2025/11/20(木) 05:14:44.24ID:MGDS7leX Rustすごい!驚いた!
746デフォルトの名無しさん
2025/11/20(木) 10:18:35.91ID:9zm/YaRl Cloudflareの障害って半年前のGoogle Couldの障害と同じパターンじゃん
確か「Rustなら防げた」とかアホなこと言ってたやつがいたな
確か「Rustなら防げた」とかアホなこと言ってたやつがいたな
747デフォルトの名無しさん
2025/11/20(木) 10:22:16.48ID:syoVlbLx748デフォルトの名無しさん
2025/11/20(木) 10:47:57.16ID:9zm/YaRl749デフォルトの名無しさん
2025/11/20(木) 11:21:06.60ID:syoVlbLx >>748
バックトレースでわかる、落ちたソース行と変数がわかっててもそれなりに調査がいる部位で
ここが落ちた原因はこのファイルです!加えてこのファイルがおかしい理由はこれです!って
人間様なら事前に言えるのかって話だけど・・・。しかも全てのunwrapで
バックトレースでわかる、落ちたソース行と変数がわかっててもそれなりに調査がいる部位で
ここが落ちた原因はこのファイルです!加えてこのファイルがおかしい理由はこれです!って
人間様なら事前に言えるのかって話だけど・・・。しかも全てのunwrapで
750デフォルトの名無しさん
2025/11/20(木) 12:03:26.09ID:21pecUNF751デフォルトの名無しさん
2025/11/20(木) 12:37:12.92ID:k44P4Y1f752デフォルトの名無しさん
2025/11/20(木) 14:34:42.78ID:MlUTgZBl >>749
要するにバックトレースでは不十分だったということ
expectのメッセージがあれば解決がかなり早まった可能性が高い
ただ外部データを読み込んでその妥当性をチェックした結果のResultなんだからパニックさせるのが論外
要するにバックトレースでは不十分だったということ
expectのメッセージがあれば解決がかなり早まった可能性が高い
ただ外部データを読み込んでその妥当性をチェックした結果のResultなんだからパニックさせるのが論外
753デフォルトの名無しさん
2025/11/20(木) 14:38:44.38ID:MlUTgZBl 今回も前回もアホなこと言ってるやつは同じだね
https://mevius.5ch.net/test/read.cgi/tech/1748392296/807-n
https://mevius.5ch.net/test/read.cgi/tech/1748392296/807-n
754デフォルトの名無しさん
2025/11/20(木) 19:55:50.61ID:xKPp4vJ3 >>752
みんながパニックさせるのを正解と言ってるのに一人だけパニックさせるのが論外と主張するからには代案を書きなさいよ
みんながパニックさせるのを正解と言ってるのに一人だけパニックさせるのが論外と主張するからには代案を書きなさいよ
755デフォルトの名無しさん
2025/11/20(木) 20:59:55.94ID:3WAFNuDQ >>730
Rustに投資するマネジメント層からすれば、
「想定可能なケースでpanicするな」「終了するなら理由を明らかにしろ」「終了した後のことを考えろ」
あたりだよなぁ。
panicなんてシステムが異常になるレベルで初めて使うことを考えるようなもの。
コーダーには触らせたくないから、SafeRustはpanic禁止でいいと思うわ。
Rustに投資するマネジメント層からすれば、
「想定可能なケースでpanicするな」「終了するなら理由を明らかにしろ」「終了した後のことを考えろ」
あたりだよなぁ。
panicなんてシステムが異常になるレベルで初めて使うことを考えるようなもの。
コーダーには触らせたくないから、SafeRustはpanic禁止でいいと思うわ。
756デフォルトの名無しさん
2025/11/20(木) 21:09:11.15ID:vBNaAq/W ワイも unwrap は論外と思うやで。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが unwrap の役割だろ。
失敗がないはずのところで失敗したならそれはロジックに誤りがあったということ。
つまりはバグだ。
プログラムにバグを書くのが正しいってことはない。
でも panic するのは正しいかもしれない。 (公開情報だけでは断言はできないけど。)
正しくないデータに対してプログラムが回復する余地がないなら終了するしか仕方ないし、
その問題にどう対処するかは運用の問題なので必要なログを残した上で終了するのは正しい。
特に今回の事例はメモリまわりの制御が絡んでいるということがある。
メモリが足りないままで続けるとあらたにメモリが必要な状況が生じて破綻するかもしれない。
エラーを返して上位レイヤで判断するのはロジック的には綺麗だがリソース不足の状況ではそうも言ってられない。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが unwrap の役割だろ。
失敗がないはずのところで失敗したならそれはロジックに誤りがあったということ。
つまりはバグだ。
プログラムにバグを書くのが正しいってことはない。
でも panic するのは正しいかもしれない。 (公開情報だけでは断言はできないけど。)
正しくないデータに対してプログラムが回復する余地がないなら終了するしか仕方ないし、
その問題にどう対処するかは運用の問題なので必要なログを残した上で終了するのは正しい。
特に今回の事例はメモリまわりの制御が絡んでいるということがある。
メモリが足りないままで続けるとあらたにメモリが必要な状況が生じて破綻するかもしれない。
エラーを返して上位レイヤで判断するのはロジック的には綺麗だがリソース不足の状況ではそうも言ってられない。
757デフォルトの名無しさん
2025/11/20(木) 21:24:39.80ID:W1oxwi29 >>756
Again, the limit exists because for performance reasons we preallocate memory for the features.
だから、コーダーでもコントロール可能な範囲じゃない?
こんなんじゃリーナスじゃなくてもpanic禁止言いたくなるわな。
Again, the limit exists because for performance reasons we preallocate memory for the features.
だから、コーダーでもコントロール可能な範囲じゃない?
こんなんじゃリーナスじゃなくてもpanic禁止言いたくなるわな。
758デフォルトの名無しさん
2025/11/20(木) 21:39:21.39ID:lwx9Ifqo759デフォルトの名無しさん
2025/11/20(木) 21:50:20.55ID:H4pjbMpd これは普通にpanicで正解でしょ
メモリを固定ではなくfeatureファイルに合わせて動的アロケーションするようにしていれば即障害にはならなかっただろうけど、
それはunwrapの是非とかの次元の話じゃないし、複おじの頭はそこまで回らないだろう
メモリを固定ではなくfeatureファイルに合わせて動的アロケーションするようにしていれば即障害にはならなかっただろうけど、
それはunwrapの是非とかの次元の話じゃないし、複おじの頭はそこまで回らないだろう
760デフォルトの名無しさん
2025/11/20(木) 21:50:58.54ID:ao6/JbGK 続行不可能なのだからどこかで必ずpanicすることになる
C言語ならexit(non-0)
Rustはもっと賢いpanicがありそれを使う
他に手はない
C言語ならexit(non-0)
Rustはもっと賢いpanicがありそれを使う
他に手はない
761デフォルトの名無しさん
2025/11/20(木) 21:56:43.11ID:uDj2zLmM 続行可能なら上位へエラーを返せばいいんだよね
続行不可能なら上位へエラーを返すより即panicさせるのが正しいよ
その方がバックトレース的にも有利
続行不可能なら上位へエラーを返すより即panicさせるのが正しいよ
その方がバックトレース的にも有利
762デフォルトの名無しさん
2025/11/20(木) 22:04:24.95ID:A4EEH+q2 続行可能/不可能はコーダーが判断することではないよ。ふつうにエラーを返せ。
763デフォルトの名無しさん
2025/11/20(木) 22:09:40.31ID:uDj2zLmM764デフォルトの名無しさん
2025/11/20(木) 22:18:59.74ID:H4pjbMpd >>762
起動時に必要なデータなんだろうから、エラー返したところで上位でもどうしようもないでしょ
仮にエラーを無視してそのまま起動させたとして、不正な状態だからってリクエストを5xxで落とすのはまずいのはさすがに分かるよな?
Bot Managementというのがどれだけ重要なのかは知らないけど、
最悪それが機能してなくてもいいならエラー無視してそのモジュールの処理だけ飛ばすのは結果論としてはアリだったかも
でもそれ言い出したら極論何でもかんでもフェールソフトにしなきゃいけないから、それこそゆるふわ設計になりすぎてRustのメリットが薄れちゃうよ
起動時に必要なデータなんだろうから、エラー返したところで上位でもどうしようもないでしょ
仮にエラーを無視してそのまま起動させたとして、不正な状態だからってリクエストを5xxで落とすのはまずいのはさすがに分かるよな?
Bot Managementというのがどれだけ重要なのかは知らないけど、
最悪それが機能してなくてもいいならエラー無視してそのモジュールの処理だけ飛ばすのは結果論としてはアリだったかも
でもそれ言い出したら極論何でもかんでもフェールソフトにしなきゃいけないから、それこそゆるふわ設計になりすぎてRustのメリットが薄れちゃうよ
765デフォルトの名無しさん
2025/11/20(木) 23:12:52.86ID:eUKDlPgK もっと簡単にエラー科研のこやつは
766デフォルトの名無しさん
2025/11/20(木) 23:13:07.19ID:eUKDlPgK アプデで改善しーやー
767デフォルトの名無しさん
2025/11/20(木) 23:13:24.18ID:eUKDlPgK もう普通にtry catchでええ
768デフォルトの名無しさん
2025/11/20(木) 23:13:43.88ID:c/hk2jJw Rustのプログラム開発デバッグそして運用実行時の問題発生で最も役立つ仕組みがpanicなのにそれを理解しないでpanicを毛嫌いしてる人がいる不思議~
769デフォルトの名無しさん
2025/11/20(木) 23:38:50.21ID:bMsqNQja >Rustのプログラム開発デバッグそして運用実行時の問題発生で最も役立つ仕組み
具体的になんの開発時にそう感じたの?
具体的になんの開発時にそう感じたの?
770デフォルトの名無しさん
2025/11/21(金) 02:04:51.36ID:iIZE15hu771デフォルトの名無しさん
2025/11/21(金) 02:19:37.89ID:bQYXRKni >>764
公式は以下があるべき姿と見ているようだが
>Remediation and follow-up steps
>Remediation and follow-up steps
>Now that our systems are back online and functioning normally, work has already begun on how we will harden them against failures like this in the future. In particular we are(今後同様の障害が発生した場合に備え、以下を重点とするシステムを強化する取り組みに着手):
> - Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input(内部生成データも外部入力と同じレベルで検証)
> - Enabling more global kill switches for features(特定の機能を無効化する仕組みに拡大、例:「ボット管理構成を正常だったバージョンにロールバック」「ボット管理システムの停止」)
> - Eliminating the ability for core dumps or other error reports to overwhelm system resources(コアダンプやエラーレポートによって圧迫されるのを防ぐ、システム、アプリケーションでの制御)
> - Reviewing failure modes for error conditions across all core proxy modules(エラー状態の障害モードを見直す)
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.(今回のような障害は容認できない、耐障害性の高い新しいシステムを構築するきっかけとなった)
https://blog.cloudflare.com/18-november-2025-outage/#remediation-and-follow-up-steps
>>768
そんなのサービス要件、用途、場面次第では
そもそもエラーの可能性を含意するResultを返していることを意にも介さず、ハンドリングしないのは言語の思想にもとるかと
パニックの好悪ではなく、サービス要件、場面に対してミスマッチだと指摘されているのでは
公式は以下があるべき姿と見ているようだが
>Remediation and follow-up steps
>Remediation and follow-up steps
>Now that our systems are back online and functioning normally, work has already begun on how we will harden them against failures like this in the future. In particular we are(今後同様の障害が発生した場合に備え、以下を重点とするシステムを強化する取り組みに着手):
> - Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input(内部生成データも外部入力と同じレベルで検証)
> - Enabling more global kill switches for features(特定の機能を無効化する仕組みに拡大、例:「ボット管理構成を正常だったバージョンにロールバック」「ボット管理システムの停止」)
> - Eliminating the ability for core dumps or other error reports to overwhelm system resources(コアダンプやエラーレポートによって圧迫されるのを防ぐ、システム、アプリケーションでの制御)
> - Reviewing failure modes for error conditions across all core proxy modules(エラー状態の障害モードを見直す)
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.(今回のような障害は容認できない、耐障害性の高い新しいシステムを構築するきっかけとなった)
https://blog.cloudflare.com/18-november-2025-outage/#remediation-and-follow-up-steps
>>768
そんなのサービス要件、用途、場面次第では
そもそもエラーの可能性を含意するResultを返していることを意にも介さず、ハンドリングしないのは言語の思想にもとるかと
パニックの好悪ではなく、サービス要件、場面に対してミスマッチだと指摘されているのでは
772デフォルトの名無しさん
2025/11/21(金) 02:41:53.57ID:7QFg1F5C panic禁止派がいるからでしょ
結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
773デフォルトの名無しさん
2025/11/21(金) 03:02:34.17ID:aQgyxReD panic禁止派って、正常な関数だと辿りつかない状態になったらどうすんの?
anyhowとかでthis is bugとかって返すの?
anyhowとかでthis is bugとかって返すの?
774デフォルトの名無しさん
2025/11/21(金) 03:12:36.25ID:BgHvS9/N それを議論して何か自分のためになることがあると思うの?
775デフォルトの名無しさん
2025/11/21(金) 03:19:36.71ID:szwMnzU9 てかたまに思うんだけどエラー処理てif文でよくね?
776デフォルトの名無しさん
2025/11/21(金) 04:06:05.39ID:bmEBh7Lw777デフォルトの名無しさん
2025/11/21(金) 06:09:46.10ID:pxhgH2KX 日本語翻訳があるんだから、少しは元記事に目を通せや。
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
cloudflareはエラーハンドリングに失敗して原因追求できずに大規模DDoS攻撃と誤認したんだろ。
このケースでpanicが正しかったとはとても思えない。
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
cloudflareはエラーハンドリングに失敗して原因追求できずに大規模DDoS攻撃と誤認したんだろ。
このケースでpanicが正しかったとはとても思えない。
778デフォルトの名無しさん
2025/11/21(金) 07:16:25.89ID:z62qyAHj 現場コーダー(ここでエラーハンドリングしたらそのぶんテストしなきゃいけないな。
でも今日は早めに帰って家でゲームしたいんだよね。うーん…怖いけどunwrapするか。
なーに、下っ端は仕様書の前提をただ信じればいいだけさ。これでよし、帰ろっと。)
53日後…ウェブが死んだ
でも今日は早めに帰って家でゲームしたいんだよね。うーん…怖いけどunwrapするか。
なーに、下っ端は仕様書の前提をただ信じればいいだけさ。これでよし、帰ろっと。)
53日後…ウェブが死んだ
779デフォルトの名無しさん
2025/11/21(金) 07:27:20.23ID:YVVnWYXM >>773
「設計通りあれば辿り着きえない」なら assert や unreachable じゃないの?
expected でも良い
これは「どうエラーをハンドルするか」という問題ではなく「ソースコードの読み手に対し設計者の意図をどのように表明するか」という話な気もする
「設計通りあれば辿り着きえない」なら assert や unreachable じゃないの?
expected でも良い
これは「どうエラーをハンドルするか」という問題ではなく「ソースコードの読み手に対し設計者の意図をどのように表明するか」という話な気もする
780デフォルトの名無しさん
2025/11/21(金) 07:46:53.00ID:5wtRNmya781デフォルトの名無しさん
2025/11/21(金) 08:17:21.30ID:m9VdLfOa >>777
後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
Googleも最近似たようなことやらかしてるんだからな
絶対に必要不可欠というわけでもなさそうな処理だが、かといって内部のパラメータさえ適切に設定されていれば無難に動くものなんだろうから、
こうした状況に対処するための設計上の強力なポリシー(おそらく今回のトラブルをきっかけに策定される)がない限り、
それが安易にクリティカルパスに組み込まれてしまうことは仕方ないように思える
逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
Googleも最近似たようなことやらかしてるんだからな
絶対に必要不可欠というわけでもなさそうな処理だが、かといって内部のパラメータさえ適切に設定されていれば無難に動くものなんだろうから、
こうした状況に対処するための設計上の強力なポリシー(おそらく今回のトラブルをきっかけに策定される)がない限り、
それが安易にクリティカルパスに組み込まれてしまうことは仕方ないように思える
逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
782デフォルトの名無しさん
2025/11/21(金) 09:00:31.31ID:P6+MwwhU783デフォルトの名無しさん
2025/11/21(金) 09:04:46.72ID:XNdnsjIs784デフォルトの名無しさん
2025/11/21(金) 09:27:12.92ID:7pvsHy8Q785デフォルトの名無しさん
2025/11/21(金) 09:34:42.48ID:TUdbr/Fo786デフォルトの名無しさん
2025/11/21(金) 09:52:08.85ID:aGwiM0lE >>772
>結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
Resultを上位に伝播させるのも面倒だし伝播させた後の対応も面倒だから雑にpanicで終了させましょうという話だな
こう考えるやつが少なからずいるようならRustを使う開発者の能力の問題だけでなくRust自身の問題ということになる
>結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
Resultを上位に伝播させるのも面倒だし伝播させた後の対応も面倒だから雑にpanicで終了させましょうという話だな
こう考えるやつが少なからずいるようならRustを使う開発者の能力の問題だけでなくRust自身の問題ということになる
787デフォルトの名無しさん
2025/11/21(金) 10:02:37.01ID:eVGGGIM3 想定可能なエラーでも続行不能ならpanicさせてバックトレース見ましょうみたいな運用がCloudflareの規模で成り立つわけないのにね
性能要件的にバックトレース無効にしてる可能性もある
性能要件的にバックトレース無効にしてる可能性もある
788デフォルトの名無しさん
2025/11/21(金) 10:16:37.50ID:z62qyAHj とにかく全部ハンドリングしようぜ
あらゆるケースを想定するべきだ
あらゆるケースを想定するべきだ
789デフォルトの名無しさん
2025/11/21(金) 10:30:47.14ID:aLBJCcru 設定に異常値が紛れ込んでもpanicで止めたくないならunwrapをunwrap_or_defaultあたりに替えとけばいいよ
とりあえず動く
とりあえず動く
790デフォルトの名無しさん
2025/11/21(金) 11:56:46.17ID:x3e9+uyj >>779
横からだがこの議題でpanicと呼ばれていることはpanic!を引き起こすassert!やunreachable!やexpectなどの総称でしょう
横からだがこの議題でpanicと呼ばれていることはpanic!を引き起こすassert!やunreachable!やexpectなどの総称でしょう
791デフォルトの名無しさん
2025/11/21(金) 11:59:34.90ID:x3e9+uyj792デフォルトの名無しさん
2025/11/21(金) 12:10:50.33ID:Bq7cxlpS 今回のCloudflareの件で言うとあそこでpanicさせなかったら
事前に確保したより大きなメモリ確保しようとしてプロセスがランダムにkillされたり
より意味不明な事態になったかもね
事前に確保したより大きなメモリ確保しようとしてプロセスがランダムにkillされたり
より意味不明な事態になったかもね
793デフォルトの名無しさん
2025/11/21(金) 12:38:52.46ID:kvfum7jC panic肯定派は色々と分かっていないなぁ。
「続行不能ならpanicさせて緊急停止させるべき」というなら、緊急停止させた後のことも考えて状況を制御しろ。panicさせた後のことは分からん、と言うのならpanicさせるな。
それすら思いつかない無能コーダーが大半なんだから、無能コーダー向けのsafe rustはpanic禁止すべき。
「続行不能ならpanicさせて緊急停止させるべき」というなら、緊急停止させた後のことも考えて状況を制御しろ。panicさせた後のことは分からん、と言うのならpanicさせるな。
それすら思いつかない無能コーダーが大半なんだから、無能コーダー向けのsafe rustはpanic禁止すべき。
794デフォルトの名無しさん
2025/11/21(金) 12:52:05.82ID:bQYXRKni >>792
>Enabling more global kill switches for features
障害発生時の構えとして特定機能(今回でいうならボット管理)を無効化する考えを公式が示しているわけで
すなわちこれが本来あるべき姿、「unwrap任せで勝手にpanicする」のはネットワークインフラを提供する側としてありえない設計であると言っているのもしかりでは
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
>Enabling more global kill switches for features
障害発生時の構えとして特定機能(今回でいうならボット管理)を無効化する考えを公式が示しているわけで
すなわちこれが本来あるべき姿、「unwrap任せで勝手にpanicする」のはネットワークインフラを提供する側としてありえない設計であると言っているのもしかりでは
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
レスを投稿する
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 【岸田朗報】鰻(ウナギ)、ガチで3年以内に1匹1000円以下へ!!!! [782460143]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 習「中国とアメリカは軍国主義(日本)を倒した仲間。勝利の成果を守るために協力すべきだ」とトランプに呼び掛け。高市早苗、終了。 [153490809]
- スキルス胃がんってあるじゃん?
- めざましテレビのお天気お姉さん、カリカリ [809488867]
- 上司「コンビニでバナナオレとおにぎり3つ買ってきて。具は任せる」←何が正解?
