Rust part33

1デフォルトの名無しさん
垢版 |
2025/08/15(金) 17:49:30.70ID:N8TIzbWg
公式
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/
2025/11/21(金) 13:18:58.19ID:x3e9+uyj
>>794
panicは必要不可欠なものだという話をしている
unwrapでpanicしろなんて話はしていない

>>794
Cliudflareの話はしていない
panic禁止すべき!と書き込む頭のおかしい人がいるから話をしている
2025/11/21(金) 13:22:16.60ID:aLBJCcru
>>791
上位でcatch_unwindはしてると思うけど延々と同じ異常値使ってpanic繰り返してた感じでしょ
自分もpanicで抜ける方が正しいと思うけどこれだけpanicに文句言う人が多いなら異常値無視して動かした方がよくね?
設定無視しても多少セキュリティに穴が開く程度だろうし
2025/11/21(金) 13:35:17.28ID:bQYXRKni
>>795
安価付けてレスをするならせめて当該のレスツリーくらい把握されては
こちらが指摘かました >>792 氏は明確に今回のCloudflareに言及している
したがって「panicの要否」ではなく、「panicの適否」に対するそれなわけであり
「unwrapでpanicしろなんて話はしていない」んじゃなくって、今回当該サービスにおいてそうした実装がされていたんだよ現実に
その上で「panic禁止すべき!と書き込む頭のおかしい人」への反論をしたいのであれば、くだんのCloudflare大規模障害を文脈に含むレスに安価かますのは筋違いかと
2025/11/21(金) 13:54:38.91ID:x3e9+uyj
すまんな
何らかのミスでアンカが1つずれてた
>>794でなく>>793へのレス
2025/11/21(金) 14:11:04.02ID:bQYXRKni
おーらい
2025/11/21(金) 14:57:18.03ID:fa/ssAob
unwrapがあったらリリースビルドが失敗するようにしてほしいよね
801デフォルトの名無しさん
垢版 |
2025/11/21(金) 15:31:33.26ID:xINfobxx
rustのdrop traitってメモリー解放前の前処理を記述する場所で
dorpはメモリーを開放するというのは違うよね
2025/11/21(金) 15:53:54.77ID:G3R9bFuG
drop は明示的に呼出し (いわゆる早期 drop) てもそれ自体がメモリを解放するとは限らないが、言語機能と融合している特別なトレイトなのでメモリの解放のタイミングに影響を与えることはありうる。
2025/11/21(金) 23:25:47.85ID:auLVIhoC
redditからの借り物
https://i.imgur.com/oEZoQJd.png
2025/11/21(金) 23:56:05.84ID:kB1g97LF
そんなもんだ
過去を引きずる案件以外でC++を使う人は消えていく
2025/11/22(土) 00:16:12.45ID:Z+ns1hWs
こんなもん完成に用途によるだろ
実際にそれ系本場の組み込みとかでの普及率こそ指標とするべきではないの?
2025/11/22(土) 00:17:49.35ID:Z+ns1hWs
❌完成に
⭕完全に
2025/11/22(土) 00:18:35.18ID:VyR9oLxq
updateもカウント

