前評判では「学習コストが高い」と聞いていたが、意外とそうでもなかった
──逆に、Rust運用で現在も直面している課題などはありますか?
共通処理に関してマクロを使いすぎてしまい、コードが隠蔽されてデバッグしづらくなったことがあります。Rustを導入した当初はまだ社内に十分なベストプラクティスがなく、ボイラープレート削除のためにマクロを積極的に使っていたのですが、結果として、実装者以外には理解しづらいコードになってしまうケースもありました。今は、トレイトで表現するべきか、マクロでカプセル化するべきかを見極めるように心がけています。
また、機能追加にともなってビルド時間が長くなってしまうという問題もあります。CIに時間がかかるほか、ローカルの開発環境での解析に時間がかかり、補完やエラー表示が遅れることがあります。こうした課題は一定仕方がないと思っていて、モジュールを最適に分割することや開発マシンのメモリ強化などで対応しています。
──今後、Rustで取り組んでみたい技術的な挑戦はありますか?
今はWebアプリケーションとLambdaでRustを使用していますが、今後はデータ基盤の集計部分にも活用の幅を広げていきたいと考えています。
現在データ基盤はPythonで構築しており、お客さまからのリクエスト内容に応じてリアルタイムに集計して返すなど、アドホック的なバッチ処理を行っています。そういった場面でRustを使うことで、より高いパフォーマンスと安定性を実現し、品質向上につなげたいと思っています。
──Rustのこと以外で、チームや個人が成長するために、取り組んでいることを教えてください(開発を進めていく中で、心がけていることなど)。
生成AIを前提とした開発プロセスの見直しに取り組んでいます。生成AIによってコードを書くスピードが上がった結果、開発全体のボトルネックが実装工程から上流工程に移動しました。
この変化に対応するため、エンジニアもお客さまに近いところでドメイン知識を深めることができたり、PMとの役割分担を見直し、エンジニアがより企画段階から関わることができる体制にシフトしたりしています。こういった取り組みを通じて、実装だけでなく、顧客価値を高められるチームを目指しています。
──最後に、Rustの導入を検討しているエンジニアの読者に向けて、アドバイスをお願いします。
2025年の今、エコシステムや情報も充実してきており、生成AIを活用すればコーディングのハードルもかなり下がってきています。まずは自分たちのプロジェクトでRustが必要かどうかを検討したうえで、必要だと判断できれば、ためらわずに導入していいと思います。
Rustはよく「学習コストが高い」と指摘されますが、実際に使ってみると意外とそうでもありませんでした。確かに所有権やライフタイムなど他の言語にはない概念があるので、戸惑うこともありますが、コンパイラのエラーメッセージが丁寧なので、試行錯誤するうちに、自然と身につきます。特にGoやTypeScript、Kotlinといった静的型付け言語の経験があると、理解もスムーズだと思います。
実際、フルカイテンでRustを使っているエンジニアからも「思ったより苦労せず使えた」という声が多く上がっています。世間で言われているほどハードルは高くなく、必要性があると感じたなら挑戦してみる価値はあると思います。

──横田さんに触発されて、Rustにチャレンジする方が増えればと思います。この度は、貴重なお話をありがとうございました!
