[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
828: デフォルトの名無しさん [sage] 2022/09/26(月) 19:38:20.09 ID:V9yeC/LF >>827 テスト以外の開発の話でも フレームワークに依存してやってる人は 単純なこと含めて本質的なことを理解してない人が多く フレームワークなしでは何も分からず何も出来なくなってしまう例を時々見かける http://mevius.5ch.net/test/read.cgi/tech/1656285423/828
829: デフォルトの名無しさん [sage] 2022/09/26(月) 21:10:39.16 ID:qW/k82Qg cfg使えば良いじゃないって人は#ifまみれで一見しただけじゃ 何がどう動くんだか判らないCのコードを正当化するつもりなのだろうか Rustは人間が注意すれば問題ないみたいな考えはレガシーで時代遅れだ という思想の言語だと思っているんだが違うのかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/829
830: デフォルトの名無しさん [sage] 2022/09/26(月) 21:41:35.64 ID:w5YNQb64 >>829 #ifは使わないし cfg(test)はテスト分離のため必須でしょ どんな環境でも魔法は無いよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/830
831: デフォルトの名無しさん [sage] 2022/09/26(月) 23:33:07.51 ID:h/WE7ZWH >>829 cfg使わないで済むいい方法があるなら書いてよ... http://mevius.5ch.net/test/read.cgi/tech/1656285423/831
832: デフォルトの名無しさん [sage] 2022/09/27(火) 01:17:35.37 ID:OwORQ6vn mod tests に cfg(test) は必要だとして 依存性の注入にはtrait使えって事なのでは http://mevius.5ch.net/test/read.cgi/tech/1656285423/832
833: デフォルトの名無しさん [sage] 2022/09/27(火) 07:51:04.95 ID:f9SEu4pT traitで置き換え可能にするのが面倒というのはありそうだな。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/833
834: デフォルトの名無しさん [sage] 2022/09/27(火) 08:15:53.87 ID:SBVoZTui AMD64のデフォルトのオペランドサイズは32bitなのにusizeが64bitなのは何でなのかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/834
835: デフォルトの名無しさん [sage] 2022/09/27(火) 11:05:22.42 ID:OwORQ6vn size_tが64bitだからでは http://mevius.5ch.net/test/read.cgi/tech/1656285423/835
836: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/09/27(火) 12:28:55.13 ID:ozjafOA0 >>834 usize はポインタのサイズということになっている。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/836
837: デフォルトの名無しさん [sage] 2022/09/27(火) 19:04:38.56 ID:ZwmfNOl5 >>831 単体テストで、依存を分離するのは当然のことすぎてみんな説明が億劫になってる C++だろうがRubyだろうが、モックやスタブを使って、関数同士やクラス同士の依存を切り分けてテストするのは当たり前 そうしないとそもそも単体テストにならないじゃん わかってる人にしかわからないであろう簡略な説明をすると、テスト用のエントリポイントで、テストに使うモックオブジェクトを指定するだけだよ そういうことができるようにあらかじめコード設計しておかな
いといけないがな 考えてなかったならリファクタが必要 http://mevius.5ch.net/test/read.cgi/tech/1656285423/837
838: デフォルトの名無しさん [sage] 2022/09/27(火) 19:48:22.41 ID:J8MleXan そんなフワフワした説明されても... http://mevius.5ch.net/test/read.cgi/tech/1656285423/838
839: デフォルトの名無しさん [sage] 2022/09/27(火) 19:51:56.44 ID:AWnlNGZp 本物と異なり決まった値を返す送信元スタブと 本物と異なりassertだけする送信先モックを mod testsの中では本物の代わりにuseするだけだよね 入れ替えちゃうからtrait制約で本物も偽物も受け付け対応とかわざわざする必要ないよね http://mevius.5ch.net/test/read.cgi/tech/1656285423/839
840: デフォルトの名無しさん [sage] 2022/09/28(水) 00:44:24.76 ID:JQpGo85s >>839 useしたモックをどうやって注入すんの 関数の引数もstatic変数でも良いけど、テスト対象の実装がモックも本物も選択的に使えるようにするならば、 genericな型を受け付けるような実装にしておかないといけないのでtraitが登場するのでは それともmod testsの外もcfgで置き換えると言っている? http://mevius.5ch.net/test/read.cgi/tech/1656285423/840
841: デフォルトの名無しさん [sage] 2022/09/28(水) 00:48:00.37 ID:JQpGo85s 要は use imp::Foo; fn target(foo: Foo) {} がテスト対象だとして mod tests { use mock::Foo; #[test] fn test() { target(Foo::new()); } } してもコンパイル通らないよね targetがimp::Fooもmock::Fooも受け付けるようにするにはtraitが必要では http://mevius.5ch.net/test/read.cgi/tech/1656285423/841
842: デフォルトの名無しさん [sage] 2022/09/28(水) 07:20:15.72 ID:1i04Jlqk traitが無い言語では無理ってこと?? http://mevius.5ch.net/test/read.cgi/tech/1656285423/842
843: デフォルトの名無しさん [sage] 2022/09/28(水) 11:35:17.56 ID:RLf9Yg7w >>842 他の言語は他のやり方でやってるだけだろ http://mevius.5ch.net/test/read.cgi/tech/1656285423/843
844: デフォルトの名無しさん [sage] 2022/09/29(木) 01:43:05.00 ID:xXycU9Ev u32 を格納する型が必要になり、また、逆に u32 に変換する必要もあるという状況で せっかくだから u32 に変換可能な型は受け入れようと考えてこんなコードを書きました。 しかしエラーになります。 struct Code(u32); impl<T: Into<u32>> From<T> for Code { fn from(x: T) -> Self { Code(x.into()) } } impl From<Code> for u32 { fn from(Code(x): Code) -> Self { x } } 結果的に自分自身への変換を許すことになってしまうのが既
存 (標準ライブラリ) の定義と衝突しているという理屈は理解しているのですが、 問題を解消するためにこの定義が受け入れる範囲から自分自身 (Code) は除外するように うまく制約を付ける方法は思いつきません。 そもそもこんなところで勝手に変換するのがよくない作法だとかそういうのは脇に置いて 「自分自身だけ除外するような制約」を上手いこと表現できませんかね? http://mevius.5ch.net/test/read.cgi/tech/1656285423/844
845: デフォルトの名無しさん [sage] 2022/09/29(木) 02:16:48.63 ID:zId7dOnm 無い http://mevius.5ch.net/test/read.cgi/tech/1656285423/845
846: デフォルトの名無しさん [sage] 2022/09/29(木) 02:20:01.39 ID:7xp1eqla そっかー http://mevius.5ch.net/test/read.cgi/tech/1656285423/846
847: デフォルトの名無しさん [sage] 2022/09/29(木) 02:40:21.97 ID:U5dWXlr2 そういうのはIntoCodeみたいな感じで別トレイトにすることが多い気がする https://docs.rs/axum/latest/axum/response/trait.IntoResponse.html http://mevius.5ch.net/test/read.cgi/tech/1656285423/847
848: デフォルトの名無しさん [] 2022/09/30(金) 02:17:04.59 ID:Yj/X+hjS 初歩的なことですまんけどさ メソッド内で↓みたいなのってよく見るけど、こう言うのってself.asdfのまま使用するのに比べてどういった利点があるの? let asdf = self.asdf; http://mevius.5ch.net/test/read.cgi/tech/1656285423/848
849: デフォルトの名無しさん [sage] 2022/09/30(金) 10:23:40.27 ID:1sTGpNyR 名前を短くする目的が99パー http://mevius.5ch.net/test/read.cgi/tech/1656285423/849
850: デフォルトの名無しさん [sage] 2022/09/30(金) 11:00:13.39 ID:tNhbOFxw クロージャーで構造体のフィールドにアクセスすると構造体ごとムーブしちゃうんでそれ対策じゃないかな 2021で対策されたからどんどん減ってくだろうけど https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ebea0bd9611104e7a90eb8dfcb9899c9 http://mevius.5ch.net/test/read.cgi/tech/1656285423/850
851: デフォルトの名無しさん [sage] 2022/09/30(金) 12:43:57.87 ID:NYKsqXq4 書き方は違うけどフィールドそれぞれに対して処理を行う場合に抜け漏れがないことをコンパイラにチェックさせる目的でローカル変数にすることはある let Foo { foo, bar. baz } = self; としておくと後続の処理で使わないフィールドがあったときにコンパイラが警告してくれる 構造体に新たにフィールド追加した場合も分割代入の箇所でコンパイルエラーになるので修正必要箇所を洗い出すことができる http://mevius.5ch.net/test/read.cgi/tech/1656285423/851
852: デフォルトの名無しさん [sage] 2022/09/30(金) 13:52:13.77 ID:yzoXDHK/ >>851 なんかすごくモヤモヤする http://mevius.5ch.net/test/read.cgi/tech/1656285423/852
853: デフォルトの名無しさん [sage] 2022/09/30(金) 14:15:24.65 ID:oHn8O8ll 本人は俺ってスゲー、天才やん! って思ってるんだろうけど後でコード見たらなんでこんなイミフなことしてるんだ?バカじゃねーの ってなるパターンかと まあこういう工夫をすること自体は悪くない http://mevius.5ch.net/test/read.cgi/tech/1656285423/853
854: デフォルトの名無しさん [sage] 2022/09/30(金) 14:42:00.50 ID:M1og6e+j フィールドそれぞれに処理をするシチュエーションがわからない http://mevius.5ch.net/test/read.cgi/tech/1656285423/854
855: デフォルトの名無しさん [sage] 2022/09/30(金) 14:50:06.85 ID:temvUu5a >>851 俺もそのdestructuring assignment自体は使いまくる しかし目的が漏れチェックとは違うのでこうだな let Self { foo, bar, .. } = self; http://mevius.5ch.net/test/read.cgi/tech/1656285423/855
856: デフォルトの名無しさん [sage] 2022/09/30(金) 14:55:47.39 ID:t/wNXSJY >>851 これいいな http://mevius.5ch.net/test/read.cgi/tech/1656285423/856
857: デフォルトの名無しさん [] 2022/09/30(金) 15:59:33.74 ID:XmkFmofe こうやって自己満足の意味不明なコードが量産されていく http://mevius.5ch.net/test/read.cgi/tech/1656285423/857
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 145 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.023s