https://www.reddit.com/r/rust/comments/1p2tfi1/media_new_releases_on_pypi_rust_vs_cc/
> But… I’m interested in those subsequent updates.
2025/11/22(土) 01:07:20.55ID:iexvlmA9
>>789
>設定に異常値が紛れ込んでもpanicで止めたくない
入力値と設定そのものを混同してるよね?
設定に反映させるために読み込んだ入力値が必須条件を満たしてないだけであってアプリの振る舞いを左右する設定自体に異常値が紛れ込んでいるわけではないよ
809デフォルトの名無しさん
垢版 |
2025/11/22(土) 05:50:44.36ID:6IzbV+e7
クラウドフレアでのやらかしでrustも失墜だね
2025/11/22(土) 05:58:51.95ID:CapHAAXn
遅くて安全じゃないって最悪じゃん
811デフォルトの名無しさん
垢版 |
2025/11/22(土) 07:02:46.20ID:Hhj8j98Q
>>795
>793への返信かね。
panicは大多数のコーダーには不要で有害だという話をしている。
unwrapでpanicするようなコーダーには触れないようにしろという話だよ。
2025/11/22(土) 07:04:22.51ID:IiIf7f1d
>>809
安全性が示されただろ
どこに危険な問題があったんだ?
813デフォルトの名無しさん
垢版 |
2025/11/22(土) 08:36:23.79ID:TcBJjde/
>>811
Mutex使用禁止ということか
2025/11/22(土) 08:57:51.52ID:m6/1q0Jm
>>812
安全性が反面、可用性とはトレードオフであることも示されたのかと
サービスの性格を正確に理解しないまま、言語の持つ安全性を盲信することは容易に問題となりうることも
2025/11/22(土) 10:11:24.12ID:YjCm7wO7
>>813
それは皮肉でもなんでもなくて、Mutexのlock().unwrap()は実際panicするからpanic厳禁派なら絶対NGよ
matchでlockの結果をチェックしないとダメ
2025/11/22(土) 11:09:17.53ID:2DsIii2D
Rustのunwrap()というのはそもそも前提が壊れたらpanicするイディオムであるので、
もしpanic厳禁派を標榜するならケースバイケースで使っていいものではなく絶対にソースコード上に登場させてはならない
2025/11/22(土) 12:33:52.35ID:TG+W7F+c
unwrapの使い方なんてrustユーザー側の設計思想やリスク管理に依るものであって、結局は開発組織の質の問題よ
2025/11/22(土) 12:59:01.17ID:W9tILc9J
unwrapの間違った使い方をしたり間違った使い方を正しいと思い込んでる人がこれだけいるんだから開発組織の質の問題として片付けられないよ

Rustの構造的な問題と言っていい
2025/11/22(土) 13:01:14.64ID:GfzAj2LS
>>814
安全性と可用性は両立ができる
両立が不可能なことは例えば分断時の可用性と一貫性など
2025/11/22(土) 13:03:18.34ID:GfzAj2LS
>>818
unwrap自体に間違った使い方なんてものはないよ
常に安全に用いることができる
2025/11/22(土) 13:34:45.55ID:m6/1q0Jm
>>819
>両立ができる

「言語の持つ安全性を盲信することは容易に問題となりうること」を理解した上でそれらをどこまで両立させるかの見極めこそが、まさに設計の要では
両者がトレードオフであることを意識してこそ妥協点が見えるわけであり
でなくばいずれは一方が他方の隘路になるのかと
際限のない両立などに再現性はあるまいて
2025/11/22(土) 14:08:27.01ID:HvD57uvC
unwrapとかシンプルすぎて誤用の余地ないだろ
2025/11/22(土) 14:16:46.80ID:iWDV6POw
unwrapは未定義動作を生じないという意味においては安全
その結果として自動運転車が人混みに突っ込んだり原子炉がメルトダウンしたりしないことを保証するものではない
2025/11/22(土) 14:55:39.41ID:W1QChhvL
分かってない人が多いけど、unwrap_or_default で安全サイドなデフォルト値で動かせば絶対に問題なんて起きないんだが
そのための設計だし初期値で動かないとしたらそもそも設計ミス
単にunwrap使ってそのままというのはダメ。世の中急に止めたら復旧大変なシステムとかもあるんでね
2025/11/22(土) 15:08:23.48ID:H7KzHlst
ResultやOptionを返す関数を使用する前にそれがエラーやNoneになるようなケースがチェック済みで、改めて不要なエラー処理を書くのが面倒な時くらいかな、 unwrap を使うのは
2025/11/22(土) 15:29:04.79ID:udVmyb6K
>>824
Mutexでunwrap_or_defaultを使う状況は俺にはちょっと思いつかないな
2025/11/22(土) 16:34:26.43ID:MIiCzofv
>>822
これ見て久しぶりに思い出した
設計と実装の食い違いがあったら「この実装なら設計意図はこうであったはずだ、よって実装は正しい」とか言い出すような奴だった
そりゃあ誤用だなんて認められるわけないし話が通じるはずもないわな
2025/11/22(土) 16:52:31.93ID:j8/gV38c
安全性を考えれば#[no_panic]的なものがあったほうがいいのは間違いない
だがRustで実現するのはもう不可能だろうから次の言語に期待する
2025/11/22(土) 18:45:43.86ID:xjdWzo5J
パニックにならずに落ち着いて死ぬような言語がほしいよな
2025/11/22(土) 19:04:52.97ID:JQXO3OU6
unwrapを禁止するようなコーディング規約ないの?
2025/11/22(土) 19:42:01.39ID:4rTcW/kk
unwrap()は必ずチェックをしてくれるsafeな関数
unwrap_unchecked()がチェックをしないunsafeな関数
後者はチェックが不要であることを人間が保証する形で用いる
2025/11/22(土) 20:40:38.59ID:HvD57uvC
unwrap禁止の次はassertとかunreachableも禁止とか言い出しそうだな

