公式
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 part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
Rust part22
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/01/20(土) 23:21:40.08ID:wyzQTwgG461デフォルトの名無しさん
2024/02/08(木) 16:06:02.61ID:34mhb8ps462デフォルトの名無しさん
2024/02/08(木) 16:07:53.03ID:d7zFncjn463デフォルトの名無しさん
2024/02/08(木) 16:08:25.23ID:34mhb8ps464デフォルトの名無しさん
2024/02/08(木) 16:43:53.73ID:ug5u5xxX WASMはあまりにアセンブリ言語すぎる
watで直接WASMを書いてコンパイルするのが一番バイナリのファイルサイズを抑えられるけど大変
watじゃなくて他の言語で書くにしてもstd使うとファイルサイズが爆増する
既存のライブラリをWASM化するならともかく、既存のJavaScriptコードをstd有りで書き直すのは、ファイルサイズがJavaScriptのときと比較して増えて本末転倒だからJavaScriptのままでいい
watやRust with no-stdでWASMを頑張る人は頑張って
watで直接WASMを書いてコンパイルするのが一番バイナリのファイルサイズを抑えられるけど大変
watじゃなくて他の言語で書くにしてもstd使うとファイルサイズが爆増する
既存のライブラリをWASM化するならともかく、既存のJavaScriptコードをstd有りで書き直すのは、ファイルサイズがJavaScriptのときと比較して増えて本末転倒だからJavaScriptのままでいい
watやRust with no-stdでWASMを頑張る人は頑張って
465デフォルトの名無しさん
2024/02/08(木) 16:54:49.99ID:GUaqsUfs466デフォルトの名無しさん
2024/02/08(木) 17:10:13.67ID:ug5u5xxX だめだ、WASM specを見直してるけど相変わらず何書いてあるのかわからん
467デフォルトの名無しさん
2024/02/08(木) 17:15:11.69ID:TVrzLD8V >>464
規模がデカいアプリケーションは std の大きさなんてどうでもよくなるくらいにデカい。
大規模化するウェブアプリケーションが想定されているから
JavaScript のほうが軽量であるときは JavaScript を使えばいいよ。
そうじゃないときがあるって話なんだよ。
規模がデカいアプリケーションは std の大きさなんてどうでもよくなるくらいにデカい。
大規模化するウェブアプリケーションが想定されているから
JavaScript のほうが軽量であるときは JavaScript を使えばいいよ。
そうじゃないときがあるって話なんだよ。
468デフォルトの名無しさん
2024/02/08(木) 17:20:27.37ID:K+TPHqwf 1コアで毎秒数万リクエスト処理するようなゲームサーバー的なものの話をしてると思ってたらSSRとかReactとか全く違うユースケースの話をしてる人達がいたのか
そりゃ話が噛み合わないわなぁ
そりゃ話が噛み合わないわなぁ
469デフォルトの名無しさん
2024/02/08(木) 17:26:24.69ID:Z/Y0D/hR 話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
470デフォルトの名無しさん
2024/02/08(木) 17:26:27.02ID:Z/Y0D/hR 話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
471デフォルトの名無しさん
2024/02/08(木) 17:33:18.45ID:wPAPAJoC >>467
その規模のデカいアプリケーションとやらがffmpegとかゲームとかをやるwasmならファイルサイズが大きくなる以上のメリットがあるからいいが、きれいなUIを表現するためにjavascriptよりファイルサイズの大きくなったwasmを使うのはアホとだけ言っておくわ
その規模のデカいアプリケーションとやらがffmpegとかゲームとかをやるwasmならファイルサイズが大きくなる以上のメリットがあるからいいが、きれいなUIを表現するためにjavascriptよりファイルサイズの大きくなったwasmを使うのはアホとだけ言っておくわ
472デフォルトの名無しさん
2024/02/08(木) 17:42:32.82ID:EBOg13nx >>464
Wasmではfsなど必要ないのだから
no_stdで全く問題なくプログラミングできます
Rustの基本はほとんどcoreに入っています
allocを使えばVecやStringも使えます
あと欲しくなるのはHashMapあたりでしょうがこれもhashbrownで使えます
一度no_stdでプログラミングしてみることをオススメします
Wasmではfsなど必要ないのだから
no_stdで全く問題なくプログラミングできます
Rustの基本はほとんどcoreに入っています
allocを使えばVecやStringも使えます
あと欲しくなるのはHashMapあたりでしょうがこれもhashbrownで使えます
一度no_stdでプログラミングしてみることをオススメします
473デフォルトの名無しさん
2024/02/08(木) 17:44:09.24ID:EBOg13nx474デフォルトの名無しさん
2024/02/08(木) 17:55:44.80ID:TVrzLD8V Rust で簡易アセンブラっぽいものを作ったことがあった (特に std を避けるとかしてない) ので
wasm で出力してみたけどだいたい 140kb くらいな感じ。
たぶん JavaScript で書いて最適化もすればもっと小さくは出来そうな感触はあるが
だからといって Rust でやって深刻に巨大すぎるということはない。
小さいプログラムのときでも Wasm は使い物になる。
いや、もちろん比較したら JavaScript で書いたほうがよいことも多いのだろうけど、
全くのアンチパターンってことはない。
wasm で出力してみたけどだいたい 140kb くらいな感じ。
たぶん JavaScript で書いて最適化もすればもっと小さくは出来そうな感触はあるが
だからといって Rust でやって深刻に巨大すぎるということはない。
小さいプログラムのときでも Wasm は使い物になる。
いや、もちろん比較したら JavaScript で書いたほうがよいことも多いのだろうけど、
全くのアンチパターンってことはない。
475デフォルトの名無しさん
2024/02/08(木) 17:56:24.51ID:ug5u5xxX >>472
いやー、watでいいかな
いやー、watでいいかな
476デフォルトの名無しさん
2024/02/08(木) 18:26:36.73ID:d7zFncjn Figmaはecmascripten使ってるそうだよ
C++で書いてWebGL用にコンパイル
おそらく世界最大のwasmコードだろう
https://www.figma.com/ja/blog/webassembly-cut-figmas-load-time-by-3x/
C++で書いてWebGL用にコンパイル
おそらく世界最大のwasmコードだろう
https://www.figma.com/ja/blog/webassembly-cut-figmas-load-time-by-3x/
477デフォルトの名無しさん
2024/02/08(木) 18:29:10.38ID:d7zFncjn 今のところrustよりはecmascriptenの方が既存コードを活かせる
478デフォルトの名無しさん
2024/02/08(木) 18:37:22.37ID://05Mhwl479デフォルトの名無しさん
2024/02/08(木) 18:41:39.17ID:d7zFncjn >>478
next.jsはUI部分だけでバックエンドはRustだから特に必要性は感じないね
next.jsはUI部分だけでバックエンドはRustだから特に必要性は感じないね
480デフォルトの名無しさん
2024/02/08(木) 18:54:05.90ID://05Mhwl >>479
Next.jsでSSRなら毎回JavaScriptのコードが動くわけだけど
「バックエンドはRustだから」って?
外から受ける部分のサーバはRustでもそこからNext.jsを動かすためのNode.jsなどを呼び出すことになるよね
Next.jsでSSRなら毎回JavaScriptのコードが動くわけだけど
「バックエンドはRustだから」って?
外から受ける部分のサーバはRustでもそこからNext.jsを動かすためのNode.jsなどを呼び出すことになるよね
481デフォルトの名無しさん
2024/02/08(木) 19:25:31.03ID:QINBs586 単にNext.jsがデータをフェッチする先のAPIエンドポイントがRust製ってだけだろ。
LBやらWebサーバーのような低レイヤがRust製かどうかみたいなのはそんなにユーザーに近いWeb屋が気にかけて手をいれる場所でもない。
LBやらWebサーバーのような低レイヤがRust製かどうかみたいなのはそんなにユーザーに近いWeb屋が気にかけて手をいれる場所でもない。
482デフォルトの名無しさん
2024/02/08(木) 19:29:46.46ID:0U3NNgcj 途中にビルド嚙ませれば同じにできるけど一般的にはCommonJSとECMAScriptで違う方言のJSでやり取りする事になるけどね
TypeScriptは使ってないから知らん
TypeScriptは使ってないから知らん
483デフォルトの名無しさん
2024/02/08(木) 19:34:55.22ID:XA34Vq7w484デフォルトの名無しさん
2024/02/08(木) 19:38:03.57ID:XODN4PGj next.jsは普通に速いよ
ビルドがクソ遅いだけで
他のエコシステムはもっと高速なんだけどねえ
ビルドがクソ遅いだけで
他のエコシステムはもっと高速なんだけどねえ
485デフォルトの名無しさん
2024/02/08(木) 19:54:29.48ID:vWC2S6ww サーバーサイドは可能な限りリソースコスト(クラウド代/ハード代電気代)を下げたい
Next.jsに限らずJavaScriptを含めた遅い言語の実行は避けたい
すべてをRust化するのが最善案
Next.jsに限らずJavaScriptを含めた遅い言語の実行は避けたい
すべてをRust化するのが最善案
486デフォルトの名無しさん
2024/02/08(木) 20:01:51.28ID:ZqeEswjg Next.js(Nuxt.js)はどんなにクソだとしても使わざるをえないものなんだよね
Next.js以上のものはもはや作れんよ
Next.js以上のものはもはや作れんよ
487デフォルトの名無しさん
2024/02/08(木) 20:03:16.79ID:XODN4PGj それな
App Routerが神過ぎるんよ
これのおかげでサーバーサイドエンジニアが全てコントロールできるようになった
App Routerが神過ぎるんよ
これのおかげでサーバーサイドエンジニアが全てコントロールできるようになった
488デフォルトの名無しさん
2024/02/08(木) 20:29:26.04ID:ZTHDKZhp >>464
forthみたいで面白くない?
forthみたいで面白くない?
489デフォルトの名無しさん
2024/02/08(木) 21:09:57.90ID:iGefvq8R Next.jsがRailsの息の根を止めたわけだが、
React+Next.js+〇〇
このバックエンド部分の〇〇がRustが活かせるところ
React+Next.js+〇〇
このバックエンド部分の〇〇がRustが活かせるところ
490デフォルトの名無しさん
2024/02/08(木) 21:15:13.68ID:fAoXwANU491デフォルトの名無しさん
2024/02/08(木) 22:03:30.31ID:z3hLjd3o もう大きくは変わらないんじゃないか?
正直俺はPages Routerまでのnext.jsはゴミだと思ってたから使ってなかった
しかしApp Routerを見たときまさに俺の求めているものだと感じた
多分これが最高地点だよ
正直俺はPages Routerまでのnext.jsはゴミだと思ってたから使ってなかった
しかしApp Routerを見たときまさに俺の求めているものだと感じた
多分これが最高地点だよ
492デフォルトの名無しさん
2024/02/09(金) 00:17:38.71ID:tjbjc/kZ 今はRuby on Rails でも、React/Next.js, TypeScript が転職で必須。
少し前は、Vue.js だったけど、Vue 3 は流行らなかった
Rails 7 からは、Hotwire に変わった。
HotwireはHTML Over The Wireの略で、
SPAの開発において、JavaScriptのコーディングを極力必要としない。
脱node.js, webpack
JSONではなく、HTMLベース。
サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する
これで、Reactに取られたシェアを回復する
少し前は、Vue.js だったけど、Vue 3 は流行らなかった
Rails 7 からは、Hotwire に変わった。
HotwireはHTML Over The Wireの略で、
SPAの開発において、JavaScriptのコーディングを極力必要としない。
脱node.js, webpack
JSONではなく、HTMLベース。
サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する
これで、Reactに取られたシェアを回復する
493デフォルトの名無しさん
2024/02/09(金) 06:07:49.74ID:79P7yOqB >>492
javascript使ったほうがラクなのになんでわざわざhtml縛りするの?
javascript使ったほうがラクなのになんでわざわざhtml縛りするの?
494デフォルトの名無しさん
2024/02/09(金) 07:43:30.04ID:uUxbU3bY Ruby信者はズレてるから仕方ない
495デフォルトの名無しさん
2024/02/09(金) 07:53:26.10ID:cmMrL7Ws SSRのsvelteはWebオーサリングツールから実画面に持っていきやすい
WebページのスクリプトにRust使えるブラウザとRust実装のsvelteを作ってもらいたい
WebページのスクリプトにRust使えるブラウザとRust実装のsvelteを作ってもらいたい
496デフォルトの名無しさん
2024/02/09(金) 08:55:44.38ID:so08h4Qi SvelteもNext.jsもサーバーサイドでJavaScriptを動かすためエコじゃないのでいずれ新たなものに置き換えられるでしょう
497デフォルトの名無しさん
2024/02/09(金) 09:34:26.12ID:Kdv0HxUE std::any::type_name_of_val()は学習時にも良さそ
498デフォルトの名無しさん
2024/02/09(金) 09:59:55.75ID:so08h4Qi 昔から使えるよ
fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str {
std::any::type_name::<T>()
}
fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str {
std::any::type_name::<T>()
}
499デフォルトの名無しさん
2024/02/09(金) 10:27:55.96ID:C39eXNkM >>493
JS使った方が楽という感覚は理解できんわ
JS使った方が楽という感覚は理解できんわ
500デフォルトの名無しさん
2024/02/09(金) 13:19:22.70ID:YdTAf9YB >>496
next.jsのapp routerがサーバーサイドフレームワークになったの知らないの?
next.jsのapp routerがサーバーサイドフレームワークになったの知らないの?
501デフォルトの名無しさん
2024/02/09(金) 13:59:04.29ID:wfDAL7tm リソースコストがかかるスクリプト言語をサーバーサイドで動かしてる連中はいずれ消えるさ
502デフォルトの名無しさん
2024/02/09(金) 14:16:42.17ID:YdTAf9YB503デフォルトの名無しさん
2024/02/09(金) 15:05:02.67ID:7wM1u29W どんどんrustの話から離れていってんな
504デフォルトの名無しさん
2024/02/09(金) 15:19:56.77ID:d4LbU2O8 SSRやCSRがややこしいと感じる意味がわからん
Next.jsのPage Router時代の区別がややこしかったと感じてるだけとちゃう?
特定の実装とは関係のない概念としてのSSRやCSRは別にややこしくも何ともないでしょ
ReactのサーバーコンポーネントはNext..jsではサーバーサイドでレンダリング(HTML生成される)、つまりSSR
クライアントコンポーネントはクライアントサイドでレンダリングされる、つまりCSR
ついでに言うとHotwireみたいなのも仕組みとしての基本的な考え方は同じ
Next.jsのPage Router時代の区別がややこしかったと感じてるだけとちゃう?
特定の実装とは関係のない概念としてのSSRやCSRは別にややこしくも何ともないでしょ
ReactのサーバーコンポーネントはNext..jsではサーバーサイドでレンダリング(HTML生成される)、つまりSSR
クライアントコンポーネントはクライアントサイドでレンダリングされる、つまりCSR
ついでに言うとHotwireみたいなのも仕組みとしての基本的な考え方は同じ
505デフォルトの名無しさん
2024/02/09(金) 15:26:09.73ID:wyTCEkUp Rustで引数の数を可変にしたいと思っただけでマクロが必要になるの、どういう思想なんだ
506デフォルトの名無しさん
2024/02/09(金) 15:36:06.60ID:gZOHhCrR >>505
型システムとの兼ね合い。
型システムとの兼ね合い。
507デフォルトの名無しさん
2024/02/09(金) 15:38:36.69ID:ixshWTAh >>505
オプショナル引数 → 数が少ないならOption多いならbuilder
可変長の引数 → スライス
マクロを使うのは個々の引数の扱いがそれぞれ異なりそれぞれをコンパイル時に型をチェックしたい場合などに使う
オプショナル引数 → 数が少ないならOption多いならbuilder
可変長の引数 → スライス
マクロを使うのは個々の引数の扱いがそれぞれ異なりそれぞれをコンパイル時に型をチェックしたい場合などに使う
508デフォルトの名無しさん
2024/02/09(金) 15:52:26.69ID:IKpgt5UR next.jsはRustフレンドリーなフレームワークだから実質Rustなんだよね
509デフォルトの名無しさん
2024/02/09(金) 16:25:40.87ID:YdTAf9YB >>504
その発想だとサーバーアクションは説明できないよ
その発想だとサーバーアクションは説明できないよ
510デフォルトの名無しさん
2024/02/09(金) 16:28:31.07ID:YdTAf9YB >>508
俺は将来的にnext.jsは全部rustで書きなおされると思ってる
俺は将来的にnext.jsは全部rustで書きなおされると思ってる
511デフォルトの名無しさん
2024/02/09(金) 16:37:49.82ID:DOCRBofH512デフォルトの名無しさん
2024/02/09(金) 17:13:49.98ID:wfDAL7tm >>510
同感
同感
513デフォルトの名無しさん
2024/02/09(金) 18:59:39.30ID:wyTCEkUp C++であれば関数のオーバーロードで実現していたようなことをRustでは全部封じてしまった結果、ライブラリは至る所マクロだらけ
これはRustの目指したいところなのか?
これはRustの目指したいところなのか?
514デフォルトの名無しさん
2024/02/09(金) 19:22:48.34ID:6IeD8Xf6 実行時の分岐ではなくコンパイル時のコード生成に置き換わるんだから
ゼロコスト抽象化という観点ではC++のほうがそちらを目指さなければいけなかったんじゃないでしょうか。
ゼロコスト抽象化という観点ではC++のほうがそちらを目指さなければいけなかったんじゃないでしょうか。
515デフォルトの名無しさん
2024/02/09(金) 19:24:12.28ID:6IeD8Xf6 あ、可変長引数の話とオーバーロードの話を混同してしまっていた。
516デフォルトの名無しさん
2024/02/09(金) 19:32:53.51ID:RpHX5dqz https://qiita.com/buntafujikawa/items/1bd808f5f55eb63df7c4
こういうの知ってたら
オーバーロードもデフォルト引数もいらね〜
どうしてもほしけりゃ別名の関数作るわ
ってならん?
こういうの知ってたら
オーバーロードもデフォルト引数もいらね〜
どうしてもほしけりゃ別名の関数作るわ
ってならん?
517デフォルトの名無しさん
2024/02/09(金) 19:45:04.86ID:qkcXaSLH 別名の関数を作りたくなるのはわからんでもないけど、実際crates.ioはそうならずにマクロだらけなので
518デフォルトの名無しさん
2024/02/09(金) 20:35:29.36ID:gZOHhCrR 田舎者は十年間使わない道具でも納屋にしまいっぱなしってことがまあまああるけど都会だとどんどん捨てるじゃん。
都会では物より空間のほうが高くつくから。
何が大事か、何を大事ということにするかで判断が変わる。
名前を考えるってのは人にとって思ったより負荷が高いということに対する解がオーバーロードなんだよ。
でもまあオーバーロードにもデメリットは当然ながらあるので結局は何を重視するかの問題。
都会では物より空間のほうが高くつくから。
何が大事か、何を大事ということにするかで判断が変わる。
名前を考えるってのは人にとって思ったより負荷が高いということに対する解がオーバーロードなんだよ。
でもまあオーバーロードにもデメリットは当然ながらあるので結局は何を重視するかの問題。
519デフォルトの名無しさん
2024/02/09(金) 23:53:50.41ID:qm1w3dJY オーバーロードは無くてもいいけどキーワード引数は欲しいかな
520デフォルトの名無しさん
2024/02/09(金) 23:59:48.02ID:D/1cks9J521デフォルトの名無しさん
2024/02/10(土) 02:54:22.21ID:rfU+NtYa >>520
いちいちstructを定義しなくてもいいようにするためにキーワード引数って存在してるんだよ
いちいちstructを定義しなくてもいいようにするためにキーワード引数って存在してるんだよ
522デフォルトの名無しさん
2024/02/10(土) 09:13:20.91ID:KcmgHb9l523デフォルトの名無しさん
2024/02/10(土) 09:40:29.45ID:d2BF2Jtb Rustでなぜデフォルト引数がサポートされてないのかはここでよろしく
https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/
https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/
524デフォルトの名無しさん
2024/02/10(土) 09:50:58.48ID:lXB6J68A 構造体を使うかビルダーパターンで困ることはないからね
もし技術的に矛盾のない他の良い方法があれば提案してみるべきだけど既出だと思うよ
もし技術的に矛盾のない他の良い方法があれば提案してみるべきだけど既出だと思うよ
525デフォルトの名無しさん
2024/02/10(土) 09:54:14.05ID:Lf9bQLCg ビルダーパターンは自分で書くならめんどい
526デフォルトの名無しさん
2024/02/10(土) 10:07:03.72ID:iJNhxzEm527デフォルトの名無しさん
2024/02/10(土) 10:08:52.95ID:QvZInASK ADAってどう?
528デフォルトの名無しさん
2024/02/10(土) 10:22:50.56ID:iJNhxzEm Adaってなんだと思って調べたら米国国防総省が主導のもとで開発されたプログラミング言語なんだね
後に開発されたC++やJavaに影響を与えたんだって
後に開発されたC++やJavaに影響を与えたんだって
529デフォルトの名無しさん
2024/02/10(土) 10:33:01.11ID:VP+Iax6j530デフォルトの名無しさん
2024/02/10(土) 10:33:37.95ID:2jz47bNZ パターンとかきしょすぎ
Javaみてえな文化
Javaみてえな文化
531デフォルトの名無しさん
2024/02/10(土) 10:36:17.39ID:VP+Iax6j532デフォルトの名無しさん
2024/02/10(土) 11:15:35.75ID:6T66/lvp533デフォルトの名無しさん
2024/02/10(土) 11:20:28.46ID:iJNhxzEm534デフォルトの名無しさん
2024/02/10(土) 11:21:55.77ID:xcSAMi5J キーワード引数のような劣った方法より構造体あるいはビルダーパターンが絶対にいいぞ
デフォルト値はまとめてDefault実装でがっちりコードも書けるしな
デフォルト値はまとめてDefault実装でがっちりコードも書けるしな
535デフォルトの名無しさん
2024/02/10(土) 11:24:20.16ID:iJNhxzEm キーワード引数は>>523に書いてあるように、いまだ有用な実装が挙がってないから無い
数年後には有用な実装が提言されてるかもしれないから待て
数年後には有用な実装が提言されてるかもしれないから待て
536デフォルトの名無しさん
2024/02/10(土) 11:32:26.22ID:iJNhxzEm パターンにアンチ的な考えを持つのはお門違い
Webアプリにしてもコア部分のライブラリにしても、一般的なデザインパターンに基づいて設計されていればあとから雇った技術者に引き継がせるのが楽ちん
デザインパターンのうちのひとつ、ビルダーパターンだって可読性、保守性に優れてるから使われているんだ
Webアプリにしてもコア部分のライブラリにしても、一般的なデザインパターンに基づいて設計されていればあとから雇った技術者に引き継がせるのが楽ちん
デザインパターンのうちのひとつ、ビルダーパターンだって可読性、保守性に優れてるから使われているんだ
537デフォルトの名無しさん
2024/02/10(土) 11:53:44.03ID:H5a70urg538デフォルトの名無しさん
2024/02/10(土) 11:54:44.92ID:H5a70urg 可読性・保守性のために追加のパターンの勉強が必要だなんて信じられない
まるでJavaみたいだ
まるでJavaみたいだ
539デフォルトの名無しさん
2024/02/10(土) 11:57:02.97ID:iJNhxzEm >>537
だってPythonはデザインパターンを意識しないと保守が面倒になるような複雑に設計すること自体がアンチパターンじゃんか
だってPythonはデザインパターンを意識しないと保守が面倒になるような複雑に設計すること自体がアンチパターンじゃんか
540デフォルトの名無しさん
2024/02/10(土) 12:00:29.93ID:iJNhxzEm >>539 アンチパターンは言い過ぎか、Pythonにだってデザインパターンの基本的な原則はあるんだから
541デフォルトの名無しさん
2024/02/10(土) 12:04:27.79ID:09Czk/ru >>537
Pythonは欠陥プログラミング言語として知られているように酷い状況だよ
特に酷いと言われてるのはPythonにはinterface機能がないこと
抽象クラスで無理に実現しても劣りコードも汚い
Pythonはプログラミングはせずにあくまでもスクリプトとして用いる範囲内で使うのがよい
Pythonは欠陥プログラミング言語として知られているように酷い状況だよ
特に酷いと言われてるのはPythonにはinterface機能がないこと
抽象クラスで無理に実現しても劣りコードも汚い
Pythonはプログラミングはせずにあくまでもスクリプトとして用いる範囲内で使うのがよい
542デフォルトの名無しさん
2024/02/10(土) 12:09:31.06ID:H5a70urg まあでも言われて考えてみればbuilder patternなんてせいぜい「Pythonらしいコード」とかの範疇か
543デフォルトの名無しさん
2024/02/10(土) 12:12:05.42ID:X5MB5Dp7 >>541
pythonにインターフェースがないのは、インターフェースが必要になるような製品にpythonで設計するなってことだぞ
pythonにインターフェースがないのは、インターフェースが必要になるような製品にpythonで設計するなってことだぞ
544デフォルトの名無しさん
2024/02/10(土) 12:13:49.11ID:H5a70urg Pythonで抽象クラス使うくらいならProtocolでも使うかな
まあtrait使う方が良いのはそうかも
まあtrait使う方が良いのはそうかも
545デフォルトの名無しさん
2024/02/10(土) 12:18:46.21ID:Gv6WNLHY デザインパターンとかいうオブシコ要素をRustに持ち込むの迷惑だからやめろ
546デフォルトの名無しさん
2024/02/10(土) 12:30:54.19ID:iJNhxzEm パターンアンチが多いのか知らんけど、デザインパターンのうちクリーンアーキテクチャの考えは最低限習得しとくべきよ
フレームワークやライブラリと疎結合に実装しておけば保守性はばっちり
フレームワーク入れ替えのリファクタリングだって容易にできる
フレームワークやライブラリと疎結合に実装しておけば保守性はばっちり
フレームワーク入れ替えのリファクタリングだって容易にできる
547デフォルトの名無しさん
2024/02/10(土) 12:33:11.47ID:lBFnzKPs いわゆる従来のデザインパターンと呼ばれているものは前提としてクラスやクラス継承を前提としているものが多い
そのためRustに持ち込んでも意味がないものやRustに持ち込む必要がそもそもないことが多い
Rustを理解していない人がRustを批判しようとして逆に失敗する一因にもなっている
そのためRustに持ち込んでも意味がないものやRustに持ち込む必要がそもそもないことが多い
Rustを理解していない人がRustを批判しようとして逆に失敗する一因にもなっている
548デフォルトの名無しさん
2024/02/10(土) 13:01:44.04ID:YTHRY4oL549デフォルトの名無しさん
2024/02/10(土) 13:16:33.29ID:8ut+BFv7 Rustスレにオブシコアンチの居場所はないぞ
Rustはオブシコの主要機能の2/3を取り入れてるんだから
Rustはオブシコの主要機能の2/3を取り入れてるんだから
550デフォルトの名無しさん
2024/02/10(土) 13:20:09.17ID:LlCsSE+Z551デフォルトの名無しさん
2024/02/10(土) 13:24:24.95ID:RZD3J/dp >>547
>いわゆる従来のデザインパターンと呼ばれているものは前提としてクラスやクラス継承を前提としているものが多い
この考えが間違ってるんだよなぁ
デザインパターンの特定の実装しか理解してない人とデザインパターンの実装例から導き出される原則まで理解してる人では見えてる景色が正反対になってしまう例だね
>いわゆる従来のデザインパターンと呼ばれているものは前提としてクラスやクラス継承を前提としているものが多い
この考えが間違ってるんだよなぁ
デザインパターンの特定の実装しか理解してない人とデザインパターンの実装例から導き出される原則まで理解してる人では見えてる景色が正反対になってしまう例だね
552デフォルトの名無しさん
2024/02/10(土) 13:42:15.57ID:bXBK2+hH553デフォルトの名無しさん
2024/02/10(土) 13:57:43.35ID:UK9hi/1i >>552
それは全く違う
C++とRustにキーワード引数がないのは
リソース管理の問題があるためだ
つまり引数部分で色々やると
リソース獲得問題と解放問題などが生じてしまう
だからキーワード引数ではなぬ分離したほうが好ましい
それは全く違う
C++とRustにキーワード引数がないのは
リソース管理の問題があるためだ
つまり引数部分で色々やると
リソース獲得問題と解放問題などが生じてしまう
だからキーワード引数ではなぬ分離したほうが好ましい
554デフォルトの名無しさん
2024/02/10(土) 13:58:54.16ID:iJNhxzEm >>548
クリーンアーキテクチャはアーキテクチャパターンの中でもすごくシンプルだと思うぞ
とにかく関心の分離にこだわる、この考えに尽きる
まあ、これこそオブシコの中のオブシコの考えだからアンチは大嫌いなんだろうけど
クリーンアーキテクチャはアーキテクチャパターンの中でもすごくシンプルだと思うぞ
とにかく関心の分離にこだわる、この考えに尽きる
まあ、これこそオブシコの中のオブシコの考えだからアンチは大嫌いなんだろうけど
555デフォルトの名無しさん
2024/02/10(土) 14:03:55.89ID:lW9Vkr52556デフォルトの名無しさん
2024/02/10(土) 14:05:28.57ID:iJNhxzEm デザインパターンといえばGoFは流石に古くないか??
557デフォルトの名無しさん
2024/02/10(土) 14:05:43.92ID:AU1t0rvZ デザインパターンという言葉はGoFに汚染されているからな
デザインパターンという言葉を使うこと自体がアンチパターン
デザインパターンという言葉を使うこと自体がアンチパターン
558デフォルトの名無しさん
2024/02/10(土) 14:08:00.40ID:iJNhxzEm デザインパターンが広義的すぎるのは分かる
デザインパターンではなくアーキテクチャパターンと表すべきだというのなら、まさにごもっともでございます
デザインパターンではなくアーキテクチャパターンと表すべきだというのなら、まさにごもっともでございます
559デフォルトの名無しさん
2024/02/10(土) 14:23:27.48ID:Aed3I3PZ 話がそれてるけどデフォルト引数(キーワード引数)がRustに無いのは現時点での仕様
デフォルト引数を使える点はPythonの勝ちだねおめでとう、じゃあPythonくんはブラウザバックしようか
デフォルト引数を使える点はPythonの勝ちだねおめでとう、じゃあPythonくんはブラウザバックしようか
560デフォルトの名無しさん
2024/02/10(土) 14:40:14.16ID:XEL9SE6k 出来ることが多いほどいいってわけじゃないからなぁ。
「構造化は好きな場所にジャンプできないから欠陥のあるパラダイム!」とは言わんでしょ。
そんでそういうのは他の言語機能との連携とか諸事情を考えて決めるべきことだから
Rust でキーワード引数がないのは「今のところは」よいバランスの仕様が思いつかないでいるってだけ。
これから良いアイデアが出るかもしれないし出ないかもしれない。
「構造化は好きな場所にジャンプできないから欠陥のあるパラダイム!」とは言わんでしょ。
そんでそういうのは他の言語機能との連携とか諸事情を考えて決めるべきことだから
Rust でキーワード引数がないのは「今のところは」よいバランスの仕様が思いつかないでいるってだけ。
これから良いアイデアが出るかもしれないし出ないかもしれない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【カブス】今永昇太 1年約34億円で残留へ QO受諾 米メディア報じる [鉄チーズ烏★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- 【悲報】高市有事で日本に同調する国、1つも現れないwwwwwwwwwwwwwww [603416639]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【雑談】暇人集会所part19
- ブラックフライデーでダークソウル買って初プレイしてみようかなと思うけどどうかな
- 【悲報】女の子、整形で片目失明...高市助けて... [856698234]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
