アーキテクチャ決定記録: Rust 言語
決定番号: AR-001
決定タイトル: Rust プログラミング言語の採用
日付: 2021 年 12 月 1 日
状態: 承認済み
問題の記述
ソフトウェアアプリケーションの開発を続ける中で、潜在的なセキュリティ脆弱性の軽減や実行時エラーの防止がますます困難になっていることを観察しました。C や C++ などの既存のプログラミング言語では、バッファオーバーフロー、メモリリーク、アプリケーションのクラッシュにつながる未定義動作などの問題が引き続き発生しています。メモリ安全性の保証を提供し、パフォーマンスが重要なアプリケーションをサポートするのに十分に効率的なプログラミング言語が必要です。
検討事項
既存の問題に対処するために設計されたプログラミング言語がいくつかあります。その中で、Rust プログラミング言語は、その独自の設計上の特徴により、開発者コミュニティから大きな注目を集めています。検討事項には次のものが含まれます;
メモリ安全性とセキュリティ
パフォーマンスと効率
コミュニティのサポートと採用
学習曲線
ツールとエコシステム
既存のソフトウェアシステムとの互換性。
制約
新しいプログラミング言語を採用するには、開発者の再トレーニングが必要であり、時間とリソースがかかります。言語を既存の開発ワークフローに統合することは課題になる可能性があります。継続性を維持するため、既存のシステムとの互換性を確保し、破壊的変更を避けなければなりません。
実装
開発チームは、Rust プログラミング言語を学び、慣れるためのトレーニングを受けます。
開発目的との互換性と適合性を評価するため、試験的に Rust を使用した新しいプロジェクトを作成します。
C と C++ で書かれた既存のシステムを、段階的に Rust に移行します。
開発ワークフローを強化できる利用可能なツールとライブラリを探求するため、Rust コミュニティと協力します。
Rust のパフォーマンスを監視し、既存のプログラミング言語のパフォーマンスと定期的に比較します。
トレーニング、統合のコストと、Rust を使用する潜在的な利点のバランスを取る、長期的なアプローチを採用します。
根拠
パフォーマンスと効率を維持しながら、メモリ安全性とセキュリティの保証を提供するよう設計された独自の機能により、Rust を採用しました。Rust の堅牢な型システム、借用チェッカー、メモリ安全性の概念は、パフォーマンスが重要なアプリケーションや安全性が重要なアプリケーションの開発に非常に適しています。さらに、Rust には大規模な開発者コミュニティがあり、開発ワークフローをサポートする幅広いツール、ライブラリ、エコシステムにアクセスできます。Rust には学習曲線がありますが、Rust を採用する利点はコストを上回り、継続的な成長とイノベーションのための優れた機会を提供すると信じています。
結果
Rust の採用には、開発者のトレーニングと、言語の既存の開発ワークフローへの統合に、時間とリソースの大きな投資が必要になります。
Rust の採用は、既存のシステムとのある程度の互換性の問題を引き起こす可能性があり、リファクタリングと変更が必要になります。
Rust の採用は、エキサイティングなプロジェクトに取り組みたい Rust 開発者を引きつけることで、プロジェクトに貢献できる開発者の数を増やす可能性があります。
この採用は、既存の言語と比較して、パフォーマンス、効率、安全性の向上につながる可能性があります。
最後に、Rust の採用には、アプリケーションのセキュリティ脆弱性を減らすという潜在的な利点があります。