let value = match opt_value {
Some(value) => value,
None => unreachable!(),
};
2025/11/22(土) 21:12:35.60ID:vyXuY/G9
不定値や未定値や異常値のままプログラムが進まないように
プログラムを安全に停止させるために確実にチェックしてくれるunwrap()がある
これを危険扱いする人がいるとは呆れる
2025/11/22(土) 22:13:14.17ID:uzDjtnGz
相手にされない三連休に三連投 by 複おじ
2025/11/22(土) 23:23:19.76ID:IVuDBUhf
>>824
頭おかしい
そんなデタラメなプログラミングするやつがいたらクビ
エラー時は上へ上げるかpanicのどちらか
2025/11/23(日) 03:30:04.39ID:Ff/3hvXU
>>835
そんなデタラメなプログラミングとは?

エラーを上へ上げた後どうするの?
panicさせた後どうするの?
2025/11/23(日) 04:50:26.53ID:BHgpzqsU
Rustとしてvalidであるかどうか以外興味がないので知りません
2025/11/23(日) 05:34:23.83ID:PnhKXlJE
> Rustに関してどう思ってますか?
> 正直C++から逃げた人たちが使ってる言語ってイメージですね
2025/11/23(日) 07:29:25.08ID:GChC/JkO
?でエラーを上に投げて最上部でunwrapしたときにパニックして途中のスタックトレース取れないんだけどどうしたらええの?
2025/11/23(日) 09:48:44.88ID:YVm57Y35
unwrap は実質的に assert だよ。
ロジック的に失敗するはずがないのに失敗したならその場でパニックさせるべき。
そしてプログラムを修正すべき。

巨大なシステムを突然死させるわけにいかないような場合にどうしても継続するなら最後までなんとかハンドリングしろ。
中途半端に上まで上げてから unwrap とかクソみたいなことをしたらもうどうしようもない。
2025/11/23(日) 10:01:30.46ID:tHBK63qU
いやいやいや
ヤベェやつしかいねーな
2025/11/23(日) 10:07:23.20ID:FUNf3ZwY
外部リソースをオープンしていたら、終了時にできる限りクローズさせるべきで、
エラーを上に上げるというのはクローズ処理までエラーを届かせるということ

panicさせる前にクローズ処理を呼び出すでもいいけど、大抵はクローズ処理を行うポイントは決まっていて、内部ロジックのあちこちで呼び出していいなんてことにはなっていないから、そのポイントまでエラーを届けることが必要になる

外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
2025/11/23(日) 10:21:09.71ID:n/KY4xZ8
とんでもないプログラマーしかいないなこのスレ
システムは何があっても止めちゃダメなんだよ、不具合があるのは多くの場合は外部とのインターフェースなんだが、いちいち外部からのリクエストの不整合で止めたりしたら客先から鬼電来るの知らんのか?

