2020-02-11に更新

Rustの開発環境を見せようぜ☆(^~^)

あびょべしっ 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 なんか わたしの環境 数年遅れてるっぽい……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 見せてみろだぜ☆」

Visual studio code (1)

20200210wcsc12.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Windows に慣れてしまったので、 Atom でも Sublime でもなく、 Visual Studio Code だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ファイル名の付け方が独特ねぇ。あんたのソースは誰も読めないのよ」

Extension

20200210wcsc13a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 Visual Studio Code では、プラグインのことを エクステンションと呼ぶ☆
すぐダウンロードできる☆」

Rust RLS

20200210wcsc14a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Rust使いなら 入れてると思うが、定番が Rust RLS だぜ☆
どんなことが できるかというと……☆」

Go to Definition

20200210wcsc15a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 例えば hyoji_kmugoki() という関数があるとしよう☆
日本の若手の将来あるプログラマーは人口が少ないので もういないと思うので 日本語圏を相手にするのは もうやめようと思うが、
この Click right button over the string☆」

20200210wcsc16a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Go to Definition をクリック……、なんか日本語でブログ書くのも I am getting disgusted☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 お父んの ブログを書く気力がなくなってきた……☆」

20200210wcsc17a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ このように関数定義文に飛ぶわけだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 こういう機能って基本なんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 他の人は たいてい 関数1つに 150行ぐらい書いた1ファイルが プログラムのすべてなんで、使わないこともあるだろう☆」

Go to References

20200210wcsc18a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 駒種類アレイ、 KMS_ARRAY が 他にどこで使われてるか気になることもあるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 どうぶつしょうぎ の駒は 本将棋の駒に変えてってる途中なんでしょ。残念ねぇ」

20200210wcsc19a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ じゃあ Go to References してみるかだぜ☆」

20200210wcsc20a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ すると なんか ドラゴンボールのスカウターみたいなのが出てきて、
どのファイルで使われているかの一覧が出るぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 人の一生は 物を探している時間に 一番多くの時間を割かれるという説もあるから、
物が見つかるのが早いのは ボトルネックを突いてきてるわねぇ」

Rename symbol

20200210wcsc21a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ で、下請け仕事とかで使うと納品物差し戻しを食らうが 趣味でやっているプログラミングでは
KMS_ARRAY という名前が気に入らなかったら Rename Symbol をクリックしてみようぜ☆?」

20200210wcsc22a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ テキストボックスが出てくるので、新しい名前に変えてやれだぜ☆」

20200210wcsc23a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ で、 すぐに [Enter] キーを押すのではなく、[Shift] + [Enter] キーを打鍵しろだぜ☆
どこを変えるか 一覧が出ているんで、チェックしてから 変えろだぜ☆」

20200210wcsc24a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 細かな操作説明は省くが、 左クリックしたり 右クリックしたり、
コンテキスト・メニューの右端に書いてあるショートカット・キー押したりして覚えろだぜ☆
多分、お前が思ってるのと違う動きをする☆ そういう意味、みたいな☆」

20200210wcsc25a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ で、ファイル名の横に白丸が付いていれば まだ保存されていない という印だぜ☆ 保存しろだぜ☆」

20200210wcsc26a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ もちろん、手間を増やすようなことを プログラマーが受け入れてはいけない☆
一発全保存とか なんか 便利なものが どこかにあるだろうから 調べておけだぜ☆」

Error

20200210wcsc27a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 文法エラーがあると、文字がコーラルレッドみたいな色になるぜ☆
ファイルを開けて 1個1個 直していけだぜ☆」

20200210wcsc28a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 小さくて 画像では見えないかもしれないが、赤いマーキングが付いてるんで 探すのは楽だろう☆
それか、もっとダイレクトに探す 別の方法もある☆」

20200210wcsc29a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ PROBLEMS ペインを開けて、一覧から 気になるところをクリックしろだぜ☆
その行に飛んでくれる☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 瞬間移動は コーディングの基本動作ねぇ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ダブル・クリックすると、問題個所をハイライトしてくれるんで、すぐコピー&ペーストのショートカットキーを使える☆」

Replace

20200210wcsc30a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ なぜか リファクタリングのリネームが 働かないときがあるんだが、
そんなときは リプレース を使う☆
この機能は ワード単位や、正規表現、ファイル名フィルター を使ったりして たくさん応用ができるんだが 長くなるんで説明は省く☆」

20200210wcsc31a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ マウスカーソルを近づけると出てくるボタンとか隠れてるから、探せだぜ☆」

Cargo

20200210wcsc32a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Cargo は Visual Studio Code とは関係なくて それ自体が コマンドだが、
rustup コマンドを使って rust 本体と一緒にインストールしてあると思う☆」

cargo build --release

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 例えば上のようにコマンドを叩けば、 target フォルダーの下に .exe ファイルを作ってくれるだろう☆
Rust は 実行ファイルを バイナリ・ファイル1つにまとめてくれるぜ☆」

20200210wcsc33a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 世の中のプログラム言語は、インタープリター型と コンパイル型の2つに大きく分かれると思うが、
Rust は コンパイル型だぜ☆ それは何なのかの説明は省く☆」

20200210wcsc34a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ Shogidokoro アプリに .exe ファイルの場所を覚えさせているので、すぐ反映されるぜ☆」

Visual studio code (2)

Split

20200210wcsc35a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 1つのファイルの中の2か所を、右と左に分けて表示するのも便利だよな☆
切り取って貼り付け、とかするときに 上へ下へと スクロールとかしなくていいからな☆」

Git hub desktop

20200211wcsc37a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ デグレードが起こったので、バージョン管理ソフトの使い方も見せておくぜ☆
History をクリックしろだぜ☆」

20200211wcsc38a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 最新のコミットを右クリック、 Revert this commit を選べだぜ☆」

20200211wcsc39a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ これで、 コミットを破棄した、というコミット が行われる☆
Push origin の欄に まだプッシュしていないコミットの数1 が付いているのも そういうことだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ややこしくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ アンドゥではない という意識を持てだぜ☆ 逆操作を進める んだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それを ややこしい と言う☆」

20200211wcsc40.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 版をロールバックしたので、実行ファイルもビルドしなおして 古いバージョン を作れだぜ☆
これで 新しい版と 古い版 の実行ファイルを2つ持っていることになるので、
同じ棋譜を使って状況を再現するなどして テストしろだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 調べたところ、この不具合は 古いの版 にもあるようだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 なんということだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 どんどん遡るの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 大変☆
不具合は再現できるのだから、これは あとで直すとして 進めようぜ☆?」

20200211wcsc41a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑リバートを リバートしようぜ☆?」

20200211wcsc42a1b1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑リバートを リバートしたから最新だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ややこしい……☆」

<書きかけ>

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事