Rust 始めました!
こんにちは!パイオニアの SaaS Technology Center (以下、STC) 技術戦略部の相田です。
私の所属している先端技術チームでは、技術選定やアーキテクチャ設計など、プロジェクトを横断した課題解決やエンジニアの学習支援などを担当しています。
2021 年に STC ではバックエンドの開発言語として Rust の採用を決定しました。そこでこの記事では、その Rust を導入するまでの背景や、導入にあたって取り組んでいることなどをご紹介したいと思います。
導入の背景
開発言語の選定の際に挙がっていたのは以下のような条件です :
静的型付け言語であること
現代的な言語仕様を備えていること
npm や gem のようなエコシステム基盤があること
システムプログラミング言語であること
低水準から高水準までの多岐に渡る領域を扱えること
特に後半の条件は、パイオニアが ソフトウェアとハードウェアの両方を扱う 企業であることから必須となるものですが、まさにこれら全ての条件を満たしている言語が Rust でした。
(もちろんこの決定には、2020 年前後から世界の名だたるテックカンパニーが Rust に関わり始めたという時勢的な背景も大きく影響しています)
取り組み
を順番に紹介します :
プロジェクトの雛形を用意
ハンズオン勉強会の開催
雑談チャンネルの設置
プロジェクトの雛形を用意
社内のプロジェクト構成はなるべく揃えたいという理由や、多くの開発メンバーがまだ Rust に不慣れだという事情もあり、開発標準として API 開発時に参考にするための雛形プロジェクトを用意しました。
この雛形には具体的には :
クリーンアーキテクチャをベースとした構成
OpenAPI の yaml からコードを生成するためのスクリプト
デプロイやマイグレーションのためのスクリプト
CI/CD (GitHub Actions) の設定ファイル
複数 crate で共有されるテスト用のモジュール
OR/M (Diesel) を使った DB 処理のサンプル
非同期処理のための async/await を用いたサンプル
などを含めています。これはまだまだ発展途上であり、開発チームからのフィードバックを受けて随時修正や機能追加に対応しているところです。
(開発標準はこれからの新しいサービス開発で本格的に適用していきます。実際に得られた知見については今後の記事にご期待ください!)
ハンズオン勉強会の開催
これはまだ始まったばかりの試みですが、Rust に慣れるための勉強会を社内で定期開催しています。
会の進行は :
前半 : 問題を解く & 答えについての解説や議論
後半 : 次回の問題のための文法解説
(次回までに予習しておく内容の紹介)
といった形で、このハンズオンの内容はいつでも見直せるように社内の wiki にまとめています。(入門者用のコンテンツとして整備していくというのが裏目標です)
雑談チャンネルの設置
いつでも誰でも何でも話せるようにという意図で、気軽に雑談できるチャンネルを作りました。
実はなんと今まで雑談のチャンネルがなかったのです(!)
つい先日はこんなやり取りが流れていました :
おわりに
パイオニアでは、変革に向けて一緒に働く仲間を募集中です! 老舗メーカーの変革に少しでも共感、チャレンジしてみたいと思われた方は、下記をご覧ください。
カジュアル面談も歓迎しています。ご興味を持たれた皆さま、気兼ねなくご応募ください!