とりあえず、デフォルト値でもいいから動き続けて様子を見てもらいつつ、その間に詳細な調査をするっていう帳尻合わせや時間稼ぎがないとフィールドのエンジニアからガンガンに怒られるよ

エラーの伝播はそりゃやりゃできればいいが、ログに痕跡残すだけでいいじゃろ。工夫しろ、規模が大きくなればなるほど確率的に何か障害は起きやすくなるけど全部バグを直さなくてもそれなりに動くシステムが健全なシステムだぞ
2025/11/23(日) 10:24:31.62ID:W+o2V/Ez
意図を明示するなら unwrap は是
意図を隠蔽するなら unwrap は非
2025/11/23(日) 10:33:12.45ID:FUNf3ZwY
>>843
障害の内容とシステム構成によるよ
2025/11/23(日) 11:01:41.72ID:lSbx7jjN
>>842
panicでもデストラクタは呼ばれるから心配すんな
機構は例外と同じだ

https://doc.rust-lang.org/nomicon/unwinding.html

Unwinding

Rust has a tiered error-handling scheme:

If something might reasonably be absent, Option is used.
If something goes wrong and can reasonably be handled, Result is used.
If something goes wrong and cannot reasonably be handled, the thread panics.
If something catastrophic happens, the program aborts.

Option and Result are overwhelmingly preferred in most situations, especially since they can be promoted into a panic or abort at the API user's discretion. Panics cause the thread to halt normal execution and unwind its stack, calling destructors as if every function instantly returned.
2025/11/23(日) 11:13:39.06ID:FdXSQ6Mu
Cloudflareとかだとabortにしてると思うんだよな
2025/11/23(日) 11:21:43.98ID:FdXSQ6Mu
>>842
>外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
>あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
自分しか使わない趣味のプログラムならそれでいいけど
それ以外のプログラムでそんな雑なpanicしたらダメだよ
2025/11/23(日) 11:36:16.03ID:Up/nW61P
>>848
これな、プログラマー気取ってるけど要件定義すら怪しい人しかいないよここ
Rust以前の問題かもな。ム板なのに
2025/11/23(日) 11:38:31.64ID:FUNf3ZwY
>>848
そうですか、ではなぜダメなのかをご教授ください
2025/11/23(日) 12:17:14.82ID:BHgpzqsU
雑魚のくせにテキトーなこと書いて複おじを調子づかせないでよ〜
2025/11/23(日) 12:36:29.44ID:FdXSQ6Mu
>>850
なぜダメなのかはCloudflareの障害事例を見たらわかるでしょ

原則としてpanicを発生させるコードが許されるのは
サービスを停止してでもプログラムコードのバグ修正が必要な状況のみ
2025/11/23(日) 12:46:55.64ID:S9L/cvUF
対象コードのレビュー履歴を見てみたい
「なんか雑な気もするけどまあいいか」的なやり取りがあったりしたのかも

同様に件のファイルサイズ上限値の妥当性についても
2025/11/23(日) 12:54:45.11ID:W+o2V/Ez
旧アーキからエイヤとコピーした際に意図なく混入しただけなオチ
2025/11/23(日) 13:02:01.49ID:W+o2V/Ez
現に旧アーキ側ではくだんの障害によるクラッシュなどはしておらず
ただし、すべてのトラフィックに対しボット判定かましてしまい、正規のアクセスまでもがブロックされてしまったわけだが
2025/11/23(日) 13:33:21.85ID:9zNPJk7D
問題なく動いてるフリさせといて異動でバイバイが有能だよ
2025/11/23(日) 13:36:27.63ID:V3sZ/SAP
>>843
>>とりあえず、デフォルト値でもいいから動き続けて

