[過去ログ]
Rust part31 (1002レス)
Rust part31 http://mevius.5ch.net/test/read.cgi/tech/1751545806/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [] 2025/07/03(木) 21:30:06.95 ID:ORBrZxS2 公式 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 part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.5ch.net/test/read.cgi/tech/1514107621/ http://mevius.5ch.net/test/read.cgi/tech/1751545806/1
876: デフォルトの名無しさん [sage] 2025/08/09(土) 14:59:10.81 ID:Om2mqfPg お前に相談しても何も解決しないからこんなことになってんねや http://mevius.5ch.net/test/read.cgi/tech/1751545806/876
877: デフォルトの名無しさん [sage] 2025/08/09(土) 15:03:03.57 ID:OU6EAzKD 複数IDおじさんは死んだのですか? http://mevius.5ch.net/test/read.cgi/tech/1751545806/877
878: デフォルトの名無しさん [sage] 2025/08/09(土) 15:27:40.97 ID:vSzyTiPH >>842 Rustの台頭を招いた戦犯はC++だな 遅いC#がいくら頑張っても無理だが C++が高速で使いやすいものを築き上げていればRustが入り込む余地はなかった http://mevius.5ch.net/test/read.cgi/tech/1751545806/878
879: デフォルトの名無しさん [sage] 2025/08/09(土) 16:20:54.80 ID:8jBxYJQq C++ は使い勝手が悪かろうと汚かろうと最悪の場面でなんとかできるという安心感はある。 Rust は良い言語だけど「綺麗に設計できなかったとき」のグダグダな辻褄合わせをフォローする力は弱い。 もちろん最初から全うに設計して全うにコードを整理できれば一番良いに決まってるけど、現実は非情でありプログラマは無能である……。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/879
880: デフォルトの名無しさん [sage] 2025/08/09(土) 16:27:54.34 ID:5dENg5ap >>879 プログラミングで辻褄合わせなんて聞いたことがないんだけど具体的に何をするの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/880
881: デフォルトの名無しさん [sage] 2025/08/09(土) 16:56:57.23 ID:l1zXGfIU Optionや内部可変を許容すれば辻褄が合うんだろう けど自分の考えだけで決めるのはアレだから ヌルや代入をみんな許容しているから自分も許容するという形にできるのがJavaやC++ http://mevius.5ch.net/test/read.cgi/tech/1751545806/881
882: デフォルトの名無しさん [sage] 2025/08/09(土) 17:13:39.31 ID:hxAIY3kv ヌル安全でないそれらのダメなプログラミング言語はダメな言語しか使えないダメな人たち専用言語となっている http://mevius.5ch.net/test/read.cgi/tech/1751545806/882
883: デフォルトの名無しさん [sage] 2025/08/09(土) 17:32:09.56 ID:8jBxYJQq 現実は駄目なのでしゃーない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/883
884: デフォルトの名無しさん [] 2025/08/09(土) 17:35:33.16 ID:bqtMLqjo Rustを学ぶとくどくて読みにくい日本語を書くようになる効果でもあるの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/884
885: デフォルトの名無しさん [sage] 2025/08/09(土) 17:50:27.29 ID:JJdMnyaw パターンマッチで全タイプ網羅しないと脳内コンパイルが通らなくなるらしい http://mevius.5ch.net/test/read.cgi/tech/1751545806/885
886: デフォルトの名無しさん [sage] 2025/08/09(土) 18:35:03.78 ID:pUGHLIhK >>879 理論上はunsafe使えばRustでもどうとでもできるとは思うんだが あんまり雑にunsafeするための情報が転がってないしね http://mevius.5ch.net/test/read.cgi/tech/1751545806/886
887: デフォルトの名無しさん [sage] 2025/08/09(土) 18:35:26.57 ID:93q/kIgN 糖質とRustって親和性が高いんだろうな http://mevius.5ch.net/test/read.cgi/tech/1751545806/887
888: デフォルトの名無しさん [sage] 2025/08/09(土) 18:47:25.85 ID:Aw+43M+T >>879 逆だろ C++とは異なりRustならどう書いても設計を変えてもリファクタリングしても安全が保証される安心感がある http://mevius.5ch.net/test/read.cgi/tech/1751545806/888
889: デフォルトの名無しさん [sage] 2025/08/09(土) 18:54:19.90 ID:Aw+43M+T >>886 Rustではまず最初に必ずsafeのみで記述するという絶対原則がある プログラムを完成させ計測した上でネックが見つかりunsafeで安全に記述できる構造が見つかった時のみ検討が行われる http://mevius.5ch.net/test/read.cgi/tech/1751545806/889
890: デフォルトの名無しさん [sage] 2025/08/09(土) 19:05:23.53 ID:8jBxYJQq >>888 変えるためにはグダグダだろうがなんだろうが一度は形にならなきゃいけないが、そもそも形になんねーんだよ。 安全が保障されるよりも、バグだらけでもまず動かなきゃ話にならんのが現実の要件なんだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/890
891: デフォルトの名無しさん [sage] 2025/08/09(土) 19:09:10.78 ID:Aw+43M+T >>890 形にならないとは何だ? 安全でなくバグがある要件なんて現実にないぞ http://mevius.5ch.net/test/read.cgi/tech/1751545806/891
892: デフォルトの名無しさん [sage] 2025/08/09(土) 19:19:50.51 ID:pUGHLIhK >>891 自分でも安全性が保証されないことと安全でないことの区別付いてないじゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/892
893: デフォルトの名無しさん [sage] 2025/08/09(土) 19:22:49.98 ID:Aw+43M+T >>892 Rustで書けばよい 必ず安全が保証される http://mevius.5ch.net/test/read.cgi/tech/1751545806/893
894: デフォルトの名無しさん [sage] 2025/08/09(土) 19:34:03.38 ID:8jBxYJQq >>891 納期は要件の中で優先順位が高い。 納期を守れればバグの改修を後回しにする交渉は可能だ。 動くものが無かったらバグもクソもねーんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/894
895: デフォルトの名無しさん [sage] 2025/08/09(土) 19:41:04.68 ID:Aw+43M+T >>894 そういう時はこういう症状のバグがまだ残っていますと添えて提出するだけの話だろ Rustと関係なくどの言語でも同じ http://mevius.5ch.net/test/read.cgi/tech/1751545806/895
896: デフォルトの名無しさん [sage] 2025/08/09(土) 19:47:31.13 ID:Ab8eMDOi >>895 多重下請けマっぽい物言いだが、だとしても複おじにまともに実務経験があると思えないんだよなあ 底辺クソブラックでロクに仕事もできず病んで数年で退職、以後長期ニートとか? http://mevius.5ch.net/test/read.cgi/tech/1751545806/896
897: デフォルトの名無しさん [sage] 2025/08/09(土) 20:07:08.42 ID:rQqeE1Vt >>886 バグを回避するためにunsafeを使おうとしている?そんなアホな レッドカードや http://mevius.5ch.net/test/read.cgi/tech/1751545806/897
898: デフォルトの名無しさん [sage] 2025/08/09(土) 20:08:29.79 ID:l1zXGfIU シンギュラリティには納期がないのに物凄いお金をかけて大丈夫なのかな http://mevius.5ch.net/test/read.cgi/tech/1751545806/898
899: デフォルトの名無しさん [sage] 2025/08/09(土) 20:36:20.23 ID:Q6/AOvN1 >>897 バグの話なんてしてないけどどこをどう読んだらそうなるんだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/899
900: デフォルトの名無しさん [sage] 2025/08/09(土) 20:42:43.33 ID:28rfMcPG >>899 バグをつじつま合わせで回避する話かと ちゃうん? http://mevius.5ch.net/test/read.cgi/tech/1751545806/900
901: デフォルトの名無しさん [sage] 2025/08/09(土) 21:01:25.43 ID:k8Vi1+RP 安全性とは関係ないバグもあるんだけどね Rustでかくと安全性は保てるのかもしれないけど仕様通りの動作をしないバグとかは防げない http://mevius.5ch.net/test/read.cgi/tech/1751545806/901
902: デフォルトの名無しさん [sage] 2025/08/09(土) 21:27:23.11 ID:jMm762NP Rustは読み出し中の書き換えや、書き換え中の別からの書き換えを防止してくれる そのため知らぬ間に値が変わっていた系のバグも防げる http://mevius.5ch.net/test/read.cgi/tech/1751545806/902
903: デフォルトの名無しさん [] 2025/08/09(土) 21:48:17.59 ID:ZfnYWhel ふーん、並列とかウェブってそんなに実需あるのか 俺は関数呼び出しの情報をそのままデータ化(Requestオブジェクト)するアイデアを思いついたんだけどそれって使える? 要するに関数ポインタ、引数、返り値を格納する変数へのポインタ、と、この3つを構造体に格納して遅延実行したりキューイングしたりするんだけど http://mevius.5ch.net/test/read.cgi/tech/1751545806/903
904: デフォルトの名無しさん [sage] 2025/08/09(土) 21:57:58.06 ID:28rfMcPG >>903 目的とメリットは何やろ クロージャや非同期関数など既にあるけど http://mevius.5ch.net/test/read.cgi/tech/1751545806/904
905: デフォルトの名無しさん [] 2025/08/09(土) 22:06:39.52 ID:ZfnYWhel 目的は一応並列 メリットは軽量 http://mevius.5ch.net/test/read.cgi/tech/1751545806/905
906: デフォルトの名無しさん [sage] 2025/08/09(土) 22:10:32.49 ID:xyhx6hof 平凡すぎる http://mevius.5ch.net/test/read.cgi/tech/1751545806/906
907: デフォルトの名無しさん [sage] 2025/08/09(土) 22:11:56.03 ID:28rfMcPG >>905 並列には不要かなー 並行には機能不足だね http://mevius.5ch.net/test/read.cgi/tech/1751545806/907
908: デフォルトの名無しさん [] 2025/08/09(土) 22:19:05.11 ID:ZfnYWhel 実行リクエストを出してその完了をその場で待つ、というニーズなら十分応えられる それにこれってゼロコスト抽象じゃない? それならあって損するものでもない http://mevius.5ch.net/test/read.cgi/tech/1751545806/908
909: デフォルトの名無しさん [] 2025/08/09(土) 22:19:58.74 ID:LF6KHoht C++を安全に書けない人のために補助輪を付けたのがRustだ 安全に書けばC++の方がいいのだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/909
910: デフォルトの名無しさん [sage] 2025/08/09(土) 22:21:53.61 ID:28rfMcPG >>908 昔からのコールバック関数と何が違うのかな~ http://mevius.5ch.net/test/read.cgi/tech/1751545806/910
911: デフォルトの名無しさん [sage] 2025/08/09(土) 22:24:43.56 ID:jMm762NP >>909 使えばわかる Rustは抽象度がさらに高く 書きやすく読みやすい C++はメリットがない http://mevius.5ch.net/test/read.cgi/tech/1751545806/911
912: デフォルトの名無しさん [] 2025/08/09(土) 22:32:22.44 ID:ZfnYWhel >>910 AIが「それ、まだない」って言うんだもん http://mevius.5ch.net/test/read.cgi/tech/1751545806/912
913: デフォルトの名無しさん [sage] 2025/08/09(土) 22:56:30.31 ID:KGsTE/3q AIって有能が使うと有能が加速するけど、馬鹿が使うと馬鹿が加速するツールだから頼らないほうがいいよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/913
914: デフォルトの名無しさん [] 2025/08/09(土) 23:08:49.86 ID:ZfnYWhel async/awaitの中身ってじゃあこの三つ組だったりするの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/914
915: デフォルトの名無しさん [sage] 2025/08/09(土) 23:22:31.78 ID:28rfMcPG >>914 awaitの地点毎に一旦出て再び戻ってくるよ つまりステートマシンなコルーチン スタックレスで実装されているよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/915
916: デフォルトの名無しさん [] 2025/08/09(土) 23:46:59.37 ID:ZfnYWhel 俺はこれを定義して命名しただけで実装は誰がやってもいいと思うんだけど 高速ウェブサーバとか作れそうかな? http://mevius.5ch.net/test/read.cgi/tech/1751545806/916
917: デフォルトの名無しさん [sage] 2025/08/09(土) 23:53:35.88 ID:jMm762NP 環境キャプチャできるクロージャよりも劣る http://mevius.5ch.net/test/read.cgi/tech/1751545806/917
918: デフォルトの名無しさん [sage] 2025/08/10(日) 15:31:38.50 ID:1cj3h1dn Rust 1.0ってもう10年前なんだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/918
919: デフォルトの名無しさん [sage] 2025/08/10(日) 19:32:55.30 ID:2D3Ahc3U >>879 コーディングスタイルは十人十色かもしれないが、 グダグダな辻褄合わせというフェーズの存在は初耳だ。 やり方もしくは能力になんらかの問題を感じる。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/919
920: デフォルトの名無しさん [] 2025/08/10(日) 19:59:07.22 ID:5hMvqzsk エスパーだけど速いコードを書くことはできても小さいコードを書くことはできないことがあるからじゃない? http://mevius.5ch.net/test/read.cgi/tech/1751545806/920
921: デフォルトの名無しさん [] 2025/08/10(日) 22:09:28.11 ID:Zg5co2YS どう http://mevius.5ch.net/test/read.cgi/tech/1751545806/921
922: デフォルトの名無しさん [sage] 2025/08/11(月) 15:40:24.74 ID:EC/wLypS >>919 そうだよ。 大抵の場合に無能はいるし問題はあるという現実を前にしてそれでもなんとかしなきゃならないという話をしてるんだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/922
923: デフォルトの名無しさん [sage] 2025/08/11(月) 15:59:02.43 ID:GdF4E6X/ 辻褄合わせのプログラミングをしてる人は言語関係なくプログラマーに向いていない 去ってもらうのが業界のため http://mevius.5ch.net/test/read.cgi/tech/1751545806/923
924: デフォルトの名無しさん [] 2025/08/11(月) 16:30:48.22 ID:3Pi1Vu8v プログラミングしたら負け http://mevius.5ch.net/test/read.cgi/tech/1751545806/924
925: デフォルトの名無しさん [sage] 2025/08/11(月) 17:25:34.81 ID:X2QbX/qC 辻褄合わせのプログラム書いてる人がいると聞いて慌てて飛んできた いったいどういう神経してんのさ、さっさとアーキテクチャー見直さないとかアホなの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/925
926: デフォルトの名無しさん [sage] 2025/08/11(月) 18:04:11.30 ID:EC/wLypS 知らんわ。 俺にその権限はないし、「今」なんとかしなきゃならないときにそんなこと言っておれんのが現場ってもんだろ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/926
927: デフォルトの名無しさん [sage] 2025/08/11(月) 18:12:09.66 ID:UQA5I5Ux 仕事の経験が無い人にはわからんのだよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/927
928: デフォルトの名無しさん [sage] 2025/08/11(月) 18:48:11.52 ID:BYBfr1qg >>756の言葉を借りるなら なにごとも慣れ 取り組んでいればunsafeも上手く取り扱えるようになるよ しかし避けていればいつまでたっても取り扱えないまま http://mevius.5ch.net/test/read.cgi/tech/1751545806/928
929: デフォルトの名無しさん [] 2025/08/11(月) 19:35:04.21 ID:GpYObhHZ 文法を100時間かけて習得しても、ちゃんとした設計でRustのコードをかけるようになるまでが長すぎる…。ChatGPTで解決しないレベルの問題ばかり引く Builderパターンを使うべきか、new()に与えたくない引数を与えるかで30分も悩んじまった。Rustに変えてからこんなんばっか。別の言語の経験がもっと素直に生きるもんかと思ってた http://mevius.5ch.net/test/read.cgi/tech/1751545806/929
930: デフォルトの名無しさん [sage] 2025/08/11(月) 19:42:07.67 ID:oNbTL3km さすがにそれは別の言語の経験とやらが自分が思っていたよりも浅かったということでは http://mevius.5ch.net/test/read.cgi/tech/1751545806/930
931: デフォルトの名無しさん [] 2025/08/11(月) 19:48:10.80 ID:GpYObhHZ C++の経験がもっとあれば違った気がする データサイエンティストが使うpythonはけっこう遠かった http://mevius.5ch.net/test/read.cgi/tech/1751545806/931
932: デフォルトの名無しさん [sage] 2025/08/11(月) 20:12:48.42 ID:N8nCnSEw Python経験しかないならそりゃそうなる 言語の複雑さ以前に、そもそもそれらの機能が何故必要なのかが分からないだろうからチンプンカンプンだろうな そもそもあえてRustなんかやる必要があるのかも疑問 http://mevius.5ch.net/test/read.cgi/tech/1751545806/932
933: デフォルトの名無しさん [sage] 2025/08/11(月) 20:14:46.95 ID:SuQLHjmT >>929 どの言語でも共通の概念があり各言語のやり方がある 同じくChatGPTに頼ったとしても個別のやり方だけをコピペして来た人は概念の理解に乏しく応用が利かない 別の言語の経験が生きるかどうかは本人の問題 http://mevius.5ch.net/test/read.cgi/tech/1751545806/933
934: デフォルトの名無しさん [sage] 2025/08/11(月) 20:36:59.84 ID:7BdHEm5E スクリプト屋が意識高い言語やりたいなら、Goとかのほうがいいんじゃね http://mevius.5ch.net/test/read.cgi/tech/1751545806/934
935: デフォルトの名無しさん [sage] 2025/08/11(月) 20:46:19.85 ID:Kb00poZQ >>931 C++は不要だが比較的すぐ習得できると言われるC言語くらいはプログラマーを名乗るなら理解しておくべき いわゆる参照の値渡ししかないPythonの経験のみでは何をするにも最初は時間がかかるだろうが http://mevius.5ch.net/test/read.cgi/tech/1751545806/935
936: デフォルトの名無しさん [] 2025/08/11(月) 21:05:12.32 ID:xz+O0Ovt Cなんて値渡ししかない やるならC++にするべきだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/936
937: デフォルトの名無しさん [sage] 2025/08/11(月) 21:35:06.71 ID:ZDxIKfeQ >>934 Goが意味を持つ領域は非常に狭い 今回は書かれてる情報よりPythonから呼び出す高速ライブラリ作成やPythonコードの高速化や省メモリだろうから Rustが全言語の中でベスト選択肢 >>936 Rustを会得する上でC++の知識は必要ない 似た概念はあるが異なるためRustのために新たに学ぶ利点はない http://mevius.5ch.net/test/read.cgi/tech/1751545806/937
938: デフォルトの名無しさん [sage] 2025/08/11(月) 22:00:32.02 ID:BYBfr1qg どんだけC++嫌いなんだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/938
939: デフォルトの名無しさん [sage] 2025/08/11(月) 22:08:22.37 ID:dOXmVIim C++からRustへ来てその違いの多さに右往左往してる人たちのために指南が行われるくらい方向性ちがうよな http://mevius.5ch.net/test/read.cgi/tech/1751545806/939
940: デフォルトの名無しさん [sage] 2025/08/11(月) 22:27:35.71 ID:7BdHEm5E まあかぶってるのは最初から用途だけだし http://mevius.5ch.net/test/read.cgi/tech/1751545806/940
941: デフォルトの名無しさん [sage] 2025/08/11(月) 22:27:41.34 ID:X2QbX/qC 辻褄おじって複おじだろうな C++なら設計不具合を辻褄合わせできるって、、、 それRustと違ってコンパイルエラー回避してるだけで設計なおってないぜ http://mevius.5ch.net/test/read.cgi/tech/1751545806/941
942: デフォルトの名無しさん [sage] 2025/08/11(月) 22:37:24.77 ID:05Dprm4o >>929 >Builderパターンを使うべきか、new()に与えたくない引数を与えるか これ他の選択肢は考えなかったの? その2つで悩むくらいなら与えたい引数だけを取るコンストラクタを用意したほうがいいケースに見えるけど http://mevius.5ch.net/test/read.cgi/tech/1751545806/942
943: デフォルトの名無しさん [sage] 2025/08/11(月) 22:37:41.46 ID:AFY6XkLY 辻褄合わせのスパゲッティなプログラムを書く人はどの言語にもいる Rustはスパゲッティなプログラムの主因でもある参照の競合を防げる言語 辻褄合わせをしてきたスパゲッティなプログラマーは破綻して炙り出される http://mevius.5ch.net/test/read.cgi/tech/1751545806/943
944: デフォルトの名無しさん [sage] 2025/08/11(月) 22:37:56.35 ID:oFJRCO1f 今更複おじの称号を他人になすりつけようとか小賢しいことしてもバレバレですよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/944
945: デフォルトの名無しさん [sage] 2025/08/11(月) 22:40:04.28 ID:05Dprm4o >>941 どう考えても別人だろ http://mevius.5ch.net/test/read.cgi/tech/1751545806/945
946: デフォルトの名無しさん [sage] 2025/08/11(月) 23:52:30.33 ID:DkamCpJM 下手なプログラミングしてきた者がRustは辛いと言い出すから下手さがわかりやすく出ちゃう http://mevius.5ch.net/test/read.cgi/tech/1751545806/946
947: デフォルトの名無しさん [] 2025/08/12(火) 00:14:37.40 ID:G/XPXKyQ >>942 もっと複雑な実装をする時はその選択肢も当然入ってくる http://mevius.5ch.net/test/read.cgi/tech/1751545806/947
948: デフォルトの名無しさん [] 2025/08/12(火) 00:22:19.92 ID:G/XPXKyQ >>935 Cの経験は独学レベルなら一応あるんだけど。Rustはまだまだきついわ 基本文法を取得してから、実戦投入に慣れるのに、2ヵ月か、下手したら3ヵ月ぐらいかかりそうな具合 俺、今まで関わった機械学習系の開発プロジェクトで、大体どこに行ってもコーディング一番得意な人だったのに Rustはまだしっくりこない。やっぱ、この言語ちょっと特別な気がする http://mevius.5ch.net/test/read.cgi/tech/1751545806/948
949: デフォルトの名無しさん [sage] 2025/08/12(火) 00:33:40.13 ID:a3TkiHxV 設計に迷ったならAPIガイドラインっていうのが一応あるけど そういう話じゃないか https://rust-lang.github.io/api-guidelines/about.html http://mevius.5ch.net/test/read.cgi/tech/1751545806/949
950: デフォルトの名無しさん [sage] 2025/08/12(火) 00:40:04.46 ID:i1L5Xnaz >>947 Builderを使う状況以上に複雑な場合なんてあるの? いくつかあるオブジェクト生成方法の中で 最も複雑な状況に対応するのがBuilderパターン 逆に最もシンプルな状況に対応するのがnew() その両極端で悩んだという話だから new()よりの方法を紹介したつもりだったんだが http://mevius.5ch.net/test/read.cgi/tech/1751545806/950
951: デフォルトの名無しさん [] 2025/08/12(火) 01:24:50.74 ID:G/XPXKyQ >>950 あー。その場限りのcontextの構造体を作るだけの最小構成ならBuilderパターンより軽いのか コンテキストというと、どうしても汎用的なの、もっと言うとGod的なの想像しちゃった コンテキストだとある程度は汎用性を持たせた実装にしないと、 最悪の場合、引数で与えたくない値をラップして見えにくくすることで、 罪悪感を和らげる的な実装になってしまう気がする だから自分は重いコードを想像してしまった http://mevius.5ch.net/test/read.cgi/tech/1751545806/951
952: デフォルトの名無しさん [sage] 2025/08/12(火) 01:24:59.60 ID:MtCSZU3d 複おじの複って何の略なの? オレオレ用語を使われてもよくわからん http://mevius.5ch.net/test/read.cgi/tech/1751545806/952
953: デフォルトの名無しさん [sage] 2025/08/12(火) 01:48:28.10 ID:a3TkiHxV 複おじの概要 https://mevius.5ch.net/test/read.cgi/tech/1680363777/5 http://mevius.5ch.net/test/read.cgi/tech/1751545806/953
954: デフォルトの名無しさん [sage] 2025/08/12(火) 01:50:32.88 ID:a3TkiHxV あの頃に比べると複おじは全然コード書かなくなったな 最近は他言語とか初心者をこき下ろしてばっかり http://mevius.5ch.net/test/read.cgi/tech/1751545806/954
955: デフォルトの名無しさん [sage] 2025/08/12(火) 02:40:56.87 ID:u3A5dRZj >>950 Rustでnew()の意味は決まっていなくて自由だけど おおむね最小限のものを与えるものがnew() つまりnew()の引数は最小限のものを作るのに必要なもののみ 今回はnew()に与えたくない引数を与えるか悩んでるようだから 必要最小限てはない引数であると推測できる この状況では3つの単純な方法 ①new()してからsetxxx()を呼び出す ➁①の2つを一気に行なうxxx()を作る>>942 ③ビルダーパターン http://mevius.5ch.net/test/read.cgi/tech/1751545806/955
956: デフォルトの名無しさん [sage] 2025/08/12(火) 08:30:19.04 ID:4cospISj 今時そんなパラメータ並べるだけの低次元な単純作業はAIにやらせりゃ一瞬なんだからどうでもいいよ 内部的に使うだけであり、かつAI利用を前提とするなら、>>942案がベター ユースケースに特化した最小限の実装の方が人間がコードレビューしやすいし、少ないトークンで済むし、AIに余計な混乱を与えない 後で変更する必要が出てきたときの認知負荷の問題もAI前提ならあまり考慮しなくていいしな http://mevius.5ch.net/test/read.cgi/tech/1751545806/956
957: デフォルトの名無しさん [sage] 2025/08/12(火) 10:27:16.64 ID:uzbu6zoz Rustの仕事って複おじみたいな活動をする仕事しかもうないんじゃね http://mevius.5ch.net/test/read.cgi/tech/1751545806/957
958: デフォルトの名無しさん [sage] 2025/08/12(火) 10:32:04.33 ID:o6GedXY5 >>951 コンストラクタとコンテキストを空目してる? http://mevius.5ch.net/test/read.cgi/tech/1751545806/958
959: デフォルトの名無しさん [sage] 2025/08/12(火) 10:47:11.93 ID:6RAsIQle ビルダにしつつマクロでくるむのもよくあるパターン。 Rust には可変長引数がないから割と気軽にマクロを使う。 それか引数全体を構造体にして基本パターンを Default で生成できるように実装しつつ変更が必要なところは .. で変えるみたいなのもある。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/959
960: デフォルトの名無しさん [sage] 2025/08/12(火) 10:56:03.75 ID:5BWK9Np7 >>955 いわゆる依存性の注入パターンだから Constructor Injection Method Injection Setter Injection どれを使ってもよくて大した問題ではないな しかしこれはどの言語でも起きる共通の話 >>929がRustに変えたら悩んだと言ってることが理解できない http://mevius.5ch.net/test/read.cgi/tech/1751545806/960
961: デフォルトの名無しさん [] 2025/08/12(火) 10:58:44.65 ID:G/XPXKyQ >>958 はい。空目した http://mevius.5ch.net/test/read.cgi/tech/1751545806/961
962: デフォルトの名無しさん [sage] 2025/08/12(火) 11:05:02.51 ID:ag9TAHO3 実質ビルダと変わらんけど初期化用の構造体からfromとかintoで変換するのがRustっぽい impl From<...> for Foo を複数の型に対して実装すると初期化オーバーロードの代替になる http://mevius.5ch.net/test/read.cgi/tech/1751545806/962
963: デフォルトの名無しさん [sage] 2025/08/12(火) 11:09:29.01 ID:S3jeW6Sh >>957 システムプログラミング用だけどC/C++と違って組み込みみたいな数こなす仕事がないからね 一部、自動運転のような高度な分野で使われているようだが、Rustを好むような層に作業服着て愛知の工場で働きたい奴がどれだけいるかは激しく疑問だわな Web系にしてもRustは少ない労力で極めて大きくスケールする部分に限定して用いられるのが現状で、 大量に並んだ業務トランザクションの一覧を一個一個実装してくような性質の仕事じゃないから、Rustの仕事はごく一部の上位層に限られる http://mevius.5ch.net/test/read.cgi/tech/1751545806/963
964: デフォルトの名無しさん [sage] 2025/08/12(火) 11:17:08.27 ID:55fYHsEH >>962 Rustプログラミングはトレイトを用いたジェネリック化が基本だよね 初期化生成が単なる変換で済むなら独自トレイトは不要でFromやTryFromを使うのがRust流 なぜトレイトを使うべきか理由は複数の型に対応できるだけでなくテストの時のテスト用モック型も同様に扱えるため http://mevius.5ch.net/test/read.cgi/tech/1751545806/964
965: デフォルトの名無しさん [sage] 2025/08/12(火) 11:20:36.03 ID:kIE6XRW2 >>963 生成AIでもライブラリのRust化など色んな分野でRustへ置き換わる方向へ進みつつあるよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/965
966: デフォルトの名無しさん [sage] 2025/08/12(火) 11:34:03.77 ID:sCNFFs6h Rustがネイティブで動くFPGAとか出てこないかな http://mevius.5ch.net/test/read.cgi/tech/1751545806/966
967: デフォルトの名無しさん [] 2025/08/12(火) 11:34:46.25 ID:G/XPXKyQ 個人開発でiphone, android両対応のアプリにcrdtを組み込むのにrustを使ってる そんな上位層でもないんだけど http://mevius.5ch.net/test/read.cgi/tech/1751545806/967
968: デフォルトの名無しさん [] 2025/08/12(火) 11:45:54.31 ID:qcKUJthg ビルダーやnewとかfromコンストラクタとかの話は言語機能の貧弱さから来ているんでは? 文法でなくコミュニティ依存のベストプラクティスを学ばないといけないのは弱点だと思う 後で潮流が変わってそのためだけにシグネチャを変えるのがバカバカしい 変えないと古臭いとか勉強不足と言われるのもくだらない http://mevius.5ch.net/test/read.cgi/tech/1751545806/968
969: デフォルトの名無しさん [sage] 2025/08/12(火) 12:08:53.37 ID:cacY6MRR >>968 言語機能が強いからFrom実装だけで任意の型に対して対応できるんよ エラー型の変換にしても同様 ?オペレータで自動的にInto変換されるためこれもFrom実装だけで対応OK http://mevius.5ch.net/test/read.cgi/tech/1751545806/969
970: デフォルトの名無しさん [] 2025/08/12(火) 12:19:28.82 ID:TPXEzVE3 >>965 Rust意味ないじゃんw http://mevius.5ch.net/test/read.cgi/tech/1751545806/970
971: デフォルトの名無しさん [sage] 2025/08/12(火) 12:22:14.20 ID:IjrX/Wgj >>968 コミュニティ依存の方法なんてないぜ 全てRust標準ライブラリで用いられている標準の方法だ Fromを知らずして君はRustの何を勉強したと言うのだ?? http://mevius.5ch.net/test/read.cgi/tech/1751545806/971
972: デフォルトの名無しさん [sage] 2025/08/12(火) 12:49:05.48 ID:aUpqhYkf newはコミュニティで意味をもたせてるだけで、別に言語的に特別な意味を持たないっていうのは どうなんだろうなとは思う http://mevius.5ch.net/test/read.cgi/tech/1751545806/972
973: デフォルトの名無しさん [sage] 2025/08/12(火) 12:55:21.80 ID:9RnwCZim >>970 どの分野でも省メモリ化や高速化が求められる部分があって従来はC/C++で書かれていたんだけど 今は安全性の観点からもRustを使えるならRustを使え、になっていってる 日本でもすぐにそうなるよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/973
974: デフォルトの名無しさん [sage] 2025/08/12(火) 13:03:36.49 ID:uzbu6zoz >>973 生成AIは安全なの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/974
975: デフォルトの名無しさん [sage] 2025/08/12(火) 13:07:23.74 ID:6RAsIQle コンストラクタに元から特別な意味などなかったことに気づいたという話なんじゃねーの。 new は共通するインターフェイスに出来ないからトレイトにする意味もないし。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/975
976: デフォルトの名無しさん [sage] 2025/08/12(火) 13:14:49.76 ID:U2drFIcF >>863 その仮想スレッドはRustではタスクと呼んでいて既に実現されている 業界がRust支持へ回った背景としてRustの軽量なタスク実装がサーバーの能力を最大限に引き出せることを実証した点が最も大きい 安全なだけでは採用されなかった http://mevius.5ch.net/test/read.cgi/tech/1751545806/976
977: デフォルトの名無しさん [sage] 2025/08/12(火) 13:56:44.32 ID:tGCKXEeA tokioのtaskのことだと思うけど、あれは仮想スレッドとは違うよ 仮想スレッドというと、 awaitのような中断ポイントを明示せず普通の関数のように書けて、かつIO処理をランタイム側で非同期にやってくれるものを指すと思う http://mevius.5ch.net/test/read.cgi/tech/1751545806/977
978: デフォルトの名無しさん [sage] 2025/08/12(火) 13:57:24.16 ID:tGCKXEeA JavaやGoは仮想スレッドを http://mevius.5ch.net/test/read.cgi/tech/1751545806/978
979: デフォルトの名無しさん [sage] 2025/08/12(火) 14:04:54.70 ID:S3jeW6Sh わざわざ100レス遡って初心者レベルの間違った知識を披露する これが複おじの真骨頂よ http://mevius.5ch.net/test/read.cgi/tech/1751545806/979
980: デフォルトの名無しさん [sage] 2025/08/12(火) 15:14:44.73 ID:tZhL89Xj >>974 もしかして複おじ http://mevius.5ch.net/test/read.cgi/tech/1751545806/980
981: デフォルトの名無しさん [] 2025/08/12(火) 17:12:45.82 ID:wTdmXaoa >>977 taskはtokio固有ではなくRust自体の概念 tokioはスケジューラーの1つにすぎない tokioがなくてもtaskは機能する 軽量スレッドの実現にOSスレッドやOSプロセスと同様のプリエンプティブを求めるべきかどうかは議論が分かれるが 目的は軽量で高速に大量に動けばよく 同一プロセス内の自分自身のコードならば協調型でも支障はない Rustでもversion 1.0になる前はプリエンプティブな軽量スレッドが採用されていた しかしオーバーヘッドが大きいため廃止されてからRust 1.0が出た経緯がある そして真に求められている実用的な軽さと速さから現在の協調型非同期なtaskが採用されその実用性が示された 結果としてRustへの移行が進みこの判断が正しいと証明された http://mevius.5ch.net/test/read.cgi/tech/1751545806/981
982: デフォルトの名無しさん [sage] 2025/08/12(火) 17:50:01.63 ID:6RAsIQle 仮想スレッドの「仮想」は抽象度が高いことを言ってるものと理解してる。 仮想スレッドはスレッドのように動作するが実際に (OS が提供する) スレッドにどう割り当てられるかは実装の都合。 ひとつのスレッドの中で複数の仮想スレッドが協調スレッドのように動作するようなことがあるかもしれないし、 実際には同期的かもしれないが見かけ上はひとつの実行単位として抽象化されたレイヤが与えられている。 そういう意味でなら Rust のタスクは仮想スレッドのような概念だと言っても間違いではないんじゃないかな。 タスクはあくまでも見かけ上のインターフェイスであって、それを実際にどう処理するかはランタイムの選択次第。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/982
983: デフォルトの名無しさん [sage] 2025/08/12(火) 18:56:38.02 ID:Fr0OCoiD >>982 君やRustコミュニティがRustのタスクを仮想スレッドと呼ぶのは自由だが、明確に異なるものであることを理解しておく必要がある。 JavaやGoにおいておいて仮想スレッドで実行されるコードは完全に同期的であり、 OSスレッドだろうと軽量スレッドだろうとその上で実行されるコードに違いは生じない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/983
984: デフォルトの名無しさん [] 2025/08/12(火) 19:11:01.80 ID:wTdmXaoa Javaの仮想スレッドもRustのタスクもGoのGoルーチンもOSスレッドに対してM:Nスケジューリングする点で違いはないよ Rustの場合はスケジューラ依存だがtokioなどで全く同様にM:Nスケジューリングできている 違いはプリエンプティブかどうかスタックレスかどうかなど Rustは協調的にスタックレスでパフォーマンスを出している http://mevius.5ch.net/test/read.cgi/tech/1751545806/984
985: デフォルトの名無しさん [sage] 2025/08/12(火) 19:11:36.92 ID:evYq+DIX 仮想スレッドとタスクは別物だろう タスクは非同期ランタイム上で実行される処理の方に注目したもの JavaやGoだと「仮想スレッド上で通常の関数やメソッドを呼び出す」、RustやC#だと「非同期ランタイム上でタスクを実行する」という感じ これらはそもそも違う方式 http://mevius.5ch.net/test/read.cgi/tech/1751545806/985
986: デフォルトの名無しさん [] 2025/08/12(火) 19:24:15.59 ID:/yJ0tylT 目的は共通して 高速かつ同時に大量に扱えること CPUが持つ多くのコアスレッド数を偏りなく限界まで使い切れること そして現実の用途でそのパフォーマンスを発揮すること Rustのタスク/tokioはこれを満たしていてGAFAMをはじめとしたIT大手各社が採用している http://mevius.5ch.net/test/read.cgi/tech/1751545806/986
987: デフォルトの名無しさん [] 2025/08/12(火) 19:32:22.66 ID:wTdmXaoa >>985 その書き分けは正しくない どちらもランタイムが必要な点では同じ http://mevius.5ch.net/test/read.cgi/tech/1751545806/987
988: デフォルトの名無しさん [sage] 2025/08/12(火) 19:43:37.81 ID:KkjDCbTs バカおじは、特に非同期やマルチスレッドでの実行を意図していない通常のコードもスレッドで実行されていることを理解していないのだろう RustやC#のタスクと比較したJavaやGoの仮想スレッドの最大の特徴は同期的なコードと非同期的なコードの間に違いが無いことであり、 既存の同期的なコードを非同期化しようとする場合にも大規模な書き換えを必要としない http://mevius.5ch.net/test/read.cgi/tech/1751545806/988
989: デフォルトの名無しさん [] 2025/08/12(火) 20:17:50.06 ID:/yJ0tylT どちらが良いかは明らかで 言語自体も普及が遅れていて不利なRustのタスク方式を各社が採用した その結果Rust自体も普及することになった http://mevius.5ch.net/test/read.cgi/tech/1751545806/989
990: デフォルトの名無しさん [sage] 2025/08/12(火) 20:28:25.50 ID:a3TkiHxV タスクと仮想スレッドは違うと言いたいんだか同じと言いたいんだかブレブレで何言ってるかさっぱり分からん http://mevius.5ch.net/test/read.cgi/tech/1751545806/990
991: デフォルトの名無しさん [sage] 2025/08/12(火) 20:35:35.59 ID:a3TkiHxV >>976「その仮想スレッドはRustではタスクと呼んでいて」 →同じ! >>984「Javaの仮想スレッドもRustのタスクもGoのGoルーチンもOSスレッドに対してM:Nスケジューリングする点で違いはないよ」「違いはプリエンプティブかどうかスタックレスかどうかなど」 →目的が同じだけど違う! >>986「目的は共通して」 →目的が同じなだけだからね! 同じとは言ってないよ! いつものくだらない言い繕いか http://mevius.5ch.net/test/read.cgi/tech/1751545806/991
992: デフォルトの名無しさん [] 2025/08/12(火) 20:41:50.62 ID:wTdmXaoa 大きな違いとしてはRustのタスク方式はスタックレスで他はスタックフル Rustでは何万ものスタック領域確保が不要でその切り替えも不要という利点がある http://mevius.5ch.net/test/read.cgi/tech/1751545806/992
993: デフォルトの名無しさん [sage] 2025/08/12(火) 20:43:33.09 ID:BYPdwzD6 平日にくだらん言い争いやめろ 仕事しろや http://mevius.5ch.net/test/read.cgi/tech/1751545806/993
994: デフォルトの名無しさん [] 2025/08/12(火) 21:25:01.40 ID:/yJ0tylT それまでマニア向けだったRustが これによりIT界の実用部門で採用され 普及に拍車をかけた重要な分岐点とみることもできる http://mevius.5ch.net/test/read.cgi/tech/1751545806/994
995: デフォルトの名無しさん [sage] 2025/08/12(火) 22:23:03.93 ID:C7FhDLJq このスレの半分は複おじでできています 複おじレスの半分は嘘・誇張・勘違いでできています (残りの半分は自演レス) http://mevius.5ch.net/test/read.cgi/tech/1751545806/995
996: デフォルトの名無しさん [sage] 2025/08/13(水) 13:05:59.56 ID:8ztXa6qO う http://mevius.5ch.net/test/read.cgi/tech/1751545806/996
997: デフォルトの名無しさん [sage] 2025/08/13(水) 14:21:30.18 ID:BMTFnZZ6 複 http://mevius.5ch.net/test/read.cgi/tech/1751545806/997
998: デフォルトの名無しさん [sage] 2025/08/13(水) 18:02:27.96 ID:8ztXa6qO お http://mevius.5ch.net/test/read.cgi/tech/1751545806/998
999: デフォルトの名無しさん [sage] 2025/08/13(水) 18:47:51.10 ID:p1WDfix1 じ http://mevius.5ch.net/test/read.cgi/tech/1751545806/999
1000: デフォルトの名無しさん [sage] 2025/08/13(水) 20:28:33.97 ID:G1NFqKcW Rust最高!! http://mevius.5ch.net/test/read.cgi/tech/1751545806/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 40日 22時間 58分 28秒 http://mevius.5ch.net/test/read.cgi/tech/1751545806/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login http://mevius.5ch.net/test/read.cgi/tech/1751545806/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s