> (以下自分が思いつくやつを dump) > 文脈: better Python くらいのつもりで使い始めて沼に嵌まってから
0
keno @keno_ss

keno, a small sawagani/The opinions stated here are my own, not those of my company./❤️ math, 松村の次元論, coffee, Emacs, Lisp, Rust, Splatoon, MtG/インターネット雑用係

github.com/kenoss

keno @keno_ss

【緩募】Rust 初学者が抑えておくべき最小限のリスト (以下自分が思いつくやつを dump)

2024-04-02 21:46:33
keno @keno_ss

パワーユーザーを近くに置け。rust-jp.rs とか Twitter で話を振ると優しい人たちが答えてくれます。Rust 使ってる会社に就職するのもオススメ。

2024-04-02 21:47:01
keno @keno_ss

OSS にするならライセンスと COPYRIGHT を書け。

2024-04-02 21:47:16
keno @keno_ss

まず最初に CI でビルドと cargo fmt と clippy とテストを強制しろ。(興味があれば just はいいぞ!僕はターミナルで cargo watch してる。)

2024-04-02 21:47:31
keno @keno_ss

ビルドが cargo build だけですまないなら README に書くこと。(例えば共有ライブラリの依存。)

2024-04-02 21:47:51
keno @keno_ss

テストを書け。(興味があれば rstest と protest はいいぞ!)

2024-04-02 21:48:28
keno @keno_ss

エラー処理: 取り敢えず thiserror と anyhow。詳しいことは少しずつ慣れれば良い。(eyre もいいぞ!)

2024-04-02 21:48:42
keno @keno_ss

log を吐け。tracing crate が良い。(気持ちがなければ log crate でもいいかもだが…) アプリケーションでは env_logger 相当の仕組みを入れること。(tracing_subscriber の設定でできる。)

2024-04-02 21:49:02
keno @keno_ss

あなたが初学者なら何も考えずに clone() しまくって良い。clone() のコスト、どういう場面で参照を使いたい/使うべきか、使う場合に負債になりにくいのはどのくらいまでかの感覚を掴んでからもう一度やり直したり修正したりすれば良い。

2024-04-02 21:49:19
keno @keno_ss

できれば async/await は所有権とライフタイムのエラーにある程度慣れるまで避けるのがオススメ (エラーから正しい解決方法に辿り着くのが相対的に難しいケースが多いため)

2024-04-02 21:54:45
keno @keno_ss

twitter.com/namnium_01/sta… (コンパイル言語だから難しい、ではなくコンパイル言語だから易しいし楽。但し別の形でコストを支払う必要がある。それでも楽なことが多い。)

2024-04-02 21:58:26
keno @keno_ss

文脈: twitter.com/keno_ss/status…

2024-04-02 22:13:53
keno @keno_ss

@sifyfy それはそうなんですが、自分は better Python くらいのつもりで使い始めて沼に嵌まってからそのへんの知識を Rust で学べばいいと思ってるんですよねぇ。C/C++ やってからじゃないと Rust 使えないということは全然ない。

2024-04-02 22:11:09
keno @keno_ss

文脈2: twitter.com/keno_ss/status…

2024-04-02 22:15:10
keno @keno_ss

Rust の好きなところ: 程度の差こそあれ大体のアプリケーションに env_logger 相当の仕組みが入っている。(logging を使っているはずなのに logging.basicConfig を呼んでいないので今日も print で見るね…)

2024-04-02 15:39:21
keno @keno_ss

twitter.com/helloyuki_/sta… もう一歩踏み込んで、「気になったライブラリはじゃんじゃん git clone してきて眺めてみよう」とかかなぁ。あと Rust のリリースノートに目を通すとか。細かいテクニックは他人のコード見たり勉強続けてると身につくので。

2024-04-02 22:20:41
yuki @helloyuki_

実はパターンマッチが結構いろんなところで使える。普通にmatchだけじゃなくて、let A { foo, bar } = a;とかfn a(A { foo, bar }: A)みたいに変数束縛や引数の中にも登場させられるのを知ると、余計なclone等を回避できることがある、とかどうでしょ? x.com/keno_ss/status…

2024-04-02 22:16:23
keno @keno_ss

twitter.com/saba1024/statu… Categories for the Working Mathematician is for the working mathematician みを感じる… 「自分が興味あるやつを Rust でやってみよう」?

2024-04-02 22:31:54
こーじ @saba1024

正直Rustに足りないのは作って覚える系じゃないかなぁと思う。 所有権とか借用とかそれだけそれだけ解説されても理解できるわけがない(俺も未だにちゃんとは理解できてない。。。) Yewでフロントエンドを作って学ぶRust Bevyでゲームを作って学ぶRust RocketでAPIサーバを作って学ぶRust とかほしい x.com/keno_ss/status…

2024-04-02 22:22:20
keno @keno_ss

viewsourcecode.org/snaptoken/kilo/ way-cooler.org/book/wayland_i… 僕はこのふたつをやった。(エディタは C で解説されてるのを Rust で書いた。Wayland compositor はこれを読んだ上で smithay で書いてる。)

2024-04-02 22:32:04
高階シフィ@VTuber @sifyfy

@keno_ss Rustに限らないですが - プログラムがどの様に実行されるか - スタック領域とヒープ領域の違い - データ競合とは何か とか知ってると便利だと思います。

2024-04-02 22:07:41
keno @keno_ss

@sifyfy それはそうなんですが、自分は better Python くらいのつもりで使い始めて沼に嵌まってからそのへんの知識を Rust で学べばいいと思ってるんですよねぇ。C/C++ やってからじゃないと Rust 使えないということは全然ない。

2024-04-02 22:11:09
高階シフィ@VTuber @sifyfy

@keno_ss C/C++やった方がいいという意図は全く無くて、Rustの安全装置な部分を理由も分からず強制されるのをストレスに感じるタイプの人は軽くググって出てくる範囲で良いのでこの辺を先に理解しておくと楽なんじゃないかなーってくらいです

2024-04-02 22:24:16
0
まとめたひと
ozero dien @ozero

都道10号線。おれもみんなもご安全に。