そんな酷いシステムはない
まずほとんどの場合にデフォルト値は存続しない
858デフォルトの名無しさん
垢版 |
2025/11/23(日) 13:39:21.27ID:4nuItE/E
誰か>793にまともな反論できんのかな。

panicはプログラム緊急停止という重大な結果をもたらすから、緊急停止した後のことを制御できないなら使うべきじゃない。
このスレみたいに、それすら思いつかない無能コーダーが多いんだから、Safe Rustはpanic禁止すべき。
2025/11/23(日) 13:55:54.10ID:Mgu/JJm0
>>858
キチガイだな
誰も賛同しない相手にされない
その意見が通ることはない
2025/11/23(日) 14:14:22.85ID:FUNf3ZwY
>>852
Cloudflare って
>外部リソースへのアクセスがないロジックだけのプログラム
なの?
2025/11/23(日) 15:06:02.14ID:um5S+wK/
んなわけない
>外部リソースへのアクセスがないロジックだけのプログラム
そんなものは存在しないというか、作ることは可能だが実用上存在意義がない
2025/11/23(日) 15:11:25.84ID:DNsCraN8
>>860
>>842で君が書いてるのはpanicを発生させる時に外部リソースをオープン中で
クローズ処理などのリソース開放処理が必要な状態のプログラムという意味じゃないの?

そういう意味じゃないとすると外部入出力が一切ないプログラムなんて存在しないから
君の主張する「いきなりpanicで落としても問題ない」プログラムは存在しえないことになる
2025/11/23(日) 15:17:59.59ID:DNsCraN8
>>858
panic禁止は現実的に無理なんだけどunwrapの使用はclippyでかなり制限できるみたい
特に#![forbid(unwrap_in_result)]は使ったほうがいい気がしてきた
2025/11/23(日) 15:21:17.45ID:DNsCraN8
正しくは #![deny(unwrap_in_result)]だった
2025/11/23(日) 15:22:45.23ID:FUNf3ZwY
>>862
うん、そういう意味。
2025/11/23(日) 16:12:59.81ID:DNsCraN8
>>865
そういう意味ならCloudflareのは外部リソースへのアクセスがないロジックだけのプログラムと言える

でも外部リソースの後片付けをした後ならpanicしていいわけじゃないからpanicが許される状況かどうかの判断基準としては適切じゃないよ
2025/11/23(日) 16:53:37.55ID:FUNf3ZwY
>>866
> 外部リソースの後片付けをした後なら

ええと、話の前提として、プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況で、というのがあると思うんだが

今ここで話をしているのは、プログラムやサービスをこのまま動作させることが適当でないエラーが発生しうる箇所で、意図的に unwrapやpanicを使って終了させて良いか、そうでなくてエラーを上に上げるべきという意見が出たけどそれはどういうことか、という話だと思っていたんだけど違うのかな

それで >>842 で、外部リソースをオープン中ならその場で即終了するのはダメでクローズする必要がある、そのためにエラーを上に上げるべきで、そうでないならそこで終了しても問題ない、と答えたんだけど、それ以外にどんなケースや判断基準があるだろうか
2025/11/23(日) 16:56:29.82ID:VRvQaZYz
いやTCPのコネクションを開いてるでしょ
2025/11/23(日) 17:24:25.83ID:PnhKXlJE
Cloudflareの件で今回やるべきだったのは、パニックする前に監視システム向けに
最高の重要度でログだかイベントだかを送ることでしょ
2025/11/23(日) 17:51:52.37ID:W+o2V/Ez
>Enabling more global kill switches for features
>An outage like today is unacceptable.

