Rust
Rust2018

Rust初心者が参考になった記事

はじめに

ちょっと年末にかけて、Rustをガッツリ書く機会があったんですが、
Rustを触ったのが久々ということもあり、結構苦戦した部分もありました。

そこでまた忘れないように参考になった記事をここにまとめておこうかなと考えました。
僕のようにまだRust初心者である方にとっても参考になったら幸いです。

参考になった記事紹介

エラーについての記事

Rustでエラーを合成する

この記事を書いたきっかけといってもいいかもしれない。
Result<T, E>Result<T', E'>のEとE'を合成する方法について記述されている。
これについて知らないとJsonのデシリアライズなどで困ることになる。
記事の核となるfailureのリポジトリはここにあるのでよかったら見てね。

RustのOptionとResult

Optionの便利メソッドResultの便利メソッドというのが特にいい。
std::option::Optionstd::result::Resultあたりの公式ドキュメントと一緒に見るとなおよい。

テストについての記事

Writing Tests

日本語版もあるが英語版のほうが若干内容がある。
テストの書き方について教えてくれる。
あとは有名なRustリポジトリのtests.travis.ymlを見るのがいいと思う。

文字列についての記事

Rustの文字列操作

多分一番最初に疑問に思う&strStringについての違いについてわかりやすく触れている。
&strについてはライフタイムなども絡むので疑問に思ったらきちんと潰しておきたい。

[Rust] 文字列のフォーマット指定(println! / format!)

タイトルのまんま文字列のフォーマットに関する記事。
もっと詳しく知りたければstd::fmt - Rustあたりを参考にするとよいだろう。

ファイルI/Oについての記事

Rustでファイルの入出力

これに関しては参考になったというか今たまたま「こういう記事が知りたかったんだよなあ。」という感じで見つけたのであげておきます。
ユースケース別にRustでのファイルIOのサンプルコードをあげています。
RustのファイルI/OにはBufReader, BufWriterを使いましょう、という話あたりを最初に頭に入れておくとなおよいかも。

モジュールとクレートについての記事

Rustのモジュールの使い方 2018 Edition版

複数ファイルを扱う際のわかりやすい記事がなかなか見当たらなかったが、これはわかりやすい上にRust2018に対応した内容になっている。
バイナリクレートとライブラリクレートでごっちゃにならなければあとは大丈夫だろう。

その他

Rust Cookbook

カテゴリ別にライブラリとサンプルコードの紹介がされてています。
カバー範囲が広めなので困ったら一度ここを調べてみるといいかも。

あとは当たり前ですが使用するライブラリのドキュメントやexamplesは役に立ちます。いうまでもないとは思いますが、、

さいごに

Rustは進化するのが早いので時間が立ったらもうその方法は古いということがあるかもしれません。
なので当時のベストプラクティスが今のベストプラクティスだというのは怪しいです。
最新のRustだとこっちの方がよいというのもあると思うので自分でも一度調べてみることをおすすめします。

ですが、ここで喚起するのは基本的に初心者に向けてなので割と普遍的内容だとは思っていて
初心者だったらそこまで気にせずまずは書いてみることもいいとは思うのでそこはおまかせします。