【Rust環境構築】異世界転生者向けRust欲張りスタータキット

# 概要

これは、Rustの世界に入りたい(or入ってしまった)異世界転生者向けのスタートガイドだ。
これさえあれば、十分にRustの世界を歩ける。というところまでを、この記事ではサポートする。

# 異世界転生者とは？

この宇宙にはいろいろな開発の世界と言語が入り混じり、存在している。
`C/C++`に`C#/Java`、`JavaScript/TypeScript`など、
そういった、もともとの世界の住人が、別の言語の世界に飛び込むことを、
ここでは*異世界転生者*と呼称している。

異世界転生者故に、IT関係の知識（VSCodeやShellの概念、Dockerの扱いなど）はすでに習得済みだとして話を進める。
プログラミングに関する勘所はすでにあるため、異世界といえど、言語習得は比較的容易なはずだ。
私はそういった異世界転生者向けに、この記事を残す。

# Rustとは？

Rustとは、C++並のバイナリ実行速度を持ちながら、実行時エラーを極端に嫌う設計により、
バグ自体がコンパイル時にわかる設計から、
競技プログラミングだけでなく、プロダクション開発にも応用されてる言語だ。

# Rustの世界に入る

Rustの世界の入り方は、非常に複雑で、エラーを頻出させてしまうため、
ここでは、**Docker**での入門の仕方をおすすめしたい。
また、今回では諸々の説明を省くためVSCodeを選択するが、気を悪くしないでくれ。
VimmerにはVimモードもあるから、この際入門するのもいいぞ。

## まず、Dockerをインストールする

[Docker Desktop for Mac](https://www.docker.com/products/docker-desktop)をダウンロードして、インストールしよう。
あとはどうにか頑張ってくれ。兄弟。

おおっと、WindowsユーザもDocker Desktopがあるから同じようにやってもいけると思うぞ。
経験者は編集リクエストを頼む。

（Linuxディストリユーザどうすりゃいいんだってか？おまいはなんのためにLinuxを使ってんだ？）

## Rustイメージを持ってくる

[Dockerhubの公式Rustイメージ](https://hub.docker.com/_/rust)から、Rustのコンテナを選んでCLIでPullしよう。
いっぱいあって、迷ってしまいがちだが、おすすめは`rust:1.43`とかのいわゆる無印モノだ。
`rust:1-slim`とかは余計な機能を落としてるから不便だぞ。

いよいよpullの時間だ、コンソールに以下を入力しよう。ここでは`1.43`tagを使うものとする。

```
docker pull rust:1.43
```

全部で400MB近くある。デカいのが来るぞ。

## Rust環境に入る

`docker run`コマンドでコンテナを立ち上げよう

```
docker run -it --name rust-dev -d rust:1.43 /bin/bash
```

`docker ps`で`rust-dev`というコンテナが立ち上がっていれば成功だ。
あとは、この世界に入り込めれば、異世界にダイブすることが出来るってことだ。

## VSCodeでダイブする

VSCodeにはコンテナに接続して開発する機能がついている。
以下の拡張機能をインストールしよう。

![スクリーンショット 2020-05-23 22.45.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/253322e3-1fbd-ba58-dd17-bf8ff8523a70.png)

![スクリーンショット 2020-05-23 22.45.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/69a58a51-5f86-8bbb-662e-a84763eb0325.png)

これを利用したら、Rustのコンテナに入り込もう。

![スクリーンショット 2020-05-23 22.47.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/994f9465-7cf8-edb9-0c33-267130d9f2da.png)

この左端のDockerマークから、Containersをみると、動いている`rust-dev`のコンテナがあるはず。
![スクリーンショット 2020-05-23 22.49.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/a7e7a75b-5da0-9ad7-743e-0b80feaf3e21.png)

これを右クリックして、`Attach Visual Studio Code`を選択し、開発画面を出そう。

![スクリーンショット 2020-05-23 22.53.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/74894dd8-e760-5fbf-5a1a-b8b6c1ab99a8.png)

これで、君だけの独立した開発環境が出来るはずだ。どんなにミスっても、消せばまた元に戻る優れものだ。

![スクリーンショット 2020-05-23 22.56.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/cab80379-06be-9650-b1c4-f9e6455a975b.png)

## 初期設定をしよう。

まず、以下をコンテナのコンソールで入力しよう

```
cargo new --bin test_proj
```

あと、Rust拡張機能をインストールしよう。

![スクリーンショット 2020-05-23 22.59.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/3939548d-22e8-675a-a295-6ee8a52c65bf.png)

その次に、WorkSpaceの追加をしよう。

## workspaceの追加

VSCodeにはrlsという機能が存在する。これを有効化するために、workspace化する必要がある。
![スクリーンショット 2020-05-24 18.34.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182970/2c4786a4-7179-a270-2d69-abdbbe5214fb.png)

これで、先ほど作成した、`test_proj`を選択する。そうすると、画面が再起動し、
rls機能をインストールするか？と聞かれるので、YESと答える。

そうすると、rls機能がインストールされ、rust関連のコード補完機能や、エラー機能などが使えるようになる。

これで基本的な環境構築は完了した。

# Rustの世界を歩く

これで、基本的な環境構築は完了したが、Rustの世界に入っただけで終わっている。
君は、Rustの世界を歩いて冒険したくてウズウズしているところだろう。
Rustの世界の案内書は、実は無料で公開されている。
[The Rust Programming Language](https://doc.rust-jp.rs/book/second-edition/)
↑こちらから歩き始め、世界を探検しよう！！

# 旅は続く...

ひとまず、これで補完はバッチリ効くし、クリーンな開発環境が提供ができたと思う。
まだ旅は続くが、わたしの冒険への道しるべはここで終了しようと思う。