当該サービスに限るなら公式が既に上記の見解を示しているかと
同様の障害時には「(ボット管理)機能を無効化する」が彼らの構え
つまり「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
2025/11/23(日) 17:54:30.97ID:n/KY4xZ8
>>870
こういう設計仕様決めれる人カッコいいわ
社内でも散々揉めたんだろうけどね
2025/11/23(日) 18:19:01.62ID:IuEnIF/H
うーん、別にボット管理だけが特別に落ちやすいってわけでもないだろうに、後知恵対策の感が否めないなあ
実際にその通りやるかはともかく、世間に納得されやすそうな分かりやすい対策案を記載したんだろ
根本的な問題は誤ったパラメータファイルをロールバックできる仕組みがなかったことで、
そこを何とかしない限り今後何でもかんでもフェールソフト設計にしなきゃいけなくなりそう
2025/11/23(日) 19:14:51.30ID:76/k8vRg
>>870
限るならからあるべき姿まで語り出すのは飛躍
今回のは(可用性向上するための)ボット対策が悪さするなら止める方がマシなだけ

機密性やら完全性やら欠いても動かすかどうかは別問題
あるべき姿として可用性優先してるのではない
2025/11/23(日) 19:34:48.38ID:W+o2V/Ez
>>873
つ >同様の障害時には

前後の文脈読まれたし
その上でより丁寧に書き直すなら以下になるかと
当該サービス(の当該案件)に限るなら、「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ

少なくとも以下の文章からは可用性をサービスの要と見ている節が読み取れるような気もするが
ただしだからといってそれが「機密性やら完全性やら欠いても動かすかどうかは別問題」と矛盾する趣意かは別問題

>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.
2025/11/23(日) 19:52:12.24ID:W+o2V/Ez
>>872
実際はボット管理で言えばくだんのフィーチャーファイルとやらによる「更新をしない」分岐とかでは(エラーログの通知、及びそれに伴う都度の運用判断することなどは前提として)
当該機能の性格上、頻繁な更新を要することが今回の騒動に拍車をかけた形だろうし(その部分だけで見れば「(前提をネストさせた上で、にもかかわらずそれを無視すれば)"落ちやすい"」)
それにしては肝心のファイル生成をする当のクエリをノールック(あるいは見たけどスルー)でDBの権限変更したのはあまりに杜撰と見る向きもあるが
ちなみに改善手順と銘打って記載列挙された中には、上記のファイルに関するくだりも見られ、要するに「内部生成されたファイルも外部のそれと同等に扱う」とのことらしい

- 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

しかしあの規模の、世界的なインフラ最大手がまさかの現場猫案件かますとは
後知恵バイアスと言われてしまえばそれまでなのだが、それにしてもな感はある
876デフォルトの名無しさん
垢版 |
2025/11/23(日) 20:20:59.87ID:hAxz+HBT
Cargoの管理ファイルがウザイな。
lib.rsまでは良しとしてmod.rsまで必要かえ?
PlatformIOのように全体一発でモジュールとクレート管理できんもんかね?
2025/11/23(日) 20:57:42.13ID:6RGNEouq
Rustのモジュール設計ってPythonのパクり?
2025/11/23(日) 23:28:58.23ID:rr5Ei7G8
>>867
前提の認識は合ってる

判断基準は>>852に書いたように「プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況」がプログラムコードのバグに起因する(としか考えられない)状況ならpanicが選択肢になる

プログラムコードのバグ以外に起因する状況ならpanicは選択肢にならない
エラーハンドリングをしてプログラムやスレッドの処理を終わらせる
2025/11/23(日) 23:44:04.11ID:rr5Ei7G8
もっともCloudflareの事例はプログラムやサービスを停止させる必要はなくて古い設定値のままトラフィックを捌き続ければよかった
880デフォルトの名無しさん
垢版 |
2025/11/24(月) 00:16:32.96ID:JEY6AAvW
>>858
いや、プログラムが緊急停止した場合の対策が出来ない無能はシステムを運用すべきじゃない、だろ。
881デフォルトの名無しさん
垢版 |
2025/11/24(月) 08:08:42.17ID:ToUcbaMD
>>880
その発言だと開発のポカは運用でカバーできるのが前提になっているけど、panicみたいに緊急停止するような状況はどんなに上手く運用したとしても回避するのは困難かと。
しかもCloudflareの場合は
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
自動生成した設定ファイルが原因だから、コードに詳しい開発側じゃなければわからない。

