2022/03/25 このエントリーをはてなブックマークに追加 はてなブックマーク - Rustを(ボクが)業務で使い始めて三ヶ月が経ちました

Rustを(ボクが)業務で使い始めて三ヶ月が経ちました

カテゴリ: ,

タイトルの通り。

なんとなく書いてみようと思った次第。
振り返りです。


Rustは、ずーっと気になっていて、ここ数年ずっと注目してた言語ではあった。
Rustの本は2冊積んでたんだけど、読めてなかった(積んでるだけで脳に知識が届く世界早く来て)。


今の会社(いわゆる弊社)にはチーム移動を頻繁にして属人化減らそうぜなノリがあり、
Rust使ってるチームがあったので、気になるし参画したい!
みたいなとこで1月からRustを書くことになったのでした。ラッキー。
(実際は移動にはなんやかんやあります。やりたいことにマッチしてるかとか色々な調整がある)

ということで、一夜漬け状態でRustを書くことになったのですが、
なんとか誤魔化し誤魔化し書けています(書けてるのだろうか。少なくとも読むことはそこそこ出来てるかも)


一個はやっぱペアプロでやってるというのはデカいなと思う。勘所を掴むスピードが上がるので良い。

あとは、自分がGoとかScalaとかTypeScriptとか噛じってたというところもあるかもしれない。


Goを書いたことがあった恩恵

GoとRustを安易に比較するのはアレなんだけど、構造体だったり参照の書き方は似てる…ような気がしてとっつきやすかった。
あと、システムプログラミング的な低レイヤーなイメージはつきやすいのでそこも大きかったかも。


Scalaを書いたことがあった恩恵

Scalaに似てる…とも安直に言いにくいんですが(個人の感想なので言わせてー)。
パターンマッチとかOptionとかResultとかはなんとなくScalaのノリに近いなぁとか思いそこもとっつきやすかった。


TypeScriptとか書いたことがあった恩恵

まぁ後は割とモダンな言語の書き方よりなので、後置きの型宣言だったりとか、
最近のプログラミング言語だとそうだよねーという感じでとっつきやすい。


その意味だとGoの方がイディオムとか構文が独特で慣れるまで苦労した感があるな…(Goも好きだけど)。


IntelliJ IDEAのRustプラグインに頼ってるからというところもあるかもしれない。

GoはVimでプラグインのカスタマイズを育てながら言語自体も覚えながらでスタートしたので立ち上がりが遅かったかも。

当時もVSCodeとかGolandとかでGo書いてたらまた違ったんだろうかな…。なんにせよ自分の実力の問題ですね。


でも楽しさで言うとVimいじってるときが一番楽しいですね〜(?)
Vimもっと使いこなせるようになりたい。
rust analyzerも使えるわけだし
https://github.com/rust-analyzer/rust-analyzer


技術選定とかインフラ構築とかCI環境作ったりとか諸々関わってはいない。
そこらへんある程度整備された段階で参画したので、まぁ難しいことやってないなー自分みたいなとこも正直ある。
なんか、フツウにAPIのエンドポイント足してコツコツ実装するだけというか。

1人で一気通貫でコード書くと困るところもたくさん出てきそう。今のところ圧倒的にコードを書く経験値が不足してる感じ。


コンパイル長い。ただしコンパイルタイムで色んなことが検出できる。そこの良し悪しあるよな。
Goみたいにビュンビュンコンパイル出来る訳ではない。
JVM系の言語のコンパイル速度に慣れてればそこまで苦じゃないか?


ナンモワカランが多いです

  • マクロなんもワカラン
  • ライブラリなんもワカラン
  • 所有権なんもワカラン
  • エラー移譲なんもワカラン
  • バックトレースとかのイイカンジの扱い方もワカラン
  • : を何個書いて良いのか時々ワカラン
  • anyhowがdowncastrefしか用意してないのなんでかワカラン
  • dynなんもワカラン
  • Boxなんもワカラン

完全理解したを増やしていきたい


仕事以外でどう学んだかというと本を読んだ。
実践Rustプログラミング入門を大体読んだ(Web AssemblyとGUIとかあたりは飛ばしたけど)
あとは年末ぐらい?のrust.tokyoのカンファレンスでなんとなく雰囲気はつかんでいた(Rust Tokyo 2021だったとおもう)


何もワカランが多いのはやっぱコードを書く量が足りてないってことだと思う。
今後もガシガシ書いていきたい。

https://exercism.org/tracks/rust とかやるのも良いかも。

あとRust関連はなんとなくzennに記事をかくことにしてみたので、学んだことはzennに書いていくかもです!

https://zenn.dev/yy_yank




ということで、完全に個人の感想を個人のブログに書きました。


0 件のコメント:

コメントを投稿

GA