公式
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 part29
https://mevius.5ch.net/test/read.cgi/tech/1746200850/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part30
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/05/28(水) 09:31:36.60ID:ciITeZ5D779デフォルトの名無しさん
2025/06/13(金) 18:16:39.57ID:3/atOznW 特定の言語でプログラムが書けるみたいな狭義かつ低次のプログラミングスキルは特定メーカーのワープロでタイピングができるとか特定メーカーの表計算ソフトが使えるとかそういうのと同じコモディティ化したスキルになっていく
大事なのは特定の言語に依存しないメタなプログラミングスキルのほう
大事なのは特定の言語に依存しないメタなプログラミングスキルのほう
780デフォルトの名無しさん
2025/06/13(金) 18:27:02.35ID:e8dD01Bq それはそうだけど個別言語スレで言うことじゃないすぎる
781デフォルトの名無しさん
2025/06/13(金) 18:27:31.78ID:ccsGYBbu782デフォルトの名無しさん
2025/06/13(金) 19:32:43.29ID:hKGxiaka コモディティ化してもしなくても偶然にすぎない
偶然の産物は観察や考察するよりも編集してカットしたほうがいい
しかし編集すればするほど雑音が増えると思ってる人達にはそれができない
偶然の産物は観察や考察するよりも編集してカットしたほうがいい
しかし編集すればするほど雑音が増えると思ってる人達にはそれができない
783デフォルトの名無しさん
2025/06/13(金) 19:45:58.10ID:k1F86t2G784デフォルトの名無しさん
2025/06/13(金) 22:56:19.01ID:TC0KAGOC jemallocはマジで終了だってさ
https://jasone.github.io/2025/06/12/jemalloc-postmortem/
https://jasone.github.io/2025/06/12/jemalloc-postmortem/
785デフォルトの名無しさん
2025/06/13(金) 23:27:33.59ID:UVwTiSSY >>784
終わってない、とかほざいてた人はどうなん?
終わってない、とかほざいてた人はどうなん?
786デフォルトの名無しさん
2025/06/13(金) 23:44:49.92ID:/3nWCuFC >>784
2017年にFacebookを去った時点で手を引いて現Meta管轄なんだな
2017年にFacebookを去った時点で手を引いて現Meta管轄なんだな
787デフォルトの名無しさん
2025/06/14(土) 00:01:13.21ID:YcnPIob9 >>786
その記事の内容を読んでそういう感想なら死んでるのと変わらない
その記事の内容を読んでそういう感想なら死んでるのと変わらない
788デフォルトの名無しさん
2025/06/14(土) 13:57:15.87ID:k1IJmlZ/ 形式的には Meta が管理下に置いていたプロジェクトであるというのは間違いではないでしょ。
その上で Meta は全然やる気がなくなってるというだけで。 (少なくとも Jason の視点ではそう見えている。)
その上で Meta は全然やる気がなくなってるというだけで。 (少なくとも Jason の視点ではそう見えている。)
789デフォルトの名無しさん
2025/06/14(土) 14:50:51.36ID:dtGV1Vl4 凄腕のエンジニア達が長い時間をかけて育ててきたjemallocといえども、
アリーナアロケーションのようなアプリケーション依存の原始的な手法には敵わないってのは虚しい話だな
特にRust信者はともすると小手先の技巧にかまけて視野が狭くなりがちだから気をつけなければならない
アリーナアロケーションのようなアプリケーション依存の原始的な手法には敵わないってのは虚しい話だな
特にRust信者はともすると小手先の技巧にかまけて視野が狭くなりがちだから気をつけなければならない
790デフォルトの名無しさん
2025/06/14(土) 15:08:08.30ID:YcnPIob9 jemallocがMETAの管理下に入ってMETA寄りの機能を実装する開発方針に切り替わった
そして一般よりの機能を削減して一般からそっぽを向かれた
作者自身も一般からの需要にが付いていなかった
結局jemallocはMETA向けに局所最適化されてそこから一般向けに戻すにはかなりの人員と労力が必要だけど
それに見合うだけのメンテナーも資金もどこからも出てこない
実質死んでますよと
こういう内容
そして一般よりの機能を削減して一般からそっぽを向かれた
作者自身も一般からの需要にが付いていなかった
結局jemallocはMETA向けに局所最適化されてそこから一般向けに戻すにはかなりの人員と労力が必要だけど
それに見合うだけのメンテナーも資金もどこからも出てこない
実質死んでますよと
こういう内容
791デフォルトの名無しさん
2025/06/14(土) 15:13:02.44ID:YcnPIob9 資金力があるところに吸収されて開発されてもそれが必ずしも良いことではないと言うことだ
吸収する側には目的があって吸収して機能を実装し終わったらそれでもう満足なんだ
吸収する側には目的があって吸収して機能を実装し終わったらそれでもう満足なんだ
792デフォルトの名無しさん
2025/06/14(土) 15:48:51.99ID:RARc7ln1 万能なメモリアロケータは実現不可能
どういう用途に効率を特化するかで無数に分かれる
どういう用途に効率を特化するかで無数に分かれる
793デフォルトの名無しさん
2025/06/14(土) 15:53:14.56ID:RARc7ln1 >>789
最適なタイミングでまとめて確保と解放するアリーナ方式が最も性能出るのは自明
最適なタイミングでまとめて確保と解放するアリーナ方式が最も性能出るのは自明
794デフォルトの名無しさん
2025/06/14(土) 19:21:21.54ID:TLqczxub mRNAワクチンの“新たな懸念”接種済み妊婦の子どもに「異常タンパク質構造」血中で確認★2 [Gecko★]
2025/06/14(土) 15:48:24.59
https://asahi.5ch.net/test/read.cgi/newsplus/1749883704/
・ワクチン問題になっている
2025/06/14(土) 15:48:24.59
https://asahi.5ch.net/test/read.cgi/newsplus/1749883704/
・ワクチン問題になっている
795デフォルトの名無しさん
2025/06/14(土) 20:11:15.75ID:dS5ekNAa jemallocがRustから外されて各OSの標準アロケーターに戻った理由も重要だよね
796デフォルトの名無しさん
2025/06/14(土) 22:46:25.65ID:3wtf6RT3 性能は用途により一長一短
特定のアロケータが標準だとバイナリサイズで不利なため
特定のアロケータが標準だとバイナリサイズで不利なため
797デフォルトの名無しさん
2025/06/15(日) 00:30:17.16ID:bKWQLrbi #[global_allocator]標準化が1.28でjemalloc非標準化が1.32だな
外した理由はブログで書いてる
https://blog.rust-lang.org/2018/08/02/Rust-1.28/#global-allocators
https://blog.rust-lang.org/2019/01/17/Rust-1.32.0/#jemalloc-is-removed-by-default
外した理由はブログで書いてる
https://blog.rust-lang.org/2018/08/02/Rust-1.28/#global-allocators
https://blog.rust-lang.org/2019/01/17/Rust-1.32.0/#jemalloc-is-removed-by-default
798デフォルトの名無しさん
2025/06/15(日) 00:56:18.63ID:sxaow1g9 システム開発言語であるのにシステムのメモリアロケーターを使っていない
799デフォルトの名無しさん
2025/06/15(日) 00:59:44.98ID:ujM9EzWd Rustにおけるシステムプログラミングというのは「ケチ臭いプログラミング」と読み替えるとよい
必ずしも低レベルであることを意味しない
必ずしも低レベルであることを意味しない
800デフォルトの名無しさん
2025/06/15(日) 09:10:25.99ID:sxaow1g9 jemalloc使用するとメモリが300kb消費されると
rustプログラム一個につき300kb
rustプログラム一個につき300kb
801デフォルトの名無しさん
2025/06/15(日) 21:04:59.71ID:nFrUb4vG 組み込み開発はRust一択
802デフォルトの名無しさん
2025/06/15(日) 21:27:38.86ID:xQVjBVZp WEB開発もERust一択
803デフォルトの名無しさん
2025/06/15(日) 21:37:03.14ID:nFrUb4vG 今日もRustで組み込み開発しちゃった
804デフォルトの名無しさん
2025/06/15(日) 22:40:54.62ID:B7Y6UoIx 俺はC++で開発し続けているが。
805デフォルトの名無しさん
2025/06/15(日) 23:08:21.56ID:vsQD4t+X 組込みデバイスのRustのサポート状況ってどうなん?
少し前にNVIDIAのJetsonを触ったことがあるんだけと、SDKやサンプルはC++が基本だったと思う
(例えばJetson multimedia APIというのがあって、デバイス付属のGPUで動画をエンコードする等ができるんだけど、これはC++のクラスを使うAPIだから他の言語からFFIしづらい)
こういうのがRustに対応するようになるまでは、この分野はまだしばらくC++中心になるんじゃないかと思う
ラズパイなんかはRustの話も聞くし、できることは増えてると思うけど
少し前にNVIDIAのJetsonを触ったことがあるんだけと、SDKやサンプルはC++が基本だったと思う
(例えばJetson multimedia APIというのがあって、デバイス付属のGPUで動画をエンコードする等ができるんだけど、これはC++のクラスを使うAPIだから他の言語からFFIしづらい)
こういうのがRustに対応するようになるまでは、この分野はまだしばらくC++中心になるんじゃないかと思う
ラズパイなんかはRustの話も聞くし、できることは増えてると思うけど
806デフォルトの名無しさん
2025/06/16(月) 02:15:29.18ID:0s59hzvI メジャーなCPUならそれなりに対応してると思う
https://doc.rust-lang.org/beta/rustc/platform-support.html
SDKは需要とベンダーのやる気次第
https://doc.rust-lang.org/beta/rustc/platform-support.html
SDKは需要とベンダーのやる気次第
807デフォルトの名無しさん
2025/06/16(月) 05:39:40.78ID:YU6mcAo1 ヌルポ😳😳
Google Cloud、世界中のリージョンが影響を受けた大規模障害、原因は管理システムがヌルポインタ参照でクラッシュしたこと
2025年6月16日
https://www.publickey1.jp/blog/25/google_cloud_3.html
Google Cloud、世界中のリージョンが影響を受けた大規模障害、原因は管理システムがヌルポインタ参照でクラッシュしたこと
2025年6月16日
https://www.publickey1.jp/blog/25/google_cloud_3.html
808デフォルトの名無しさん
2025/06/16(月) 06:07:30.55ID:Y7h+7ucI 記事あんま理解できてないけどヌルポインタってそんなにまずいもんなの?
コンパイラーが検出してくれるし、スコープから外れた変数はドロップされるからそもそも参照されないかと思ってた
コンパイラーが検出してくれるし、スコープから外れた変数はドロップされるからそもそも参照されないかと思ってた
809デフォルトの名無しさん
2025/06/16(月) 06:43:29.69ID:pyVTMG/F ヌルポインタ参照って
プログラムをCとかunsafeとか使わずにRustで全て作ってるとしたら起き得ないことであってる?
プログラムをCとかunsafeとか使わずにRustで全て作ってるとしたら起き得ないことであってる?
810デフォルトの名無しさん
2025/06/16(月) 08:20:04.56ID:GmbZlZxT >>808-809
ヌルポインタの問題は型の非互換性、本質的には機能の非互換性の問題。
古いJavaで顕著だけど、ヌルポインタは何の機能もサポートしないのにコンパイル時はほとんどすべての型に化けることができるから、コンパイル時に問題を発見できずに実行時に問題になることがある。
本来なら互換性を保つためにヌルオブジェクトとかを使うべきだけど、言語で禁止しているわけではないので、低能力コーダーとか無能ライブラリアンとかはヌルポインタを返す関数とかを作って問題になる。
safe rust は基本的にヌルポインタを使えないので、このようなトラブルになることは少ないかと。
ヌルポインタの問題は型の非互換性、本質的には機能の非互換性の問題。
古いJavaで顕著だけど、ヌルポインタは何の機能もサポートしないのにコンパイル時はほとんどすべての型に化けることができるから、コンパイル時に問題を発見できずに実行時に問題になることがある。
本来なら互換性を保つためにヌルオブジェクトとかを使うべきだけど、言語で禁止しているわけではないので、低能力コーダーとか無能ライブラリアンとかはヌルポインタを返す関数とかを作って問題になる。
safe rust は基本的にヌルポインタを使えないので、このようなトラブルになることは少ないかと。
811デフォルトの名無しさん
2025/06/16(月) 11:48:14.62ID:d1GW0AGS 問題の本質はヌルポじゃないだろ
publickeyの人はそれがわかってない
てかGoogleの品質管理体制も杜撰すぎるな
publickeyの人はそれがわかってない
てかGoogleの品質管理体制も杜撰すぎるな
812デフォルトの名無しさん
2025/06/16(月) 12:21:10.35ID:LhShA12G ガッ!
813デフォルトの名無しさん
2025/06/16(月) 12:30:45.07ID:Y7h+7ucI 空白のフィールド含んだだけでクラッシュとかよく分かんないよ
俺がテストせずにこのプログラムをリリースさせた責任者だったら会社に残れないな。明らかにテスト捏造してるから
——
新しいポリシーデータには意図せず空白のフィールドが含まれており、これをサービスコントロールが読み込んで実行したところ、ヌルポインタ参照となりクラッシュが発生します
——
俺がテストせずにこのプログラムをリリースさせた責任者だったら会社に残れないな。明らかにテスト捏造してるから
——
新しいポリシーデータには意図せず空白のフィールドが含まれており、これをサービスコントロールが読み込んで実行したところ、ヌルポインタ参照となりクラッシュが発生します
——
814デフォルトの名無しさん
2025/06/16(月) 13:38:36.81ID:Zx2RP+Vb 要は不具合を引き起こす特定のパターンがあり、テストで発見されなかったってことだろ
たまたま結果としてヌルポでクラッシュしただけで、仮にヌルポの可能性に気づけていたとしてもそれ自体がバグの原因でない以上、
問題のパターンが別の形で障害を起こしていた可能性を否定できないな
たまたま結果としてヌルポでクラッシュしただけで、仮にヌルポの可能性に気づけていたとしてもそれ自体がバグの原因でない以上、
問題のパターンが別の形で障害を起こしていた可能性を否定できないな
815デフォルトの名無しさん
2025/06/16(月) 14:56:07.05ID:3OfwotkI もしRustで実装していれば、パニックですんでいたのにな
816デフォルトの名無しさん
2025/06/16(月) 15:28:10.23ID:89xCrI9h 今回の事態を招いた最も重大な要因は「リリース手続きの欠陥」であって、ヌルポ参照という"クラッシュに至る個別の事象"に着目した対策に終始するのは悪手(ヌルポ参照以外の要因で本件のような事象が再発しても良いのか、という問いにyesと答えることに他ならない)
817デフォルトの名無しさん
2025/06/16(月) 15:38:50.32ID:2OOusEms >>814
>要は不具合を引き起こす特定のパターンがあり、テストで発見されなかったってことだろ
特定のパターンというか「新機能のために新しく適用する全世界共通のポリシーデータ」と「新機能」の組み合わせでクラッシュするんだから本番環境に適用するポリシーデータでは一切テストしてなかったってことでしょ
feature flagがなければステージングでのテストも行わず本番と同時適用ってのも意味がわからない
>要は不具合を引き起こす特定のパターンがあり、テストで発見されなかったってことだろ
特定のパターンというか「新機能のために新しく適用する全世界共通のポリシーデータ」と「新機能」の組み合わせでクラッシュするんだから本番環境に適用するポリシーデータでは一切テストしてなかったってことでしょ
feature flagがなければステージングでのテストも行わず本番と同時適用ってのも意味がわからない
818デフォルトの名無しさん
2025/06/16(月) 15:40:30.06ID:2OOusEms >>815
パニックでも結果は同じ
パニックでも結果は同じ
819デフォルトの名無しさん
2025/06/16(月) 16:50:55.12ID:3OrQmcm3820デフォルトの名無しさん
2025/06/16(月) 17:11:52.79ID:6J/NsGPY JavaはTとOption<T>を区別しないからStringでもnull検査パスしてるか分からんのよね
誰かが検査してると思ってたら誰も検査してなかったり逆に至る所で何重にも検査されてたり
誰かが検査してると思ってたら誰も検査してなかったり逆に至る所で何重にも検査されてたり
821デフォルトの名無しさん
2025/06/16(月) 17:56:55.33ID:Y40wNqxo822デフォルトの名無しさん
2025/06/16(月) 18:02:11.42ID:3OrQmcm3823デフォルトの名無しさん
2025/06/16(月) 18:48:18.73ID:Y40wNqxo824デフォルトの名無しさん
2025/06/16(月) 19:02:14.08ID:F+AaTG3L Rustはわりとunwrapというかコンテキスト外し一般を使う人が多い印象があるね
そのあたりはやはりベターC++という感じがする
そのあたりはやはりベターC++という感じがする
825デフォルトの名無しさん
2025/06/16(月) 19:03:13.08ID:WftbHuxu >>823
異常時に停止してよい時のみpanicが使われて暴走やセキュリティの穴を防止するんだよ
異常時に停止してよい時のみpanicが使われて暴走やセキュリティの穴を防止するんだよ
826デフォルトの名無しさん
2025/06/16(月) 19:04:58.04ID:WftbHuxu >>824
落ちてはいけないプログラムでそんなことする人はいないよ
落ちてはいけないプログラムでそんなことする人はいないよ
827デフォルトの名無しさん
2025/06/16(月) 19:45:53.03ID:GmbZlZxT >>823
panicにするかどうかを決めるのはサーバーを実装する側じゃなくてサーバーを使うユーザー側だろ。
Linusじゃないけど、サーバー側がランタイムエラーでパニックを発生させるのは根本的に問題がある。単にエラーを返すべき。
panicにするかどうかを決めるのはサーバーを実装する側じゃなくてサーバーを使うユーザー側だろ。
Linusじゃないけど、サーバー側がランタイムエラーでパニックを発生させるのは根本的に問題がある。単にエラーを返すべき。
828デフォルトの名無しさん
2025/06/16(月) 19:53:50.09ID:xdTbb2+R Rustは絶対安心安全なんだよ
829デフォルトの名無しさん
2025/06/16(月) 22:35:10.42ID:GFXQS+aF >>827
もちろんあるべき姿としてはエラーを返すなりフォールバックさせるなりすべき
だけど現実はヌルポでエラーも返さずクラッシュさせてたわけでRustに置き換えればpanicで落としてたのと同じようなもの
つまりRustを使っていれば防げたかというと今回のケースは防げなかった可能性が高いということ
もちろんあるべき姿としてはエラーを返すなりフォールバックさせるなりすべき
だけど現実はヌルポでエラーも返さずクラッシュさせてたわけでRustに置き換えればpanicで落としてたのと同じようなもの
つまりRustを使っていれば防げたかというと今回のケースは防げなかった可能性が高いということ
830デフォルトの名無しさん
2025/06/16(月) 23:23:51.15ID:n/id3DH6 Rustを使えば防げただろう
831デフォルトの名無しさん
2025/06/16(月) 23:25:29.39ID:n/id3DH6832デフォルトの名無しさん
2025/06/17(火) 07:28:54.01ID:nAKE0zH5833デフォルトの名無しさん
2025/06/17(火) 08:53:29.58ID:wIiKTA/n DoS攻撃脆弱性でregexのCVEがあったけど
関連サービスの事を無視して自分勝手にpanicしちゃったら同じ脆弱性だよね
関連サービスの事を無視して自分勝手にpanicしちゃったら同じ脆弱性だよね
834デフォルトの名無しさん
2025/06/17(火) 09:28:01.71ID:qKSR12sf ヌルポ騒動が起きるたびにRustの重要性が引き上がる
835デフォルトの名無しさん
2025/06/17(火) 09:35:12.84ID:9ReeLirD836デフォルトの名無しさん
2025/06/17(火) 10:10:19.32ID:ArcAimKK837デフォルトの名無しさん
2025/06/17(火) 10:27:20.42ID:HytcwfDv Rustで書くなら関数は必ずResultもしくはOptionを返すことになり、上位で処理される
838デフォルトの名無しさん
2025/06/17(火) 10:32:24.66ID:Q1H3y5Wh839デフォルトの名無しさん
2025/06/17(火) 10:35:09.70ID:HytcwfDv840デフォルトの名無しさん
2025/06/17(火) 10:41:17.77ID:wEWjoXoE このGoogleの件に関して言うなら、ポリシーの読み込み失敗即ちロールバックなんだろうからpanicは妥当
起動時に必須の環境変数が無い場合にpanicさせるようなもんだね
起動時に必須の環境変数が無い場合にpanicさせるようなもんだね
841デフォルトの名無しさん
2025/06/17(火) 10:46:12.73ID:ya3T3y3J panicで全体を止めたくない時はUnwindSafeな処理単位をcatch_unwindで実行すればいい
使ったことないけど
使ったことないけど
842デフォルトの名無しさん
2025/06/17(火) 10:51:31.79ID:gnbFtFWo >>832
ヌルポでクラッシュさせてたのは間違いではなかったとでも?
>>823はヌルポでクラッシュさせてた人たちの認識
その人たちが仮にRustを使ってたら同じようにpanicで落とすだけ
つまりRustを使っていたとしても障害は防げないという話
それに今回の障害を見てエラーハンドリングしていれば問題なかったと考えるのは短絡的すぎる
一番の問題点は一サービスの一コンポーネントがクラッシュしただけであらゆるサービスが全面的にダウンしたという点にある
だからあらゆるコンポーネントを絶対panicしないように作ろうとするよりも一コンポーネントがpanicしたとしても全面的なシステムダウンに繋がらない仕組みを作ろうと考えることが今回のような障害を防ぐための第一歩
ヌルポでクラッシュさせてたのは間違いではなかったとでも?
>>823はヌルポでクラッシュさせてた人たちの認識
その人たちが仮にRustを使ってたら同じようにpanicで落とすだけ
つまりRustを使っていたとしても障害は防げないという話
それに今回の障害を見てエラーハンドリングしていれば問題なかったと考えるのは短絡的すぎる
一番の問題点は一サービスの一コンポーネントがクラッシュしただけであらゆるサービスが全面的にダウンしたという点にある
だからあらゆるコンポーネントを絶対panicしないように作ろうとするよりも一コンポーネントがpanicしたとしても全面的なシステムダウンに繋がらない仕組みを作ろうと考えることが今回のような障害を防ぐための第一歩
843デフォルトの名無しさん
2025/06/17(火) 10:56:21.14ID:tkXXIxpc844デフォルトの名無しさん
2025/06/17(火) 10:58:00.04ID:tkXXIxpc 異常状態のままプロセスが走り続けるよりもpanicなどでプロセス終了が正しいシステム構築
845デフォルトの名無しさん
2025/06/17(火) 11:09:29.63ID:QpxoSzQp 異常状態のまま動き続ける言語よりさ
panic or エラー処理されるRustが良い結論は変わらんよね
panic or エラー処理されるRustが良い結論は変わらんよね
846デフォルトの名無しさん
2025/06/17(火) 11:13:48.44ID:wEWjoXoE >>842
Google Cloud APIのコントロールプレーンのコアコンポーネントはさすがに一サービスの一コンポーネントとかいうレベルじゃないよ
OSのカーネルみたいなもん
こんなのヘタに誤動作を続けられたら会社が吹き飛ぶようなセキュリティ事故に繋がる可能性もあるわけで、死んでくれた方がマシ
Google Cloud APIのコントロールプレーンのコアコンポーネントはさすがに一サービスの一コンポーネントとかいうレベルじゃないよ
OSのカーネルみたいなもん
こんなのヘタに誤動作を続けられたら会社が吹き飛ぶようなセキュリティ事故に繋がる可能性もあるわけで、死んでくれた方がマシ
847デフォルトの名無しさん
2025/06/17(火) 11:52:15.15ID:e/HQQ23L ワンワンパニック
848デフォルトの名無しさん
2025/06/17(火) 12:50:17.15ID:ya3T3y3J Javaで
if (value == null) {
throw AppException();
}
を書き忘れるのとRustで
let Some(value) = opt_value else { return Err(AppError); }
の代わりに
let value = opt_value.unwrap();
と書くのは発生リスクが全然違うと思うんだけど
Javaでうっかりnullチェックを忘れる人はRustでもうっかりunwrapを使うものなのか?
if (value == null) {
throw AppException();
}
を書き忘れるのとRustで
let Some(value) = opt_value else { return Err(AppError); }
の代わりに
let value = opt_value.unwrap();
と書くのは発生リスクが全然違うと思うんだけど
Javaでうっかりnullチェックを忘れる人はRustでもうっかりunwrapを使うものなのか?
849デフォルトの名無しさん
2025/06/17(火) 13:10:12.25ID:aeCwWEdf >>848
本人判断で「自明」と決めつけて意図的にunwrapを使うのでは
本人判断で「自明」と決めつけて意図的にunwrapを使うのでは
850デフォルトの名無しさん
2025/06/17(火) 13:36:52.80ID:gAVRJIie >>822によれば
本人判断で「panicで落ちていい」と決めつけて意図的にunwrapを使うパターンもある
本人判断で「panicで落ちていい」と決めつけて意図的にunwrapを使うパターンもある
851デフォルトの名無しさん
2025/06/17(火) 14:21:36.03ID:w2F36Aoo852デフォルトの名無しさん
2025/06/17(火) 15:48:15.44ID:FL91roa2 >>846
クラッシュしたのはコントロールプレーンの一部であるポリシーチェックシステムのさらにその一部のバイナリ
もっと言えば問題が起きたのはそのまた一部のクォータチェック部分
クォータチェックができなければGCPの全サービスを落とすべきというビジネス判断としてはなくはないがIncident Reportを見る限りGoogleはそうは考えてない
クラッシュしたのはコントロールプレーンの一部であるポリシーチェックシステムのさらにその一部のバイナリ
もっと言えば問題が起きたのはそのまた一部のクォータチェック部分
クォータチェックができなければGCPの全サービスを落とすべきというビジネス判断としてはなくはないがIncident Reportを見る限りGoogleはそうは考えてない
853デフォルトの名無しさん
2025/06/17(火) 16:05:37.54ID:UZ5mCAEQ Rustにしとけ
続行不可能で意図的にpanicさせるか
きちんとResult/Option処理するかになる
続行不可能で意図的にpanicさせるか
きちんとResult/Option処理するかになる
854デフォルトの名無しさん
2025/06/17(火) 16:27:46.74ID:9ReeLirD リリースしてから実際にポリシー変更が発生するまでの2週間、
テストやりこんで最後のバグだしするまでの時間とみなすか、
リリースヨシ!と思ってたかだよな
リリース後も2週間頑張ってテストやったけど境界条件探すの下手くそで見つけられませんでした、で通るかな。自分のことのようにゾッとする
テストやりこんで最後のバグだしするまでの時間とみなすか、
リリースヨシ!と思ってたかだよな
リリース後も2週間頑張ってテストやったけど境界条件探すの下手くそで見つけられませんでした、で通るかな。自分のことのようにゾッとする
855デフォルトの名無しさん
2025/06/17(火) 17:05:59.65ID:FL91roa2 >>854
プログラムの変更とポリシーデータの変更は責任者も管轄組織もプロセスも違うんだと思う
ポリシーデータのほうはビジネスよりの組織が管轄というのはよくある話
なのでDev的にはリリースヨシ!
改善点の2点目に「Regardless of the business need for 〜」とあるからOpsはBizの政治力で本来とは違うプロセスを強制させられたのかもしれない
プログラムの変更とポリシーデータの変更は責任者も管轄組織もプロセスも違うんだと思う
ポリシーデータのほうはビジネスよりの組織が管轄というのはよくある話
なのでDev的にはリリースヨシ!
改善点の2点目に「Regardless of the business need for 〜」とあるからOpsはBizの政治力で本来とは違うプロセスを強制させられたのかもしれない
856デフォルトの名無しさん
2025/06/17(火) 18:12:51.30ID:FL91roa2 ここに内部事情を含めていろいろ書いてあった
https://news.ycombinator.com/item?id=44274563
https://news.ycombinator.com/item?id=44274563
857デフォルトの名無しさん
2025/06/18(水) 00:29:09.64ID:1jrMASAC ここでの議論と同じだね
Rustでpanicするの明示的にpanicを起こすコードを書いたときだけ
Rustでpanicするの明示的にpanicを起こすコードを書いたときだけ
858デフォルトの名無しさん
2025/06/18(水) 01:06:16.44ID:aQwOTYhv859デフォルトの名無しさん
2025/06/18(水) 01:09:01.01ID:ZwZRjmCs さっさとC++捨ててRustにすれば防げたのにな
860デフォルトの名無しさん
2025/06/18(水) 01:12:36.99ID:SA0JPy/4861デフォルトの名無しさん
2025/06/18(水) 02:58:44.97ID:vm71nNgD Googleの事案なんてどうでもよくてインシデントにかこつけてRustの布教がしたいだけ
だから何を書いても無駄
だから何を書いても無駄
862デフォルトの名無しさん
2025/06/18(水) 06:20:38.83ID:KrGEp9Dg Rustを採用していれば防げた事案
863デフォルトの名無しさん
2025/06/18(水) 09:57:10.50ID:NQ+tIPxW864デフォルトの名無しさん
2025/06/18(水) 10:09:02.91ID:4yVSzLnj865デフォルトの名無しさん
2025/06/18(水) 10:20:51.18ID:NQ+tIPxW > 書き忘れではなくロジカルな思い違いもある
866デフォルトの名無しさん
2025/06/18(水) 10:31:14.78ID:GRTFL2K0 panicさせてはいけないプログラムでpanicさせる関数を呼ぶバカはいない
reviewでもバレる
reviewでもバレる
867デフォルトの名無しさん
2025/06/18(水) 10:49:25.62ID:NQ+tIPxW メモリリークさせてはいけないぷろぐらむでめもりりーくさせるばかはいない!
868デフォルトの名無しさん
2025/06/18(水) 11:01:39.66ID:Ulz+jHl5 Rustを使えばメモリリークも未定義動作もなく安全安心よ
869デフォルトの名無しさん
2025/06/18(水) 11:23:14.90ID:lQpFkqVW haskellと比べて、unwrapが気軽に使えすぎる気はする
870デフォルトの名無しさん
2025/06/18(水) 11:33:39.23ID:S+5h0Q7c ErrやNoneの時にpanic!を呼びたい場合が多いからunwrapがある
呼びたくないのに使うのは痴呆
呼びたくないのに使うのは痴呆
871デフォルトの名無しさん
2025/06/18(水) 11:34:34.48ID:FuDCb+RV index out of boundsやdivide by zeroをはじめ意図せずpanicを起こすケースなんていくらでもある
872デフォルトの名無しさん
2025/06/18(水) 11:39:44.34ID:SMOhWm6L panicはcatchできるし
そのthreadが死ぬだけだし
困らんよな
そのthreadが死ぬだけだし
困らんよな
873デフォルトの名無しさん
2025/06/18(水) 11:43:26.69ID:U/ksL7Wg874デフォルトの名無しさん
2025/06/18(水) 11:45:58.97ID:3o9Ti177875デフォルトの名無しさん
2025/06/18(水) 11:46:56.90ID:3o9Ti177876デフォルトの名無しさん
2025/06/18(水) 11:50:22.96ID:7xP0Uzu5 >>874
落ちてはいけないシステムをUB地雷だらけのC++で書くことが愚か
落ちてはいけないシステムをUB地雷だらけのC++で書くことが愚か
877デフォルトの名無しさん
2025/06/18(水) 11:52:41.70ID:qy96omZz878デフォルトの名無しさん
2025/06/18(水) 12:16:05.81ID:iDJPvmxA 「意図したpanic」禁止したら良い
その「意図」が正しいのかコンパイラが静的分析出来ないから
その「意図」が正しいのかコンパイラが静的分析出来ないから
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★2 [ニョキニョキ★]
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★3 [ニョキニョキ★]
- 人生初黒星の神童、那須川天心がリング上で土下座 [牛丼★]
- 中国人「『日本は危ないから行かないように』と言われたが、日本に来たらとても安全だった」 [お断り★]
- 石破前総理「どうすれば台湾有事にならないかを考えるべき」★2 [1ゲットロボ★]
- 毛寧(もう・ねい)報道官 「日本は実際の行動で対話への誠意を示すべき」 中国、高市首相に改めて発言撤回を要求 [ぐれ★]
- 【高市朗報】高橋洋一「これあまり知られてないんですが、財政が悪化し続けば勝手に円高になります」🤔・・・😰??? [931948549]
- 【号外】習近平、米大統領のトランプと首脳会談を行う!日本のの武力による台湾脅しついて共有の追及をする意思統一でおこなう [339712612]
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- 【愛国者悲報】高市早苗、ガイキチスマイルwwwwwww [856698234]
- まったりおじゃる丸待機スレ🏡
- 「琉球有事は中国有事」 中国のネトウヨが拡散 これには日本のネトウヨ叩きのめされる [241672384]