これを「運用が無能だから発生した」とか言うんだったら、運用側は「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」と要求するわな。
882デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:00:06.15ID:JEY6AAvW
>>881
あのな、言いたい事は分かるし、プログラマはシステムが止まらないよう最大限の努力しろというのはその通りだが、超新星爆発や太陽フレアやコーヒーが零れるのは止められないからな。それを念頭に運用は速やかにシステムを復旧出来るようにしとけよ。それが出来ずにプログラムやプログラマを非難するだけの運用なら無能というはなし。
2025/11/24(月) 10:32:10.42ID:NcJaUoGt
>>876
いらんからmod.rsは非推奨になったのでは
ディレクトリと同名ファイルで管理するようになって
Facadeパターンとして使いやすくなった
884デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:45:36.91ID:ToUcbaMD
>>882
なんのために制約キツくてコーティング面倒臭いRustを使っているのか、という話だわな。

Rustを採用するマネジメント層からすれば、トラブルの無い安定運用がRustに期待するところであって、Cloudflareみたいなサービス停止トラブルはあってはならない悪夢でしかない。その原因が無能コーダーが不用意に突っ込んだunwrapなんだから、管理側が「SafeRustではpanic禁止にしたい」と考えるのは当然じゃないんかね。
2025/11/24(月) 10:54:15.58ID:6bKOYnAL
>>881
>「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」
クリティカルなサービスなら当然の要求な気がする
障害につながらない仕組みが用意されてるpanicと即障害になるpanicは扱いが違うだろうけど管理は必要
ポストモータムにある対策の4番目に該当する

>>882
最大限の努力をしないと無効な入力値が渡されただけでサービス全体が停止するシステムを作ってしまうようなら無能と言われても仕方ない
2025/11/24(月) 11:23:49.40ID:3cdeWV/q
>>883
ファイル名と配置のルールが変わっただけだぞ
エディタのクイックオープン機能なんかで同名ファイルが大量に並ぶのは見づらいというしょーもない理由
887デフォルトの名無しさん
垢版 |
2025/11/24(月) 12:50:03.58ID:fg7M9od0
>>883
非推奨化はしてないと思うが
インテグレーションテストから共有されるモジュールなんかは mod.rs 方式しか使えなかったりするし
2025/11/24(月) 12:51:36.71ID:OH3b+FiZ
Rustが保証するのはメモリ安全であって、それ以上の機能を言語自体に期待してはいけないね
2025/11/24(月) 13:52:56.65ID:wHdQFDSx
3年かけて数多のスレを潰してようやく分かったか?
2025/11/24(月) 15:25:42.29ID:xtd+oazR
今後Rustは使用必須のスタートラインに過ぎないからな
2025/11/24(月) 17:08:28.30ID:Ya054j8a
Rustの次の言語に期待
2025/11/24(月) 17:14:22.69ID:eqWikkbY
実際、Rust以降ってこれといった言語出てなくない?
2025/11/24(月) 17:19:31.65ID:mGEasdrD
Rustより安全性の高い言語でないと企業が採用しない
Rustのような書きやすさと両立したプログラミング言語は出現しそうにない
2025/11/24(月) 17:45:09.92ID:kI+d7siV
メモリの安全性だけでなくnull safetyやmatchのexhaustivenessなど堅牢なソフトウェアを作るための機能が言語に備わっている

にもかかわらずそれらバイパスする間違ったunwrapやpanicの使い方を「正しい」と思い込んでる人たちを少なからず作り出しているということと、その誤った使い方を構造的に防止する方法がないということがソフトウェアの安全性に対するRustの問題点
895デフォルトの名無しさん
垢版 |
2025/11/24(月) 18:01:28.20ID:p5vlTQW+
unsafeの中以外は⊂(^ω^)⊃ セフセフ!!
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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